Manual test là gì

  • Anh Tester
  • Manual Testing

Khi nói đến kiểm thử phần mềm, kiểm thử tự động và kiểm thử thủ công là hai phương pháp kiểm thử phần mềm và cả hai phương pháp này đều rất quan trọng để phát triển phần mềm.Đố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.

Manual testing là việc kiểm thử phần mềm được thực hiện thủ công bởi QA/tester. Nó được thực hiện để tìm ra bug trong quá trình phát triển phần mềm. Trong manual testing, Tester 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.


2. Automation Testing là gì?

Trong Automation testing, Tester phải viết test script để tự động hóa việc test. Họ sử dụng những công cụ thích hợp với mục tiêu là hoàn thành việc test trong một khoảng thời gian ngắn hơn và nhanh hơn.


3. Sự khác nhau giữa Manual testing với Automation testing


Parameter 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.

Tài liệu tham khảo:

  • //www.guru99.com/difference-automated-vs-manual-testing.html

  • Tags:
  • Automation Testing
  • Manual Testing
  • QA
  • Testing

Đối với một dự án, có ba khía cạnh quan trọng cần chú ý đó là chi phí, thời gian và chất lượng. Bất kỳ dự án nào cũng có mục tiêu là có được một sản phẩm chất lượng cao nhưng giảm được chi phí và thời gian cần thiết để hoàn thành dự án. Vì thế mà kiểm thử phần mềm là một phần không thể thiếu của bất kỳ dự án nào. Kiểm thử phần mềm được phân loại gồm Manual testing[Kiểm thử thủ công] và Automation Testing [Kiểm thử tự động]. Vậy kiểm thử thủ công và kiểm thử tự động có những ưu và nhược điểm gì và dựa vào đâu để bạn có thể quyết định thời điểm sử dụng kiểm thử thủ công và thời điểm sử dụng kiểm thử tự động để tối ưu hóa chi phí và thời gian của dự án.

1. Manual testing là gì?

Manual testing là việc thử nghiệm phần mềm được làm thủ công bởi con người. Và người thực hiện các công việc đó còn được gọi là Tester.

Tester thực hiện manual testing đảm bảo rằng một phần mềm/ứng dụng hoạt động bình thường bằng cách tuân theo các điều kiện được viết trong testcase. Tester đánh giá thiết kế, chức năng và hiệu suất của ứng dụng bằng cách click vào các phần khác nhau của ứng dụng/hệ thống đó.

Ví dụ: Để kiểm thử một chức năng thêm vào giỏ hàng của một trang web thương mại điện tử, tester phải kiểm tra bằng cách thực hiện các thao tác cơ bản như một người dùng cuối của hệ thống, sau khi chọn được món hàng muốn mua trên trang web đó thì sẽ phải thao tác đối với nút nào để đưa được sản phẩm đó vào giỏ hàng. Phân tích kết quả nhận được sau khi thao tác với kết quả mong muốn để đưa ra kết luận xem chức năng đó của hệ thống có đang hoạt động đúng hay không.

2. Automation testing là gì?

Automation testing là thực hiện kiểm thử phần mềm bằng một chương trình đặc biệt với rất ít hoặc không có sự tương tác của con người, giúp tester không phải lặp đi lặp lại các bước nhàm chán.
Trong Automation testing, có các pre-scripted tests được viết sẵn và chạy tự động. Các tests được chạy để so sánh kết quả thực tế với kết quả mong đợi. Các tests chạy tự động giúp tester xác định xem ứng dụng có hoạt động đúng như mong đợi hay không. Automated tests hoạt động rất hiệu quả khi cần thực hiện các kiểm tra lặp lại và hồi quy để đảm bảo rằng một ứng dụng hoạt động chính xác sau khi có thay đổi mới. Các automated tests chạy với sự trợ giúp của các công cụ, tập lệnh và phần mềm để thực hiện các hành động được xác định trước được viết trong test case.

3. Điểm khác nhau giữa Manual testing và Automation testing

Manual testing Automation testing
Manual testing vì là kiểm thử hoàn toàn do hành động của con người nên dễ bị gặp lỗi do con người gây ra. Vì thế mà độ tin cậy và độ chính xác kiểm thử thấp Automation testing chạy với sự trợ giúp của các công cụ, tập lệnh và phần mềm nên có độ tin cậy cao hơn
Chi phí phụ thuộc vào nguồn nhân lực được sử dụng để kiểm thử Chi phí phụ thuộc vào các công cụ kiểm tra được triển khai để thực hiện kiểm thử.
Thời gian cần thiết để kiểm thử thủ công nhiều hơn so với nguồn nhân lực cần để thực hiện nó Thời gian cần thiết để kiểm thử tự động ít hơn các công cụ phần mềm cần để thực hiện các kiểm thử.
Manual testing phù hợp khi các test case được chạy một hoặc hai lần. Do đó không có sự lặp lại thường xuyên các test case Automation testing phù hợp khi các test case cần phải chạy liên tục trong một thời gian dài.
Manual testing giúp tìm ra sự thân thiện của ứng dụng đối với người dùng. Vì con người phải quan sát để tìm ra những điểm bất ổn của ứng dụng. Do đó Manual testing giúp cải thiện trải nghiệm của người dùng Automation testing không đảm bảo sự thân thiện của ứng dụng đối với người dùng. Vì không có sự quan sát của con người, không có đảm bảo về trải nghiệm khách hàng.

4. Vậy khi nào thì sử dụng Maunal testing và khi nào thì sử dụng Automation testing?

4.1. Khi nào thì sử dụng Manual testing

Manual testing là phù hợp nhất đối với:

Exploratory Testing: Đây là loại kiểm thử đòi hỏi phải thử nghiệm của kiến thức, kinh nghiệm, phân tích / logic kỹ năng, sáng tạo và trực giác. Xét nghiệm này được đặc trưng bởi các tài liệu ở đây kém bằng văn bản kỹ thuật, hoặc một thời gian ngắn để thực hiện. Chúng ta cần những kỹ năng của con người để thực hiện quá trình kiểm thử trong kịch bản này.

Usability Testing: Đây là một lĩnh vực mà bạn cần để đo độ thân thiện, hiệu quả, hoặc thuận tiện phần mềm hoặc sản phẩm cho người dùng cuối. Ở đây, quan sát con người là yếu tố quan trọng nhất, do đó, một phương pháp thủ công là một lợi thế.

Ad-hoc Testing: Trong kịch bản này, không có phương pháp cụ thể. Nó là một phương pháp hoàn toàn không có kế hoạch kiểm thử nơi sự hiểu biết và cái nhìn sâu sắc của các thử nghiệm là yếu tố quan trọng duy nhất.

4.2. Khi nào thì sử dụng Automation testing

Automation testing là phù hợp nhất đối với:

Regression Testing: automation testing là phù hợp vì các thay đổi mã thường xuyên và khả năng chạy các hồi quy một cách kịp thời.

Load Testing: automation testing cũng là cách tốt nhất để hoàn thành các thử nghiệm có hiệu quả khi nó đi kèm để tải thử nghiệm.

Performance Testing: thử nghiệm mà đòi hỏi sự mô phỏng của hàng ngàn người dùng đồng thời đòi hỏi tự động hóa.

Khi phát triển phần mềm, việc thực hiện kiểm thử là rất quan trọng và bắt buộc để tạo ra một phầm mềm tốt. Vì thế, khi đã có kiến thức về kiểm thử thì việc lựa chọn loại hình kiểm thử phù hợp với sản phẩm là điều cần thiết, dù người thực hiện kiểm thử là ai, chỉ cần là người tham gia vào quá trình phát triển phần mềm thì đều cần phải lưu tâm. Mỗi loại hình kiểm thử đều có điểm mạnh và điểm yếu riêng. Hiện tại hầu như tất cả các tổ chức, công ty phát triển phần mềm đều lựa chọn kiểm thử thủ công cho việc kiểm thử phần mềm của họ. Tuy nhiên các công cụ kiểm thử tự động cũng có những điểm mạnh nhất định mà kiểm thử thủ công không có, nên cần xem xét hoàn cảnh để có thể áp dụng kiểm thử tự động cho quá trình kiểm thử phần mềm.

Để tối ưu hóa chi phí và thời gian cần thiết để hoàn thành một dự án thành công, chúng ta không thể chỉ phụ thuộc vào kiểm thử thủ công hoặc phương pháp kiểm thử tự động. Cần phải linh hoạt kết hợp giữa kiểm thử thủ công và kiểm thử tự động để có thể tạo ra một sản phẩm tốt nhất tới người dùng.

Tài liệu tham khảo:

//reqtest.com/testing-blog/manual-testing-vs-automated-testing/

Cảm ơn mọi người đã đọc! [bow]

Video liên quan

Chủ Đề