Kỹ thuật thiết kế kịch bản kiểm thử (Phần II: Kỹ thuật kiểm thử hộp đen)

Trong kỹ thuật kiểm thử chúng ta có 2 loại là kiểm thử tĩnh và kiểm thử động. Ở bài trước, mĩnh đã chia sẻ về kỹ thuật kiểm thử tĩnh. Các bạn có thể xem lại bài viết đó tại đây nhé. Kiểm thử động được chia ra làm 3 loại chính: Kiểm thử

Trong kỹ thuật kiểm thử chúng ta có 2 loại là kiểm thử tĩnh và kiểm thử động. Ở bài trước, mĩnh đã chia sẻ về kỹ thuật kiểm thử tĩnh. Các bạn có thể xem lại bài viết đó tại đây nhé.

Kiểm thử động được chia ra làm 3 loại chính: Kiểm thử dựa vào cấu trúc (hay còn gọi là kiểm thử hộp trắng), Kiểm thử dựa vào đặc tả (hay còn gọi là kiểm thử hộp đen) và kiểm thử dựa vào kinh nghiệm.

Trong bài viết này, mình sẽ chia sẻ với mọi người về kỹ thuật kiểm thử dựa vào kinh nghiệm (kiểm thử hộp đen), đây là loại kỹ thuật thường được kiểm thử viên sử dụng nhiều nhất.

1. Kiểm thử hộp đen là gì?

Trước tiên chúng ta cần tìm hiểu kiểm thử hộp đen là gì. Kiểm thử hộp đen (blackbox testing) hay còn được gọi là kiểm thử dựa và đặc tả ( specification-based) là phương pháp kiểm thử mà dựa trên tài liệu đặc tả, người kiểm thử viên chỉ quan tâm đến đầu vào và đầu ra của hệ thống, không quan tâm đến cấu trúc code bên trong.

Ví dụ: Đối với chức năng đăng nhập, chúng ta có test case sau:

  • Nhập đúng username và password, người dùng đăng nhập thành công
  • Nhập sai username hoặc password, người dùng đăng nhập không thành công

KIểm thử viên chỉ quan tâm đến đầu vào chính là username và password, và đầu ra là có đăng nhập được thành công hay không mà không quan tâm đến cấu trúc code bên trong của hệ thống như thế nào.

2. Phân loại các kỹ thuật trong phương pháp kiểm thử hộp đen

Phương pháp kiểm thử hộp đen bao gồm một số ỹ thuật kiểm thử như: Phân vùng tương đương, phân tích giá trị biên, bảng quyết định, chuyển đổi trạng thái và kiểm thử các ca sử dụng.

Chúng ta cùng tìm hiểu chi tiết hơn về 3 kỹ thuật thường được sử dụng nhé.

2.1 Phân vùng tương đương

Phân vùng tương đương là một trong những kỹ thuật kiểm thử hộp đen. Ý tưởng của kỹ thuật này là chia các giá trị đầu vào thành nhiều lớp dữ liệu tương đương có cùng kết quả mong đợi.

Phân vùng tương đương là kỹ thuật đường được sử dụng khá nhiều, và hầu hết được sử dụng trong kiểm thử ở tất cả các dòng dự án.

Chúng ta thường có ít nhất là 2 lớp tương đương:

  • Lớp tương đương thứ nhất là lớp dữ liệu hợp lệ thỏa mãn điều kiện
  • Lớp tương đương thứ 2 là lớp dữ liệu không hợp lệ, không thỏa mãn điều kiện


Ví dụ:
Cho một textbox chỉ cho phép nhập số nguyên từ 5 đến 100

  • Nếu nhập số nguyên từ 5 đến 100, hệ thống cho phép nhập
  • Nếu nhập số nguyên nằm ngoài khoảng từ 5 đến 100, hệ thống hiển thị thông báo lỗi “Bạn chỉ được phép nhập số từ 5 đến 100”
  • Nếu nhập các loại dữ liệu khác, hệ thống hiển thị thông báo lỗi “Giá trị nhập vào không hợp lệ. Vui lòng nhập giá trị là số nguyên từ 5 đến 100”

Từ ví dụ trên, ta có thể đưa ra được các lớp tương đương như sau:

  • Lớp giá trị là số nguyên từ 5 đến 100 (5,6,7,8,9…,99,100) : nhập thành công
  • Lớp giá trị là số nguyên < 5 (1,2,3,4) : thông báo lỗi “”Bạn chỉ được phép nhập số từ 5 đến 100”
  • Lớp giá trị là số nguyên > 100 (101,102,103,…) : thông báo lỗi “Bạn chỉ được phép nhập số từ 5 đến 100”
  • Lớp giá trị không phải số nguyên hoặc bỏ trống: thông báo lỗi “Giá trị nhập vào không hợp lệ. Vui lòng nhập giá trị là số nguyên từ 5 đến 100”

Sau khi phân được các lớp tương đương, ta có thể lựa chọn ra các trường hợp kiểm thử bằng cách chọn ra các giá trị nằm bên trong các lớp.

2.2 Phân tích giá trị biên

Phân tích giá trị biên là kỹ thuật kiểm thử hộp đen, cũng là trường hợp đặc biệt của kỹ thuật phân vùng tương đương.

Ở kỹ thuật này, kiểm thử viên xác định giá trị đầu vào bằng cách lựa chọn giá trị là biên của các vùng tương đương, các giá trị bên cạnh biên (bên trong, bên ngoài vùng tương đương). Giá trị biên có thể là giá trị hợp lệ nếu nó nằm trong vùng tương đương hợp lệ, có thể là giá trị không hợp lệ nếu nó nằm trong vùng tương đương không hợp lệ.


Phương pháp phân tích giá trị biên này có 2 cách tiếp cận:

  1. KIếm thử 2 giá trị

Với cách tiếp cận này ta xác định được các trường hợp kiểm thử bằng cách lấy giá trị tại biên và 1 giá trị cận biên như sau:

  • Giá trị nhỏ nhất của vùng tương đương (Min)
  • Giá trị cận biên Min – 1
  • Giá trị lớn nhất của vùng tương đương (Max)
  • Giá trị cận biên Max + 1
  1. Kiểm thử 3 giá trị

Với cách tiếp cận này ta xác định được các trường hợp kiểm thử bằng cách lấy giá trị tại biên và 2 giá trị cận biên như sau:

  • Giá trị nhỏ nhất của vùng tương đương (Min)
  • Giá trị cận biên Min – 1
  • Giá trị cận biên Min + 1
  • Giá trị lớn nhất của vùng tương đương (Max)
  • Giá trị cận biên Max + 1
  • Giá trị cận biên Max – 1

Ví dụ: Nếu nhập số nguyên từ 5 đến 100, hệ thống cho phép nhập. Nếu nhập giá trị ngoài khoảng từ 5 đến 100 thì hệ thông thông báo lỗi.

Như vậy, dựa vào quy tắc tiếp cận kiểm thử phân tích giá trị biên với 2 giá trị ta có thể xác định được giá trị biên ở đây là số 5 (Min) và số 100 (Max), giá trị cạnh biên nên test là giá trị 4 (Min -1) và giá trị 101 (Max + 1)

Nếu áp dụng cách tiếp cận kiểm thử 3 giá trị biên/cạnh biên, chúng ta cũng có thể kiểm thử thêm trường hợp 6 (Min + 1) và 99 (Max – 1)

Kết hợp 2 phương pháp Phân vùng tương đương và phân tích giá trị biên

Hai phương pháp này thường đi liền với nhau, sử dụng phân tích giá trị biên giúp bổ sung thêm ca kiểm thử giá trị biên mà phương pháp phân vùng tương đương dễ bị bỏ sót.
Kế hợp 2 phương pháp này với ví dụ bên trên ta sẽ được các giá trị biên/cạnh biên và một giá trị bên trong lớp tương đương (thông thường, chúng ta thường lấy giá trị giữa khoảng là giá trị (Max – Min)/2 )

Ưu điểm: KIểm thử tất cả các trường hợp là không thể. Do đó, ưu điểm của hai phương pháp này là giảm thiểu được số lượng đáng kể test case vì chỉ cần chọn ra 1 giá trị trong vùng tương đương và các giá trị biên/cạnh biên để test.

Nhược điểm Không phải bài toán nào cũng có thể áp dụng phương pháp này, 2 phương pháp này thường phù hợp với những trường hợp có khoảng giá trị nhất định và giá trị đầu vào độc lập với nhau, cho ra kết quả độc lập.

ID Trường hợp kiểm thử Kết quả mong đợi
TC1 Nhập vào số 5 Nhập thành công
TC2 Nhập vào số 100 Nhập thành công
TC3 Nhập vào số 46 Nhập thành công
TC4 Nhập vào số 4 Thông báo lỗi “Bạn chỉ được phép nhập số từ 5 đến 100”
TC5 Nhập vào số 6 Thông báo lỗi “Bạn chỉ được phép nhập số từ 5 đến 100”
TC6 Nhập vào số 99 Thông báo lỗi “Bạn chỉ được phép nhập số từ 5 đến 100”
TC7 Nhập vào số 101 Thông báo lỗi “Bạn chỉ được phép nhập số từ 5 đến 100”
TC8 Nhập vào số 0 Thông báo lỗi “Giá trị nhập vào không hợp lệ. Vui lòng nhập giá trị là số nguyên từ 5 đến 100”
TC9 Không nhập gì Thông báo lỗi “Giá trị nhập vào không hợp lệ. Vui lòng nhập giá trị là số nguyên từ 5 đến 100”
TC10 Nhập các giá trị khác không phải số nguyên Thông báo lỗi “Giá trị nhập vào không hợp lệ. Vui lòng nhập giá trị là số nguyên từ 5 đến 100”

Lưu ý
Có một lưu ý khi kiểm thử đó là chúng ta thường sẽ test thêm 2 trường hợp đặc biệt: trường hợp nhập vào số 0 và trường hợp không nhập gì.

2.3 Bảng quyết định

Bảng quyết định là một trong những kỹ thuật kiểm thử hộp đen, kỹ thuật này thường được áp dụng trong trường hợp yêu cầu bài toán có kết hợp nhiều điều kiện đầu vào và cho ra nhiều kết quả mong đợi khác nhau. Bảng quyết định giúp kiểm thử viên đưa ra số lượng test case hữu hạn nhưng đủ độ bao phủ trường hợp kiểm thử.

Các bước tiến hành khi sử dụng kỹ thuật bảng quyết định:

  1. LIệt kê ra tất cả các điều kiện đầu vào và kết quả mong đợi
  2. Tính toán số lượng kết hợp các điều kiện (tất cả test case có thể sảy ra)
  3. Điền vào bảng các kết hợp điều kiện đàu vào và kết quả mong đợi
  4. Giản lược số lượng test case và xcs định số test case sẽ thực hiện test

Ví dụ: Một cửa hàng bán bánh sinh nhật đang có chương trình giảm giá và tri ân khách hàng
Nếu là khách hàng mới thì sẽ được giảm giá 15%. Nếu có thẻ khách hàng thân thiết thì giảm giá 10%. Nếu có phiếu giảm giá thì được giảm 20% (không áp dụng phiếu giảm giá 20% với khách hàng mới, chỉ áp dụng với khách hàng cũ)

Chúng ta bắt đầu áp dụng bảng quyết định với bài toán trên như sau:

  1. LIệt kê ra tất cả các điều kiện đầu vào và kết quả mong đợi
Điều kiện
Khách hàng mới (15%)
Thẻ khách hàng thân thiết (15%)
Phiếu giảm giá (20%)
Đầu ra
Giảm giá
  1. Tính toán số lượng kết hợp các điều kiện (tất cả test case có thể xảy ra)
  2. Điền vào bảng các kết hợp điều kiện đàu vào và kết quả mong đợi
    Mỗi điều kiện có 2 giá trị Đúng (True) hoặc Sai (False). Ta có tất cả 3 điều kiện. Do đó công thức tính tổng số trường hợp kiểm thử có thể sảy ra sẽ là 2^3 = 8.
Điều kiện Rule 1 Rule 2 Rule 3 Rule 4 Rule 5 Rule 6 Rule 7 Rule 8
Khách hàng mới (15%) T T T T F F F F
Thẻ khách hàng thân thiết (15%) T T F F T T F F
Phiếu giảm giá (20%) T F T F T F T F
Đầu ra
Giảm giá X X 20 15 30 10 20 0
  1. Giản lược số lượng test case và xác định số test case sẽ thực hiện test
    Chúng ta giản lược bằng cách nhìn vào Đầu ra của test case và các điều kiện. Với các test case có các điều kiện giống nhau và chỉ khác duy nhất 1 điều kiện (dù có là T hay F) vẫn cho ra kết quả đầu ra giống nhau thì có thể giản lược được 1 test case.

Ví dụ nhìn vào bảng quyết định ở bước 3, ta xác định được Rule 3 và Rule 7 có thể giản lược được 1 rule. Rule 1 và Rule 2 là 2 trường hợp không thể sảy ra. Do đó, chúng ta sẽ được các test case sau khi giản lược như sau:

Điều kiện Rule 3 Rule 4 Rule 5 Rule 6 Rule 8
Khách hàng mới (15%) T T T F
Thẻ khách hàng thân thiết (15%) T T F F T
Phiếu giảm giá (20%) T F T F T
Đầu ra
Giảm giá X X 20 15 30

References:

Xem thêm các bài viết chia sẻ về kiến thức kiểm thử phần mềm tại đây

https://vinatester.com/

Nguồn: viblo.asia

Bài viết liên quan

Thay đổi Package Name của Android Studio dể dàng với plugin APR

Nếu bạn đang gặp khó khăn hoặc bế tắc trong việc thay đổi package name trong And

Lỗi không Update Meta_Value Khi thay thế hình ảnh cũ bằng hình ảnh mới trong WordPress

Mã dưới đây hoạt động tốt có 1 lỗi không update được postmeta ” meta_key=

Bài 1 – React Native DevOps các khái niệm và các cài đặt căn bản

Hướng dẫn setup jenkins agent để bắt đầu build mobile bằng jenkins cho devloper an t

Chuyển đổi từ monolith sang microservices qua ví dụ

1. Why microservices? Microservices là kiến trúc hệ thống phần mềm hướng dịch vụ,