So sánh công việc Manual Tester và Automation Tester: nhiệm vụ, kỹ năng, công cụ, yêu cầu lập trình và hướng phát triển nghề nghiệp của từng vị trí.
Khi tìm hiểu về nghề Tester, chúng ta thường gặp hai vị trí: Manual Tester và Automation Tester.
Cả hai đều hướng đến một mục tiêu chung là đảm bảo chất lượng phần mềm, phát hiện rủi ro và hạn chế lỗi trước khi sản phẩm đến tay người dùng.
Tuy nhiên, công việc hằng ngày, kỹ năng chuyên môn, công cụ sử dụng và cách tiếp cận kiểm thử của hai vị trí lại có nhiều điểm khác nhau.
Hiểu rõ sự khác biệt này sẽ giúp bạn hình dung tốt hơn công việc thực tế của một Tester và lựa chọn hướng phát triển phù hợp.
Manual Tester là người trực tiếp phân tích yêu cầu, thiết kế kịch bản kiểm thử và thực hiện kiểm thử phần mềm bằng thao tác của con người.
Công việc của Manual Tester không đơn giản là “bấm thử xem phần mềm có lỗi không”.
Trước khi thực hiện kiểm thử, Tester cần hiểu:
Từ đó, Tester xây dựng Test Scenario, Test Case, Test Data và thực hiện kiểm thử.
Khi phát hiện lỗi, Tester cần mô tả chính xác điều kiện xảy ra lỗi, các bước tái hiện, kết quả thực tế và kết quả mong đợi để Developer có thể xử lý.
Vì vậy, giá trị quan trọng của Manual Tester nằm ở tư duy kiểm thử và khả năng phát hiện rủi ro, chứ không chỉ ở thao tác kiểm tra phần mềm.
Trong một dự án phần mềm, công việc của Manual Tester thường bao gồm:
Manual Tester vì thế thường làm việc khá nhiều với BA, Developer, PM và các thành viên khác trong dự án.
Automation Tester sử dụng lập trình và các công cụ kiểm thử để xây dựng những Test Script có khả năng tự động thực hiện một phần quá trình kiểm thử.
Thay vì Tester phải lặp lại cùng một chuỗi thao tác nhiều lần, Automation có thể giúp máy thực hiện những kịch bản phù hợp một cách nhanh và nhất quán.
Ví dụ:
Một hệ thống có chức năng đăng nhập cần kiểm tra thường xuyên sau mỗi lần cập nhật.
Manual Tester có thể trực tiếp nhập tài khoản, mật khẩu, thực hiện đăng nhập và kiểm tra kết quả.
Automation Tester có thể xây dựng Test Script để hệ thống tự động thực hiện các kịch bản đăng nhập đã xác định.
Tuy nhiên, Automation Testing không có nghĩa là tự động hóa toàn bộ hoạt động kiểm thử.
Tester vẫn phải xác định:
Vì vậy, Automation Tester vẫn cần tư duy kiểm thử của một Tester, đồng thời có thêm năng lực lập trình và xây dựng hệ thống kiểm thử tự động.
Tùy dự án, Automation Tester có thể thực hiện:
Các công nghệ thường gặp có thể bao gồm Java, Selenium WebDriver, TestNG, POM, Git/GitHub và những công cụ khác tùy theo dự án.
Manual Tester và Automation Tester đều hướng đến mục tiêu đảm bảo chất lượng phần mềm, nhưng khác nhau về cách thực hiện công việc, kỹ năng và công cụ sử dụng.
Về cách thực hiện kiểm thử
Manual Tester trực tiếp thực hiện các bước kiểm thử, quan sát kết quả và đánh giá phần mềm dựa trên Test Case hoặc các tình huống thực tế.
Automation Tester sử dụng lập trình và công cụ để xây dựng Test Script, giúp tự động thực hiện những kịch bản kiểm thử phù hợp.
Về tư duy kiểm thử
Cả Manual Tester và Automation Tester đều cần tư duy kiểm thử tốt.
Manual Tester cần phân tích Requirement, xác định các tình huống có thể xảy ra và thiết kế Test Case để phát hiện rủi ro.
Automation Tester cũng cần những kỹ năng này trước khi quyết định Test Case nào nên được tự động hóa. Automation không thay thế tư duy kiểm thử mà sử dụng công nghệ để tối ưu quá trình thực hiện kiểm thử.
Về kỹ năng lập trình
Manual Tester không bắt buộc phải biết lập trình khi mới bắt đầu. Tuy nhiên, kiến thức về SQL, API, Web và hệ thống phần mềm sẽ giúp Tester phân tích và kiểm thử tốt hơn.
Automation Tester cần có nền tảng lập trình để đọc, viết và bảo trì Test Script. Tùy công nghệ và dự án, Tester có thể sử dụng Java hoặc các ngôn ngữ lập trình khác.
Về công cụ sử dụng
Manual Tester thường làm việc với các công cụ quản lý Test Case, quản lý Bug, SQL, Postman, Redmine, Jira hoặc những công cụ tương tự.
Automation Tester ngoài các công cụ kiểm thử còn sử dụng các công nghệ phục vụ tự động hóa như Selenium WebDriver, TestNG, Git/GitHub và Automation Framework.
Về các loại kiểm thử phù hợp
Manual Testing có lợi thế với Exploratory Testing, kiểm thử trải nghiệm người dùng, các chức năng mới hoặc những tình huống cần sự quan sát và đánh giá của con người.
Automation Testing phù hợp với những Test Case ổn định, phải thực hiện nhiều lần hoặc các bộ Regression Test cần chạy thường xuyên.
Về khả năng kiểm thử lặp lại
Khi phải thực hiện một Test Case nhiều lần, Manual Tester cần lặp lại các thao tác kiểm thử nên sẽ tốn nhiều thời gian hơn.
Với Automation Testing, Test Script đã được xây dựng có thể chạy lại nhiều lần, giúp giảm thời gian cho những công việc kiểm thử có tính lặp lại cao.
Về hướng phát triển nghề nghiệp
Manual Tester có thể phát triển lên Senior Tester, Test Lead, QA Lead hoặc mở rộng sang các vị trí liên quan đến nghiệp vụ và quản lý chất lượng.
Automation Tester có thể phát triển sâu hơn theo hướng Automation Engineer, QA Automation hoặc các vị trí kiểm thử yêu cầu năng lực kỹ thuật cao hơn.
Điểm quan trọng là Manual Testing và Automation Testing không phải hai hướng đối lập.
Manual giúp Tester xây dựng tư duy kiểm thử và hiểu cách phát hiện rủi ro. Automation bổ sung khả năng sử dụng lập trình và công cụ để tự động hóa những phần kiểm thử phù hợp.
Trong một dự án thực tế, hai phương pháp thường được kết hợp để nâng cao hiệu quả kiểm thử thay vì lựa chọn một và loại bỏ phương pháp còn lại.
Trong nhiều dự án, Manual Testing và Automation Testing được sử dụng song song.
Ở giai đoạn chức năng còn thay đổi nhiều, Tester thường cần phân tích Requirement, kiểm tra luồng nghiệp vụ, trải nghiệm người dùng và thực hiện Exploratory Testing.
Khi sản phẩm dần ổn định và xuất hiện nhiều Test Case phải chạy lặp lại, Automation bắt đầu phát huy hiệu quả.
Ví dụ, sau mỗi phiên bản mới, một hệ thống cần kiểm tra lại hàng trăm chức năng cũ.
Nếu tất cả đều thực hiện thủ công, đội kiểm thử sẽ mất rất nhiều thời gian.
Một số Test Case ổn định và có tính lặp lại cao có thể được Automation để Tester dành thời gian cho những tình huống mới và phức tạp hơn.
Vì vậy, câu hỏi trong dự án thường không phải:
Manual hay Automation tốt hơn?
Mà là:
Trường hợp nào nên Manual và trường hợp nào nên Automation?
Một Automation Tester vẫn cần hiểu bản chất của kiểm thử.
Bởi trước khi viết Test Script, Tester phải biết mình đang kiểm thử điều gì và vì sao phải kiểm thử nó.
Nếu không hiểu Requirement, Test Case, Test Data, Expected Result và các rủi ro của hệ thống, việc viết Automation Script rất dễ trở thành tự động hóa một Test Case chưa tốt.
Có thể hiểu đơn giản:
Manual Testing xây dựng tư duy kiểm thử.
Automation Testing bổ sung khả năng sử dụng lập trình để tối ưu một phần hoạt động kiểm thử.
Đó cũng là lý do người mới thường nên xây dựng nền tảng kiểm thử trước khi đi sâu vào Automation.
Manual Tester không bắt buộc phải trở thành lập trình viên.
Nhưng trong các dự án thực tế, nếu chỉ biết thực hiện Test Case trên giao diện thì phạm vi công việc sẽ khá hạn chế.
Một Tester có thêm kiến thức về:
sẽ có khả năng phân tích lỗi sâu hơn và phối hợp với đội dự án tốt hơn.
Vì vậy, ranh giới giữa một Tester “chỉ kiểm thử bằng tay” và một Tester có nền tảng kỹ thuật đang ngày càng khác biệt.
Manual Testing có thể là điểm bắt đầu của nghề Tester, nhưng không nhất thiết là điểm kết thúc.
Tùy năng lực và định hướng, một Tester có thể phát triển theo nhiều hướng:
Manual Tester → Senior Tester → Test Lead/QA Lead
hoặc:
Manual Tester → Automation Tester → Automation Engineer/QA Automation
Một số Tester có kiến thức nghiệp vụ tốt cũng có thể phát triển sang BA, Product hoặc các vị trí quản lý dự án.
Điều quan trọng không phải là cố gắng chuyển từ Manual sang Automation càng nhanh càng tốt.
Quan trọng hơn là hiểu mình đang thiếu năng lực nào để đảm nhận được công việc ở cấp độ tiếp theo.
Nếu chưa có nền tảng kiểm thử, bạn nên bắt đầu từ tư duy kiểm thử, Requirement, Test Case và quy trình làm việc của Tester trước.
Sau đó mở rộng sang SQL, Web, Mobile và API để hiểu sâu hơn về hệ thống.
Khi đã hiểu cách thiết kế Test Case và xác định được những kịch bản phù hợp để tự động hóa, bạn có thể học thêm lập trình và Automation Testing.
Đây cũng là cách giúp việc học Automation không chỉ dừng lại ở việc “biết Selenium”, mà hiểu được vì sao phải Automation và Automation điều gì.
Tại DevPro, Manual Testing và Automation Testing được xây dựng như hai phần trong hệ sinh thái đào tạo Tester.
Nếu bạn mới bắt đầu, có thể tham khảo Khóa học kiểm thử phần mềm tại DevPro để xây dựng nền tảng về tư duy kiểm thử, Requirement, Test Case, SQL, Web, Mobile, API, Log Bug và thực hành trên dự án thực tế.
Nếu đã có nền tảng kiểm thử và muốn phát triển kỹ năng tự động hóa, có thể tham khảo Khóa học Automation Testing tại DevPro với lộ trình Java Core, Selenium WebDriver, TestNG, POM, Git/GitHub và thực hành Automation trên dự án.
Manual và Automation không phải hai hướng đối lập.
Một Tester có tư duy kiểm thử tốt, hiểu hệ thống và biết sử dụng Automation đúng chỗ sẽ có nhiều lựa chọn hơn trong quá trình phát triển nghề nghiệp.