💖 Trong thế giới công nghệ thông tin đang phát triển nhanh chóng ngày nay, vai trò của kiểm thử viên (tester) ngày càng trở nên quan trọng. Công việc này không chỉ đơn thuần là tìm lỗi trong sản phẩm đang được phát triển mà còn góp phần đảm bảo chất lượng và độ tin cậy của phần mềm đó. Câu nói “Tester – Ai cũng làm được” là một thông điệp mạnh mẽ về khả năng tiếp cận và phát triển kỹ năng trong mỗi chúng ta khi muốn trở thành một tester. Qua bài viết này, chúng ta nhau xem liệu công việc kiểm thử phần mềm có thực sự khó như mọi người nghĩ không nhé.
Công việc của một tester
Công việc thường ngày của một tester, hay còn gọi là QC (Quality control – nhân viên kiểm soát chất lượng), chủ yếu bao gồm các hoạt động nhằm kiểm tra, đánh giá chất lượng của sản phẩm (phần mềm) đang được phát triển. Họ thiết kế và thực hiện kiểm thử nhiều trường hợp khác nhau dựa vào yêu cầu đã cho – thường được mô tả bởi PM (Product Manager – quản lý sản phẩm), PO (Product Owner – tạm dịch: Chủ sản phẩm), hoặc từ khách hàng – nhằm đảm bảo sản phẩm này sẽ hoạt động như mong đợi về cả chức năng và các khía cạnh chất lượng khác như hiệu năng (performance) và tính khả dụng (usability) khi đưa vào sử dụng thực tế.
Tester sẽ phối hợp chặt chẽ với các vai trò khác trong nhóm phát triển như lập trình viên (developer), DevOps (nhân viên vận hành hệ thống), và/hoặc các nhân viên thiết kế trải nghiệm người dùng (UX Designer) để thực hiện việc kiểm thử trải qua nhiều giai đoạn xuyên suốt quá trình phát triển phần mềm (SDLC – Software development lifecycle).
Các vai trò trong nhóm phát triển phần mềm
Để dễ hình dung hơn, bạn có thể hình dung tester sẽ làm việc với các bên liên quan khác như thế nào theo tóm tắt dưới đây nhé. Một đội dự án phát triển phần mềm điển hình thường bao gồm ba nhóm chính như sau:
- Đại diện khách hàng
- Vai trò: PM, P.O, BA (Business Analyst), hoặc khách hàng
- Nhiệm vụ: xác định và đưa ra yêu cầu cũng như mục tiêu của sản phẩm – thường dựa trên nhu cầu của khách hàng, doanh nghiệp, và người dùng. Công việc cụ thể sẽ khác nhau phụ thuộc vào loại hình dự án là gia công phần mềm hay phát triển sản phẩm riêng.
- Đội ngũ phát triển
- Vai trò: Lập trình viên, DevOps, .
- Nhiệm vụ: lập trình để “biến” những yêu cầu đã cho thành sản phẩm phần mềm như các hệ thống website, ứng dụng trên máy tính hoặc trên điện thoại. Ngoài ra họ còn xử lý các vấn đề kỹ thuật liên quan để hệ thống được vận hành thông suốt và hiệu quả.
- Đội ngũ kiểm thử:
- Vai trò: Tester, QC
- Nhiệm vụ: Lên kế hoạch và triển khai các hoạt động đánh giá chất lượng sản phẩm giúp bảo nó đã đáp ứng mọi yêu cầu đã cho và phát hiện lỗi ở các giai đoạn khác nhau từ lúc thiết kế cho đến khi vẫn hành nhằm hạn chế rủi ro xảy ra sự cố khi vận hành hệ thống bao gồm cả khía cạnh hiệu năng và bảo mật của hệ thống.
Ngoài ra, còn có những vai trò khác cũng tham gia một phần vào quá trình phát triển phần mềm mà không được đề cập trong bài viết này như Scrum Master hoặc nhân viên QA (Quality Assurance).
Sự tương tác hiệu quả giữa ba nhóm này giúp phát hiện lỗi sớm hơn và hiệu quả hơn, tăng khả năng thành công của dự án và tạo ra sản phẩm phần mềm tốt hơn.
Những phẩm chất và kỹ năng cần thiết của một tester
Để trở thành một tester xuất sắc, bạn cần trang bị những kỹ năng cốt lõi sau:
Kiến thức và kỹ năng kiểm thử phần mềm
Kiến thức có thể học được từ nhiều nguồn khác nhau bao gồm tự học thông qua nhiều tài liệu trên mạng, các bài học khóa học tester miễn phí trên Youtube, hoặc tham gia các khóa học có phí tại các trung tâm đào tạo kiểm thử phần mềm – mình đang học lớp Fresher Tester khóa FK61 tại Testing VN. Về kỹ năng thì bạn phải rèn luyện, áp dụng kiến thức học được vào dự án giả lập, các trang web trên mạng, hoặc như bản thân mình thì hoàn thành bài tập về nhà (được cung cấp trong khóa học). Bên cạnh kiến thức và kỹ năng kiểm thử phần mềm, các phương pháp và kỹ thuật kiểm thử đa dạng giúp bạn cách tiếp cận phù hợp nhất cho từng ngữ cảnh để kiểm thử và đảm bảo chất lượng sản phẩm tốt hơn.
Lên kế hoạch kiểm thử
Trong các dự án phần mềm, test leader hay test manager là người sẽ lập kế hoạch kiểm thử cho cả dự án. Tuy nhiên, khả năng lên kế hoạch và quản lý thời gian cá nhân cũng giúp mỗi tester thành công hơn trong công việc của mình, bảo đảm tuân thủ mục tiêu và yêu cầu của dự án. Việc nắm rõ mục tiêu của dự án và trách nhiệm được giao, tester sẽ đưa ra chiến lược kiểm thử phù hợp như xác định độ ưu tiên của test case và các chức năng/màn hình cần kiểm thử, từ đó sẽ phân bổ thời gian hợp lý đảm bảo quá trình kiểm thử diễn ra hiệu quả và đạt mục tiêu đề ra.
Báo cáo lỗi và ghi chú hiệu quả
Trong quá trình thực hiện kiểm thử trên chương trình – lập trình viên đã lập trình xong – việc ghi chú mọi diễn biến xảy ra trong quá trình này giúp tester có đủ thông tin để báo cáo cho các bên liên quan như tester leader/manager hay PM về công việc đã hoàn thành. Và cũng giúp tester trong việc báo cáo lỗi rõ ràng (hay gọi là “post bug”) giúp lập trình viên có thể tái hiện và sửa lỗi dễ dàng hơn.
Giao tiếp và làm việc nhóm
Kiểm thử không chỉ là công việc của riêng cá nhân tester mà nó còn liên quan đến nhiều vai trò khác trong nhóm như đã đề cập ở trên. Trong quá trình làm việc, đòi hỏi sự phối hợp chặt chẽ với các thành viên khác trong dự án, người mà tester sẽ làm việc chung nhiều nhất là lập trình viên – nhất là khi trao đổi về các lỗi đã được báo cáo, tiếp theo là PM hoặc BA trong quá trình tìm hiểu về hệ thống để viết test case. Vì thế, để làm việc hiệu quả, tester cần có khả năng giao tiếp tốt, trình bày vấn đề rõ ràng, biết lắng nghe và chủ động phối hợp với các bên liên quan.
Tự học hỏi và liên tục cập nhật kiến thức
Ngành công nghệ thông tin luôn phát triển nhanh chóng, đòi hỏi tester phải liên tục trau dồi và cập nhật kiến thức mới để đáp ứng yêu cầu công việc. Vì thế, khả năng học hỏi linh hoạt và nâng cấp bản thân sẽ giúp họ nâng cao năng lực, và luôn ở thế chủ động trong mọi tình huống như cắt giảm nhân sự do hết dự án hoặc kinh tế khó khăn.
Bằng việc rèn luyện và nâng cao các kỹ năng này, Kiểm thử viên sẽ có được nền tảng vững chắc để phát triển sự nghiệp trong lĩnh vực kiểm thử phần mềm, góp phần xây dựng những sản phẩm chất lượng và đáp ứng nhu cầu của người dùng.
Mời xem thêm 5 kỹ năng mọi tester cần có
Công việc kiểm thử dành cho ai?
Không thể phủ nhận rằng rất nhiều công ty tuyển dụng tester chỉ ưu tiên các ứng viên có xuất phát điểm là học công nghệ thông tin (CNTT). Với lý do đơn giản: học công nghệ thông tin mới tham gia phát triển phần mềm được. Qua quá trình học CNTT, bạn sẽ hiểu rõ quá trình một phần mềm được phát triển và bạn cũng nắm được nhiều kiến thức và các vấn đề về kỹ thuật, bạn sẽ hiểu các thuật ngữ chuyên ngành phần mềm. Nhưng có một sự thật rằng bạn không thể kiểm thử và đảm bảo sản phẩm hoạt động như mong đợi của người dùng hay khách hàng nếu bạn không có kiến thức nghiệp vụ về lĩnh vực mà phần mềm sẽ phục vụ. Điều này đặc biệt quan trọng khi tham gia kiểm thử các dự án phần mềm liên quan đến các lĩnh vực phức tạp như ngân hàng, quản lý nhà máy sản xuất, hay xây dựng.
Ví dụ, khi bạn tham gia vào một dự án phát triển phần mềm quản lý khách hàng cho một ngân hàng, thì không cần thiết phải đào tạo cho bạn kiến thức nghiệp vụ nhiều do lĩnh vực này đơn giản. Nhưng khi tham gia phát triển một sàn giao dịch chứng khoán, hoặc quản lý các giao dịch chính của ngân hàng (core banking) thì kiến thức về lĩnh vực ngân hàng là bắt buộc phải có. Bạn xuất thân là “dân ngân hàng” thì việc phân tích và tìm hiểu yêu cầu nghiệp vụ nằm trong bàn tay. Kết hợp với các kỹ thuật kiểm thử phần mềm, giúp bạn thiết kế được bộ test case “ít mà chất” bao phủ các luồng xử lý, đảm bảo tính đúng đắn và tuân thủ yêu cầu.
Tester trái ngành và chuyên ngành IT
Một ví dụ khác, nếu bạn nắm rõ quy trình phức tạp của vay vốn thế chấp sẽ tự tin kiểm thử và giúp nghiệp vụ đáp ứng được mức độ thân thiện với người dùng cho quá trình nộp hồ sơ vay vốn. Tương tự, người hiểu về chuyển khoản quốc tế có thể đảm bảo phần mềm xử lý chuyển đổi tiền tệ và tuân thủ các quy định xuyên biên giới một cách chính xác – với dân IT nắm tài liệu mô tả trong tay cũng không tự tin bằng.
Trong trường hợp này “dân IT” không tự tin nhưng bạn sẽ xác định được liệu các chức năng hiện có của phần mềm đang phát triển có thực sự đáp ứng nhu cầu thực tế của người dùng cuối hay không – Do bạn nắm rõ nghiệp vụ ngân hàng nên hiểu phần mềm phải hoạt động thế nào thì mới đúng! Trong trường hợp này “tester trái ngành” lại có ích cho dự án. Nếu bạn là dân IT và nắm vững nghiệp vụ nữa thì tuyệt vời.
Bạn có phù hợp với công việc này không?
Dù nhận định “Ai cũng có thể làm tester” mang tính khích lệ, nhưng nó cũng phản ánh một sự thật quan trọng rằng: để trở thành tester, bạn cần được đào tạo, có tính kỷ luật, và sự đam mê trong công việc. Đam mê thôi chưa đủ, bạn phải có nỗ lực và dành thời gian học tập rèn luyện nhiều hơn các bạn học CNTT do xuất phát điểm khác nhau, và ngành phát triển phần mềm đòi hỏi kiến thức chuyên ngành cao mới có thể làm việc hiệu quả với các nhóm khác đặc biệt là lập trình viên.
Mặc dù công việc này mở ra cơ hội nghề nghiệp cho các bạn đến từ nhiều lĩnh vực khác nhau – không chỉ dành cho các bạn học IT, nhưng để trở thành một tester giỏi luôn đòi hỏi sự nỗ lực không ngừng. Điều này không chỉ giúp bản thân bạn phát triển sự nghiệp mà còn góp phần đa dạng hóa nguồn nhân lực trong ngành công nghệ thông tin. Và để bắt kịp với sự thay đổi của thế giới công nghệ, tester cũng phải liên tục cập nhật kiến thức mới và rèn luyện kỹ năng của mình để nâng cao hiệu quả công việc và đảm bảo sản phẩm cuối cùng luôn đạt mức chất lượng cao nhất có thể.
Cát Ngô