Nội dung bài học
Đối với kiểm tra thủ công, người kiểm tra phải ngồi trước màn hình và xem qua chúng. Ngược lại, kiểm thử tự động hiệu quả hơn nhiều đối với người kiểm thử vì các trường hợp kiểm thử được thực thi tự động bằng cách sử dụng công cụ / phần mềm.
Đành rằng cả hai đều có những lợi ích và bất lợi riêng. Phụ thuộc vào nhiều yếu tố như ngân sách, tiến trình và nguồn nhân lực,… Bạn có thể chọn loại thử nghiệm phù hợp để lưu trữ mục tiêu của mình.
1. Manual Testing là gì?
Manual Testing là việc kiểm thử phần mềm được thực hiện thủ công bởi người kiểm thử (QA/Tester) thủ công các chức năng và tính năng của ứng dụng mà không sử dụng công cụ tự động. Nó được thực hiện để tìm ra lỗi (bugs) sự cố hoặc thiếu sót trong hệ thống để đảm bảo rằng phần mềm hoạt động đúng như mong đợi. Trong manual testing, người kiểm thử phải kiểm tra tất cả các tính năng cần thiết của ứng dụng. Trong quá trình này, Tester phải execute test, lập báo cáo mà không cần sự trợ giúp của bất kì công cụ tự động nào.
Đặc điểm của Manual Testing:
- Kiểm thử thủ công: Người kiểm thử đóng vai trò như người dùng cuối để kiểm tra ứng dụng bằng cách thực hiện các trường hợp kiểm thử (test cases) được định nghĩa trước.
- Không dùng công cụ tự động: Mọi bước kiểm tra đều được thực hiện bằng tay mà không cần phần mềm hỗ trợ tự động hóa.
- Cần kỹ năng phân tích: Người kiểm thử phải hiểu rõ yêu cầu của phần mềm, có khả năng suy luận và tìm kiếm lỗi tiềm ẩn trong hệ thống.
2. Automation Testing là gì?
Automation Testing là một phương pháp kiểm thử phần mềm mà người kiểm thử phải sử dụng các công cụ hoặc script tự động hóa để thực hiện kiểm tra các chức năng và tính năng của ứng dụng. Mục tiêu của Automation Testing là giảm thiểu công sức và thời gian kiểm thử thủ công, đồng thời đảm bảo độ chính xác và nhất quán khi kiểm tra các kịch bản lặp đi lặp lại.
Đặc điểm của Automation Testing:
- Tự động hóa việc kiểm thử: Các công cụ hoặc framework kiểm thử được sử dụng để chạy các test cases tự động.
- Dựa trên script: Cần viết các script kiểm thử (test scripts) để mô phỏng các thao tác và kiểm tra trên ứng dụng.
- Phù hợp với kiểm thử hồi quy và lặp lại: Hiệu quả cho các bài kiểm thử regression hoặc các kịch bản cần chạy nhiều lần.
Khi nào nên sử dụng Automation Testing:
- Khi ứng dụng đã ổn định và các tính năng ít thay đổi.
- Khi cần kiểm thử các kịch bản lặp lại (regression testing).
- Khi kiểm thử đòi hỏi khối lượng lớn hoặc nhiều nền tảng.
- Khi cần tăng tốc độ phát hành sản phẩm thông qua CI/CD.
3. Sự khác nhau giữa Manual testing với Automation testing
Tiêu chí | Manual Testing | Automation Testing |
---|---|---|
Định nghĩa | Testcase được thực hiện thủ công bởi tester | Tester phải viết test script và lựa chọn công cụ để tự động hóa việc test |
Thời gian xử lý | Cần nhiều thời gian và nhân lực | Thời gian kiểm thử nhanh hơn so với manual testing |
Exploratory Testing/ Kiểm thử khám phá | Exploratory Testing/ Kiểm thử khám phá được thực hiện | Không cho phép kiểm thử khám phá |
Thay đổi UI | Sự thay đổi nhỏ như ID, Class hoặc 1 button nhưng không ảnh hưởng đến thực thi test | Chỉ 1 vài thay đổi nhỏ trong UI, người dùng phải update script để đảm bảo có kết quả như mong đợi |
Độ tin cậy | Kết quả kiểm thử không đáng tin cậy vì có khả năng xảy ra lỗi do con người | Do được thực thi bằng tool và scripts nên kết quả đáng tin cậy hơn |
Đầu tư | Cần nhiều nguồn nhân lực | Bắt buộc phải đầu tư tool để test và những kĩ sư auto |
Báo cáo | Manual test thường lưu lại kết quả ở Excel, Word... | Tất cả stakeholders có thể đăng nhập vào hệ thống auto và kiểm tra lại kết quả test |
Sự quan sát của con người | Cần có sự quan sát của con người để giúp cho hệ thống thân thiện với người dùng | Không có sự quan sát của con người |
Kiểm thử hiệu năng/Performance Testing | Không thực hiện được Kiểm thử hiệu năng/Performance Testing | Kiểm thử hiệu năng/Performance Testing phải được thực hiện bởi 1 tool phù hợp |
Kiến thức lập trình | Không cần có khả năng code | Phải có kiến thức về lập trình để tạo ra các test script |
Cách tiếp cận tốt | Manual testing hữu ích khi chúng ta chạy lại bộ testcase 1 hoặc 2 lần | Auto test rất hữu ích khi ta chạy lại bộ script nhiều lần |
Sử dụng khi nào? | Kiểm thử thủ công phù hợp cho Exploratory Testing/ test khám phá, Usability/ Khả năng sử dụng và Adhoc Testing/ Kiểm thử dựa vào thực tế | Test auto thích hợp cho kiểm thử hồi quy, hiệu năng hoặc các trường hợp có khả năng lặp lại nhiều lần |
4. Ưu và nhược điểm của Manual Testing
Ưu điểm:
- Tester có phản hồi trực quan nhanh và chính xác
- Ít tốn kém hơn vì chúng ta không cần phải chi ngân sách cho các công cụ và các quy trình tự động hóa.
- Có thêm khả năng phán đoán của con người
- Một yêu cầu thay đổi cũng không làm kiểm thử thủ công trở lên quá phức tạp.
Nhược điểm:
- Manual testing ít tin cậy hơn bởi nó được thực hiện bởi con người => Dễ xảy ra sai sót hơn
- Quá trình kiểm thử không thể ghi lại
- Với một số task khó thực hiện thủ công như performance testing/kiểm thử hiệu năng và stress testing/kiểm thử tải thì manual testing rất khó để thực hiện.
5. Ưu và nhược điểm của Automation Testing
Ưu điểm:
- Quá trình kiểm thử diễn ra nhanh chóng và hiệu quả hơn.
- Kiểm tra tự động giúp chúng ta tìm thấy nhiều lỗi hơn so với con người
- Quá trình test được ghi lại => Cho phép sử dụng lại hàng loạt các hoạt động thử nghiệm.
- Kiểm thử tự động được thực hiện bằng cách sử dụng các công cụ phần mềm, do đó nó hoạt động không mệt mỏi, không giống như con người trong kiểm tra thủ công.
- Kiểm tra tự động hỗ trợ các ứng dụng khác nhau.
- Phạm vi kiểm tra có thể được tăng lên vì các tool không bao giờ quên kiểm tra ngay cả đơn vị nhỏ nhất.
Nhược điểm:
- Nếu không có yếu tố con người, rất khó để có được cái nhìn sâu sắc về các khía cạnh trực quan của giao diện người dùng của bạn như màu sắc, phông chữ, kích thước, độ tương phản hoặc kích thước nút.
- Các công cụ để chạy thử nghiệm tự động hóa có thể đắt tiền, có thể làm tăng chi phí của dự án.
- Công cụ chạy auto test vẫn chưa hoàn hảo.
- Bảo trì tốn kém.
Anh Tester
facebook.com/anhtester
Đường dẫu khó chân vẫn cần bước đi
Đời dẫu khổ tâm vẫn cần nghĩ thấu