Áp lực vì số lượng lớn testcase, kỹ thuật thiết kế testcase nào sẽ cứu bạn?

Chắc hẳn đối với mọi tester đã từng nhận được những dự án có những màn hình hay tính năng nếu kiểm tra đủ các case sẽ lên tới hàng ngàn case và điều này là không thể, vậy làm sao để giảm được số lượng case để giảm công sức kiểm tra đồng thời vẫn đảm bảo được chất lượng kiểm thử?

Sau đây tôi xin đưa ra một số kỹ thuật, phương pháp thiết kế testcase có thể đáp ứng các yêu cầu trên:

1. Phân vùng tương đương

Phân vùng tương đương là một phương pháp mà dữ liệu đầu vào được chia thành các vùng dữ liệu tương đương, phương pháp này được sử dụng để giảm thiểu số lượng test case mà vẫn đảm bảo các case bao phủ các yêu cầu.

Ví dụ: Thiết kế các testcase cho trường text box, text box này cho phép nhập tối thiểu 6 ký tự, tối đa 50

Dựa trên phương pháp phân vùng tương đương có thể chia test case thành 3 vùng giá trị

  1. Giá trị hợp lệ từ 6 đến 50 ký tự
  2. Giá trị không hợp lệ nhỏ hơn 6 ký tự
  3. Giá trị không hợp lệ lớn hơn 50 ký tự

Trong mỗi vùng giá trị trên sẽ chọn 1 giá trị bất kỳ đại diện cho vùng giá trị đó, suy ra ta có 3 test case.

Tuy nhiên, vì nhiều ứng dụng hay gặp lỗi ở biên các vùng giá trị nên cần sử dụng thêm phương pháp phân tích giá trị biên.

Ở ví dụ trên có 2 biên là 6 và 50, sử dụng phương pháp phân tích giá trị biên ta có các test case sau:

  • Các giá trị chính xác của biên, đó là 6 và 50 ký tự
  • Các giá trị nhỏ hơn liền kề với biên, đó là 5 và 49 ký tự
  • Các giá trị lớn hơn liền kề với biên đó là 7 và 51 ký tự

Như vậy sau khi áp dụng cả 2 phương pháp phân vùng tương tương và giá trị biên, tổng số testcase cho text box trên là 3 + 6 = 9.

2. Pairwise Testing

Pairs testing hay còn gọi là All-pairs testing vô cùng hữu dụng cho các ứng dụng có chứa nhiều tham số, kiểm thử phần mềm sử dụng phương thức tổ hợp. Một phương pháp kiểm tra toàn bộ sự kết hợp của các cặp có thể từ các tham số liên quan.

Giả sử chúng ta có một màn hình cần được test chứa 10 trường và mỗi trường có 10 giá trị cần test, suy ra ta có 10^10 test case, trong trường hợp này thực hiện kiểm thử cho toàn bộ là điều không thể.

Vậy  Pairs testing sẽ giúp được ta được gì trong trường hợp tương tự trên thông qua ví dụ sau:

Một chức năng/màn hình chứa các elements: List box với 10 giá trị (gồm 1,2,3,4,5,6,7,8,9) và Checkbox, Radio button, Text box, và button Ok. Trong đó Text box chỉ chấp nhận các giá trị từ 1 đến 100. Ta sẽ phân tích các giá trị được chấp nhận của các element:

List box – 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

Check box – Checked or Unchecked

Radio button – ON or OFF

Text box – Any Value between 1 and 100

Sự kết hợp được tính như sau:

List box = 10
Check box = 2
Radio button = 2
Text box = 100

Tổng số lượng test case: 10*2*2*100 = 4000
Tổng số lượng test case bao gồm các giá trị không hợp lệ có thể > 4000

Giờ ta sẽ phân tích giá trị của các elements:

  • List box: Sử dụng kỹ thuật phân vùng tương đương, ta có thể gộp các giá trị của list box thành 2 vùng giá trị là 0 và giá trị khác (các giá trị còn lại),
  • Radio button: giữ nguyên giá trị On, Off
  • Check box: giữ nguyên giá trị Checked, Unchecked
  • Text box: giảm xuống các giá trị: số nguyên hợp lệ (từ 0 đến 9), số nguyên không hợp lệ (ngoài khoảng 0 đến 9), AlphaSpecialCharacter – các ký tự không bao gồm số nguyên

Tổng số các case còn lại: 2*2*2*3=24

Chúng ta tiếp tục giảm số case hơn bằng kỹ thuật Pairs testing

Bước 1: Tạo bảng với các cột là các elements, xếp elements theo thứ tự element có số lượng vùng giá trị nhiều hơn  lên trước

Trong ví này, Text box là element chứa 3 vùng giá trị, các elements còn lại đều chứa 2 vùng giá trị

Text box List box Radio button Check box

 

Bước 2: Điền các giá trị vào bảng theo từng cột, bắt đầu từ cột đầu tiên (Text box), vì cột tiếp theo là List box chứa 2 vùng giá trị dữ liệu nên sẽ nhập mỗi vùng giá trị của Text box trên 2 row

Text box List box Radio button Checkbox
Valid int
Valid int
Invalid int
Invalid int
AlphaSpecialCharacter
AlphaSpecialCharacter

 

Bước 3: Ứng với mỗi giá trị của column 1, ta nhập cả 2 giá trị của column 2 (List box)

Text box List box Radio button Checkbox
Valid int 0 ON
Valid int Others OF
Invalid int 0 ON
Invalid int Others OF
AlphaSpecialCharacter 0 ON
AlphaSpecialCharacter Others OF

 

Bước 4: Kiểm tra các sự kết hợp đảm bảo rằng chúng bao phủ tất cả các trường hợp.

Bảng trên bước 3 có thể thấy thiếu cặp 0 – OF, vì vậy cần đổi vị trí giá trị On, Of trên côt Radio button như sau

Text box List box Radio button Checkbox
Valid int 0 ON
Valid int Others OF
Invalid int 0 OF
Invalid int Others ON
AlphaSpecialCharacter 0 ON
AlphaSpecialCharacter Others OF

 

Bước 5: tiếp tục nhập giá trị cho các cột tiếp theo và check sự bao phủ các trường hợp

Text box List box Radio button Checkbox
Valid int 0 ON Check
Valid int Others OF Uncheck
Invalid int 0 OF Check
Invalid int Others ON Uncheck
AlphaSpecialCharacter 0 ON Check
AlphaSpecialCharacter Others OF Uncheck

Check bao phủ có thể thấy chưa có cặp Others-Check hay 0-Uncheck, vì vậy đổi vị trí giá trị Check & Uncheck trên dòng 5 & 6 như sau

 

Text box List box Radio button Checkbox
Valid int 0 ON Check
Valid int Others OF Uncheck
Invalid int 0 OF Check
Invalid int Others ON Uncheck
AlphaSpecialCharacter 0 ON Uncheck
AlphaSpecialCharacter Others OF Check

Cuối cùng, đã giảm số lượng testcase xuống 6 case từ 24 case.

Kết luận:

Kỹ thuật kiểm tra theo cặp có thể làm giảm đáng kể số lượng case nhưng vẫn rất hiệu quả trong việc phát hiện lỗi. Chúng là những phương pháp thiết kế test case thông minh, giảm thiểu công sức kiểm tra cũng như đảm bảo được hiệu quả của kiểm thử  

 

Các nguồn tham khảo

https://www.tutorialspoint.com/software_testing_dictionary/all_pairs_testing.htm

https://www.softwaretestinghelp.com/what-is-pairwise-testing/

Comments

Let’s make a great impact together

Be a part of BraveBits to unlock your full potential and be proud of the impact you make.