Sự khác biệt của kiểm thử thủ công và kiểm thử tự động
Nếu bạn chưa hiểu rõ về hai loại kiểm thử là kiểm thử thủ công (manual testing) và kiểm thử tự động (automation testing) thì bài viết sẽ chỉ ra sự khác biệt giữa hai loại kiểm thử. Hãy cùng tìm hiểu chi tiết nhé.
1. Kiểm thử thủ công là gì?
Kiểm thử thủ công là kiểm thử phần mềm trong đó các kiểm thử được thực hiện thủ công bởi QA Analyst. Kiểm thử thủ công được thực hiện để tìm ra các lỗi trong phần mềm đang được phát triển.
Trong kiểm thử thủ công, tester sẽ kiểm thử tất cả các tính năng thiết yếu của ứng dụng hoặc phần mềm. Tester thực hiện các test cases và tạo báo cáo kiểm thử mà không cần sự trợ giúp của bất kỳ công cụ kiểm thử phần mềm tự động nào.
Đây là một phương pháp kiểm thử cổ điển, giúp tìm lỗi trong các hệ thống phần mềm, thường được tiến hành bởi một tester có kinh nghiệm và thực hiện theo quy trình kiểm thử phần mềm.
Bài viết này được đăng tại [free tuts .net]
2. Kiểm thử tự động là gì?
Trong Kiểm thử tự động, tester viết code / test scripts để tự động thực hiện kiểm thử. Tester sử dụng các công cụ tự động hóa phù hợp để xây dựng các kịch bản kiểm thử và xác minh phần mềm hoạt động đúng hay không. Mục tiêu là hoàn thành kiểm thử trong một khoảng thời gian ngắn hơn.
Kiểm thử tự động hoàn toàn dựa vào kiểm thử trước khi chạy tự động kịch bản để so sánh kết quả thực tế với kết quả dự kiến. Điều này giúp tester xác định xem một ứng dụng có hoạt động đúng như mong đợi hay không.
Kiểm thử tự động cho phép tester thực hiện kiểm thử lặp lại và hồi quy mà không cần sự can thiệp của người kiểm thử thủ công (Manual tester). Mặc dù tất cả các quy trình được thực hiện tự động nhưng vẫn đòi hỏi phải thực hiện kiểm thử thủ công trước khi thực hiện kiểm thử tự động để tạo các kịch bản kiểm thử ban đầu.
3. Sự khác biệt giữa Kiểm thử thủ công và Kiểm thử tự động
Thông số | Kiểm thử tự động | Kiểm thử thủ công |
Định nghĩa | Kiểm thử tự động sử dụng các công cụ tự động để thực hiện các trường hợp kiểm thử. | Các trường hợp kiểm thử được thực hiện bởi tester trên phần mềm |
Thời gian xử lý | Kiểm thử tự động nhanh hơn đáng kể so với phương pháp kiểm thử thủ công. | Các trường hợp kiểm thử được thực hiện bởi tester trên phần mềm |
Kiểm thử ngẫu nhiên (Exploratory testing) | Tự động hóa không cho phép kiểm thử ngẫu nhiên | Kiểm thử ngẫu nhiên có thể thực hiện trong Kiểm thử thủ công |
Đầu tư ban đầu | Đầu tư ban đầu trong kiểm thử tự động cao hơn. Mặc dù ROI tốt hơn về lâu dài. | Đầu tư ban đầu trong kiểm thử thủ công là tương đối thấp hơn kiểm thử tự động. ROI thấp hơn so với kiểm thử Tự động trong thời gian dài. |
Độ tin cậy | Kiểm thử tự động là một phương pháp đáng tin cậy, vì được thực hiện bởi các công cụ và scripts nên chính xác và không gây nhàm chán | Kiểm thử thủ công có thể bị nhàm chán và dễ bị lỗi. |
Thay đổi giao diện người dùng | Đối với ngay cả một thay đổi nhỏ trong giao diện người dùng của AUT, scripts kiểm thử tự động cần phải được sửa đổi để hoạt động như mong đợi | Những thay đổi nhỏ như thay đổi trong id, class, v.v. của một nút sẽ không cản trở việc thực hiện một trình kiểm thử thủ công. |
Đầu tư | Đầu tư là cần thiết cho các công cụ kiểm thử cũng như các kỹ sư kiểm thử tự động hóa | Đầu tư là cần thiết cho nguồn nhân lực. |
Hiệu quả chi phí | Không hiệu quả nếu kiểm thử hồi quy với số lượng nhỏ | Kết quả của kiểm thử thủ công thường được ghi lại trong Excel hoặc Word |
Báo cáo Kiểm thử | Với kiểm thử tự động, tất cả các bên liên quan có thể đăng nhập vào hệ thống tự động và xem được kết quả kiểm thử | Kết quả của kiểm thử thủ công thường được ghi lại trong Excel hoặc Word |
Giao diện đối với với người dùng | Kiểm thử tự động không liên quan đến hành động của con người. Vì vậy, không phù hợp với người dùng và trải nghiệm tích cực khách hàng. | Phương pháp kiểm thử thủ công cho phép người dung quan sát, có thể hữu ích để cung cấp hệ thống thân thiện với người dùng. |
Kiểm thử hiệu suất | Các loại Kiểm thử hiệu suất như Load Testing, Stress Testing, Spike Testing, v.v. bắt buộc phải được kiểm thử bằng công cụ tự động. | Kiểm thử hiệu suất là không khả thi |
Thực hiện kiểm thử tương đồng | Có thể được thực hiện tương đồng trên các nền tảng vận hành khác nhau và giảm thời gian thực hiện kiểm thử. | Kiểm thử thủ công có thể được thực hiện tương đồng nhưng sẽ cần tăng nguồn nhân lực |
Kiểm thử hàng loạt | Có thể chạy hàng loạt các Script, có thể thực thi vào ban đêm. | Kiểm thử thủ công không thể thực hiện hàng loạt. |
Kiến thức lập trình | Kiến thức lập trình là bắt buộc để thực hiện kiểm thử tự động. | Không cần kiến thức lập trình trong Kiểm thử thủ công. |
Tiếp cận lý tưởng | Kiểm thử tự động rất hữu ích khi thường xuyên thực hiện cùng một bộ test cases | Kiểm thử thủ công chứng minh hữu ích khi bộ test cases chỉ cần chạy một hoặc hai lần. |
Kiểm thử xác minh build (Build Verification Testing - BVT) | Kiểm thử tự động rất hữu ích cho BVT. | Thực hiện BVT là rất khó khăn và tốn thời gian trong kiểm thử thủ công. |
Thời hạn (Deadlines) | Các kiểm thử tự động không có rủi ro trễ Deadlines | Kiểm thử thủ công có nguy cơ trễ Deadlines cao. |
Framework | Kiểm thử tự động hóa sử dụng các Framework như Data Drive, Keyword, Hybrid để tăng tốc quá trình tự động hóa. | Kiểm thử thủ công không sử dụng Framework nhưng có thể sử dụng guidelines, checklists, quy trình nghiêm ngặt để tạo ra một số test case nhất định. |
Tài liệu | Kiểm thử tự động như một tài liệu để training về những test cases unit tự động. Một developer mới có thể tham khảo và nhanh chóng hiểu yêu cầu. | Các trường hợp kiểm thử thủ công không cung cấp giá trị training |
Test Design | Kiểm thử đơn vị Tự động bắt buộc xây dựng thiết kế dựa trên kiểm thử | Kiểm thử đơn vị thủ công không bắt buộc thiết kế trong quá trình coding |
Devops | Kiểm thử tự động giúp Kiểm thử xác minh build và là một phần không thể thiếu của Chu kỳ DevOps | Kiểm thử thủ công loại bỏ nguyên lý build tự động của DevOps |
Khi nào nên sử dụng? | Kiểm thử tự động phù hợp cho Regression Testing, Performance Testing, Load Testing hoặc các trường hợp kiểm thử chức năng có khả năng lặp lại cao. | Kiểm thử thủ công phù hợp cho Exploratory, Usability và kiểm thử Adhoc. Nó cũng nên được sử dụng khi AUT thay đổi thường xuyên. |
4. Ưu điểm và nhược điểm của kiểm thử thủ công
Ưu điểm:
- Nhận phản hồi trực quan nhanh và chính xác
- Ít tốn kém hơn vì không cần phải chi ngân sách cho các công cụ và quy trình tự động hóa
- Sự phán đoán và trực giác của con người luôn có lợi cho yếu tố thủ công
- Trong khi kiểm thử một thay đổi nhỏ, một kiểm thử tự động hóa sẽ yêu cầu coding có thể tốn thời gian. Trong khi kiểm thử thủ công lại không tốn thời gian.
Nhược điểm:
- Phương pháp kiểm thử thủ công ít đáng tin cậy hơn vì được thực thi bởi con người. Do đó, dễ mắc sai lầm & không tìm thấy lỗi.
- Quá trình kiểm thử thủ công không thể được ghi lại, do đó không thể sử dụng lại.
- Một số phần nhất định khó thực hiện thủ công, có thể cần thêm thời gian.
5. Ưu điểm và nhược điểm của kiểm thử tự động
Ưu điểm:
Kiểm thử tự động giúp bạn tìm thấy nhiều lỗi hơn so với tester
- Vì hầu hết các phần của quy trình kiểm thử là tự động, bạn có thể có một quy trình nhanh chóng và hiệu quả
- Quá trình tự động có thể được ghi lại. Điều này cho phép bạn sử dụng lại và thực hiện cùng loại hoạt động kiểm thử
- Kiểm thử tự động được thực hiện bằng các công cụ phần mềm, do đó, có thể hoạt động liên tục mà không biết mệt mỏi.
- Có thể dễ dàng tăng năng suất, cung cấp kết quả kiểm thử nhanh & chính xác
- Kiểm thử tự động hỗ trợ các ứng dụng khác nhau
- Phạm vi kiểm thử có thể được tăng lên vì công cụ kiểm thử tự động hóa không bỏ qua các đơn vị kiểm thử, ngay cả đơn vị nhỏ nhất
Nhược điểm:
- Không có yếu tố con người, thật khó để hiểu sâu hơn về các khía cạnh trực quan của giao diện người dùng như màu sắc, phông chữ, kích thước, độ tương phản hoặc kích thước nút bấm, layout...
- Các công cụ để chạy kiểm thử tự động có thể tốn kém, có thể làm tăng chi phí kiểm thử của dự án.
- Công cụ kiểm thử tự động chưa phải là bằng chứng đầy đủ. Mỗi công cụ tự động hóa đều có những hạn chế của chúng làm, giảm phạm vi tự động hóa.
- Gỡ lỗi test scripts là một vấn đề lớn trong kiểm thử tự động. Kiểm thử bảo trì sẽ tốn kém.
6. Kết luận
- Kiểm thử thủ công là kiểm thử phần mềm trong đó các kiểm thử được thực hiện thủ công bởi QA Analyst.
- Trong Kiểm thử phần mềm tự động, tester viết code / test scripts để tự động thực hiện kiểm thử.
- Kiểm thử thủ công giúp bạn có được phản hồi trực quan nhanh và chính xác.
- Kiểm thử tự động giúp bạn tìm thấy nhiều lỗi hơn so với tester.
- Kiểm thử thủ công là một phương pháp kiểm thử ít tin cậy hơn bởi vì được thực hiện bởi một người. Do đó, nó luôn dễ bị sai lầm & không phát hiện lỗi.
- Các công cụ để chạy kiểm thử tự động hóa có thể tốn kém, có thể làm tăng chi phí của dự án.
- Kiểm thử thủ công tốn thời gian và chiếm nhiều nguồn nhân lực.
- Kiểm thử tự động nhanh hơn đáng kể so với phương pháp thủ công.