Sự khác nhau giữa Exploratory testing và Ad-hoc testing

Sự khác nhau giữa Exploratory testing và Ad-hoc testing

1. Exploratory testing

Định nghĩa:

Exploratory testing là quá trình test phần mềm mà không có kế hoạch và lịch trình đặc biệt. Đây là quá trình kiểm thử thông thường mà không sử dụng bất kỳ bộ testcase nào cả hoặc là những tài liệu cho kế hoạch test ứng dụng của bạn. Xác định chức năng của ứng dụng bằng việc khám phá và học làm test design, testcase và sử dụng thiết bị giả lập để thực hiện test chúng một cách tốt nhất. Tester sẽ dựa trên kinh nghiệm hoặc dựa trên kết quả của những lần test trước để thực hiện loại test này.

Ưu điểm:

  • Phương pháp này không yêu cầu chuẩn bị cho quá trình test vì chúng ta không có tài liệu cho hoạt động kiểm thử.
  • Thời gian trong quá trình test được tiết kiệm do tất cả các nhiệm vụ test được làm cùng một lúc như là quá trình test, thiết kế kịch bản kiểm thử và thực hiện các kịch bản kiểm thử.
  • Nhân viên kiểm thử có thể báo cáo nhiều vấn đề do yêu cầu không đầy đủ hoặc tài liệu yêu cầu còn thiếu.


Nhược điểm:

  • Vài vấn đề không thể được khai thác trong kiểu test này.
  • Có xem xét lại các kế hoạch kiểm tra và thiết kế testcase/kịch bản test trong khi quá trình test có xảy ra vấn đề.
  • Những nhân viên kiểm thử  cần phải nhớ kịch bản test - những gì đang thực hiện test bởi vì nếu có lỗi được tìm thấy, tester sẽ “report a bug” với các bước thích hợp để tái hiện lại nó, với các lỗi khó tái hiện cần phải mô tả các bước một cách thích hợp để thực hiện một cách chính xác lỗi mà tester đã báo cáo, đặc biệt là với các lỗi mới được tìm thấy

2. Adhoc testing

Định nghĩa:

Là một dạng infomal testing mà được thực hiện không có test analysis và test design.

Các loại dùng trong ad-hoc testing là gì?

Về cơ bản có 3 loại ad-hoc testing. Chúng là:

  • Buddy testing: Loại test này được thực hiện bởi nhân viên lập trình và nhân viên kiểm thử những người chịu trách nhiệm cho việc giao nhận từng module cụ thể. Trong loại test này nhân viên lập trình và nhân viên kiểm thử sẽ ngồi cũng nhau và làm việc trên một module cụ thể để tránh từ việc xây dựng các kịch bản không hợp lệ mà còn ở các mặt khác giúp các tester báo cáo những lỗi (defects) không hợp lệ.
  • Pair testing: Loại test này được thực hiện bởi 2 tester ngồi làm việc cùng với nhau trên cùng một module. Về cơ bản họ chia các kịch bản testing giữa các module. Mục đích của các loại testing là đến với các kịch bản kiểm thử tối đa để module của các thực thể hoàn thành mức độ bao phủ. Cũng có thể tạo kịch bản kiểm thử của tester và quan sát trong quá trình kiểm tra các module cùng với nhau.
  • Monkey testing: Loại test này là quá trình thực hiện kiểm tra ngẫu nhiên một vài chức năng trong quá trình test cho một số dữ liệu ngẫu nhiên với mục đích phá vỡ hệ thống. Quá trình kiểm tra này giúp ta phát hiện ra một số lỗi (bug) mới, những lỗi mà trước đó không bắt được.

Ưu điểm:

  1. Ad-hoc testing là việc test tự do để tester áp dụng những cách thức mới của riêng họ trong việc test ứng dụng giúp họ tìm ra nhiều lỗi (defects) nhất có thể so với quá trình thử nghiệm chính thức.
  2. Các loại test có thể được thực hiện bất cứ lúc nào nơi nào trong chu kỳ phát triển phần mềm  mà không theo bất kỳ quy trình chính thức nào.
  3. Loại test này không chỉ bị giới hạn quá trình test của một team mà nó còn có thể được thực hiện bởi nhân viên lập trình trong khi những module của họ đang được phát triển điều đó giúp họ trong việc code bằng những phương pháp tốt nhất
  4. Ad-hoc testing đã được chứng minh là phương pháp mang lại nhiều lợi ích khi mà người tester (QA) có ít thời gian và chiều sâu cho hoạt động kiểm thử của một đặc tính được yêu cầu. Điều này có lợi trong việc cung cấp các tính năng đảm bảo chất lượng và đúng thời hạn.
  5. Ad-hoc testing có thể thực hiện đồng thời với các loại kiểm thử khác giúp cho việc tìm nhiều lỗi (bug) hơn trong những khoảng thời gian ít hơn.
  6. Đối với loại test này tài liệu là không cần thiết mà tester (QA) cần tập trung quá trình kiểm thử vào đặc tính của ứng dụng mà không phải lo lắng về các tài liệu chính thức.

Nhược điểm:

  1. Kể từ khi ad-hoc testing được thực hiện mà không có bất kỳ kế hoạch và không theo bất cứ cấu trúc nào vì vậy việc tái tạo lại lỗi (bug) đã trở thành một rắc rối lớn.
  2. Kịch bản kiểm thử được thực hiện trong suốt quá trình ad-hoc testing không có tài liệu để tester (QA) có thể giữ tất cả các kịch bản trong tâm trí mà QA có thể không nhớ lại trong tương lai.
  3. Ad-hoc testing phụ thuộc rất nhiều vào kỹ năng của tester (QA) người có hiểu biết toàn diện về sản phẩm mà nó không thể được thực hiện bởi một người mới tham gia vào dự án của team.

Tổng kết:

Ad-hoc TestingExploratory Testing
Ad-hoc testing bắt đầu khi đã tìm hiểu ứng dụng và sau đó mới thực hiện quá trình kiểm tra thực tế.Exploratory Testing sẽ tìm hiểm ứng dụng trong khi thực hiện test
Trong Ad-hoc testing tài liệu không phải là nhu cầu cần thiết. Đội QA tham gia vào quá trình kiểm tra mà không cần tài liệu đặc tả yêu cầu.Trong Exploratory Testing tài liệu là bắt buộc. Để đảm bảo về chất lượng của dự án, tài liệu chi tiết của quá trình kiểm tra là cần thiết.
Ad-hoc quan tâm đến sự hoàn hảo của sản phẩm.Exploratory Testing quan tâm đến việc khảo sát chất lượng sản phẩm hơn là hiểu về sản phẩm.
Ad-hoc là công nghệ test của ứng dụng, nó cung cấp vai trò quan trọng trong việc sản xuất phần mềm.Tester (QA) trước hết cần phải biết một chức năng phần mềm. Trước khi thực hiện kiểm tra toàn bộ ứng dụng hoặc phần mềm tester (QA) cần phải tìm hiểu nó thông qua Exploratory Testing.
Thử nghiệm này thực thi một lần duy nhất. Tester (QA) kiểm thử nó một lần tại một thời điểm, tuy nhiên nếu có bất kỳ vấn đề gì tìm thấy trong quá trình test thì cần phải thực hiện lặp lại thao tác.Đây là phương pháp thử nghiệm kết hợp các kết quả kiểm tra trong quá trình nghiên cứu và việc tạo ra một giải pháp mới.
Nó chủ yếu hoạt động trên các mối quan tâm về nghiệp vụ và làm gia tăng sự hiểu biết về các ứng dụng.Nó phân loại các vấn đề và so sánh chúng từ các vấn đề được tìm thấy trong quá khứ. Điều này giúp làm giảm thời gian cho việc kiểm tra.
Ad-hoc Testing không quan trọng là cần phải chuyên gia về phần mềm thực thi nó.Nó luôn luôn thực thi bởi Tester (QA) có kinh nghiệm.
Ad-hoc không cần quan tâm đến các trường hợp khó, mục đích của nó là để chạy các kết quả.Luôn luôn có những tình huống khó khăn trong trường hợp kiểm tra. Có thể phải ngừng thực thi tại một thời điểm nào đó.
Nó cần có sự chuẩn bị để bắt đầu và tiếp tục.Exploratory Testing không cần thời gian bắt đầu.
Đây là phương thức thử nghiệm không chính thức.Đây là nền tảng thử nghiệm chính thức.
Nó làm việc trên quá trình test phủ định là chủ yếu.Quá trình kiểm tra này làm việc trên quá trình khẳng định.
Phương thức kiểm tra này chủ yếu là kết nối các hệ thống con với các ứng dụng và giúp cho việc tìm lỗ hổng khi hệ thống đang hoạt động.Nó khám phá những yếu tố trong ứng dụng và tiến hành kiểm tra chúng bằng cách cung cấp một bản phác thảo.
Nó không làm việc theo luồng của hệ thống.Exploratory testing làm việc theo luồng của hệ thống từ khi hoạt động kiểm tra được bắt đầu. Nó bắt đầu với đối tượng chính và thu thập đúng thông tin đúng về chúng.
Ad-hoc tập trung vào quá trình và kiểm tra ứng dụng nhiều lần.Tập trung giới hạn trong lĩnh vực nhập dữ liệu, kiểm tra với giao diện.

Tham khảo ở link:
1. https://www.globalapptesting.com/blog/ad-hoc-testing#:~:text=Another type of software testing,and bugs in the application.