Tại Sao Kỹ Thuật Thiết Kế Kiểm Thử Quan Trọng
Chương 4 của syllabus ISTQB CTFL bao gồm phân tích và thiết kế kiểm thử. Bốn kỹ thuật hộp đen — Equivalence Partitioning, Boundary Value Analysis, Decision Table Testing và State Transition Testing — chiếm tỷ trọng đáng kể trong câu hỏi thi và là kỹ năng thiết yếu trong công việc kiểm thử thực tế.
Đề thi không chỉ hỏi bạn định nghĩa chúng. Đề thi đưa ra một tình huống và hỏi bạn áp dụng chúng. Đó là điều hướng dẫn này chuẩn bị cho bạn.
1. Equivalence Partitioning (Phân Vùng Tương Đương)
Ý Tưởng
Chia dữ liệu đầu vào thành các vùng mà tất cả các giá trị trong vùng đó được kỳ vọng sẽ hoạt động theo cùng một cách. Kiểm thử một giá trị đại diện từ mỗi vùng — nếu một giá trị thất bại, tất cả các giá trị khác trong vùng đó cũng nên thất bại.
Các vùng có thể là hợp lệ (được hệ thống chấp nhận) hoặc không hợp lệ (bị từ chối).
Ví Dụ: Xác Thực Độ Tuổi
Một biểu mẫu chấp nhận độ tuổi cho chương trình thiếu nhi: từ 5 đến 12 tuổi.
| Vùng | Phạm vi | Loại | Giá trị kiểm thử |
|---|---|---|---|
| Dưới tối thiểu | < 5 | Không hợp lệ | 3 |
| Phạm vi hợp lệ | 5–12 | Hợp lệ | 8 |
| Trên tối đa | > 12 | Không hợp lệ | 15 |
Số test case tối thiểu: 3 (một cho mỗi vùng)
Mẹo Thi
EP giảm số lượng test case mà không mất độ phủ. Câu hỏi thường hỏi: "Số lượng test case tối thiểu là bao nhiêu?" — câu trả lời bằng số lượng vùng phân chia.
2. Boundary Value Analysis (Phân Tích Giá Trị Biên)
Ý Tưởng
Lỗi thường tập trung ở các cạnh của phạm vi đầu vào. BVA kiểm thử các giá trị biên của vùng hợp lệ và không hợp lệ, không chỉ các giá trị ở giữa.
ISTQB v4.0 bao gồm hai biến thể:
- BVA 2 giá trị: Kiểm thử giá trị biên và giá trị ngay ngoài biên đó
- BVA 3 giá trị: Kiểm thử giá trị ngay dưới, chính biên đó và giá trị ngay trên
Ví Dụ: Cùng Xác Thực Độ Tuổi (5–12)
BVA 2 giá trị (biên + một giá trị ngoài mỗi biên):
| Biên | Giá trị kiểm thử |
|---|---|
| Biên dưới (5) | 4, 5 |
| Biên trên (12) | 12, 13 |
Tổng: 4 test case
BVA 3 giá trị (dưới, tại biên, trên mỗi biên):
| Biên | Giá trị kiểm thử |
|---|---|
| Biên dưới (5) | 4, 5, 6 |
| Biên trên (12) | 11, 12, 13 |
Tổng: 6 test case (sau khi bỏ trùng: 4, 5, 6, 11, 12, 13)
Mẹo Thi
Biết biến thể nào câu hỏi đang hỏi. "Bao nhiêu test case cho BVA 3 giá trị?" với một phạm vi số = 6 giá trị (3 cho mỗi biên × 2 biên, trừ phần chồng lấp).
3. Decision Table Testing (Kiểm Thử Bảng Quyết Định)
Ý Tưởng
Sử dụng khi hành vi phụ thuộc vào tổ hợp các điều kiện. Bảng quyết định liệt kê tất cả tổ hợp điều kiện và đầu ra kỳ vọng của chúng, đảm bảo mọi tổ hợp đều được kiểm thử.
Ví Dụ: Quy Tắc Giảm Giá
Hệ thống thương mại điện tử áp dụng giảm giá dựa trên hai điều kiện:
- Người dùng có phải thành viên không? (Có/Không)
- Đơn hàng có trên 100 USD không? (Có/Không)
| Quy tắc 1 | Quy tắc 2 | Quy tắc 3 | Quy tắc 4 | |
|---|---|---|---|---|
| Thành viên? | Có | Có | Không | Không |
| Đơn > 100$? | Có | Không | Có | Không |
| Giảm giá | 20% | 10% | 5% | 0% |
4 quy tắc = 4 test case (2 điều kiện × 2 giá trị = 2² = 4 tổ hợp)
Khi Điều Kiện Không Bình Đẳng
Nếu một số tổ hợp điều kiện là không thể hoặc không liên quan, bạn có thể thu gọn bảng. Đề thi có thể yêu cầu bạn xác định số test case tối thiểu sau khi thu gọn các tổ hợp không thể.
Mẹo Thi
Với N điều kiện nhị phân, bảng đầy đủ có 2^N quy tắc. Thu gọn sẽ giảm số này xuống. Một câu hỏi đưa cho bạn bảng quyết định và hỏi "test case tối thiểu" thường muốn số lượng sau khi thu gọn.
4. State Transition Testing (Kiểm Thử Chuyển Đổi Trạng Thái)
Ý Tưởng
Đối với các hệ thống hoạt động khác nhau tùy thuộc vào trạng thái hiện tại, mô hình hóa hệ thống như các trạng thái + chuyển đổi. Các test case thực hiện các đường cụ thể trong sơ đồ trạng thái.
Ví Dụ: Các Trạng Thái Thẻ ATM
[Đã nhét thẻ] --PIN đúng--> [Đã xác thực]
[Đã nhét thẻ] --PIN sai--> [Lần thử 1]
[Lần thử 1] --PIN sai--> [Lần thử 2]
[Lần thử 2] --PIN sai--> [Thẻ bị khóa]
[Đã xác thực] --chọn giao dịch--> [Đang xử lý]
[Đang xử lý] --hoàn thành--> [Chờ]
Các trạng thái: Chờ, Đã nhét thẻ, Lần thử 1, Lần thử 2, Đã xác thực, Thẻ bị khóa, Đang xử lý
Cấp độ độ phủ:
- Độ phủ 0 chuyển đổi: Kiểm thử mỗi trạng thái ít nhất một lần
- Độ phủ 1 chuyển đổi (độ phủ chuyển đổi): Kiểm thử mỗi chuyển đổi ít nhất một lần — đây là cấp độ ISTQB chuẩn
- Độ phủ 2 chuyển đổi: Kiểm thử mọi chuỗi hai chuyển đổi liên tiếp
Bảng Chuyển Đổi Trạng Thái
| Trạng thái hiện tại | Sự kiện | Trạng thái tiếp theo | Đầu ra |
|---|---|---|---|
| Đã nhét thẻ | PIN đúng | Đã xác thực | Thông báo chào mừng |
| Đã nhét thẻ | PIN sai | Lần thử 1 | Thông báo lỗi |
| Lần thử 1 | PIN sai | Lần thử 2 | Cảnh báo |
| Lần thử 2 | PIN sai | Thẻ bị khóa | Giữ thẻ |
| Đã xác thực | Chọn giao dịch | Đang xử lý | Hiển thị tùy chọn |
Mẹo Thi
Để đạt độ phủ chuyển đổi: đếm số mũi tên trong sơ đồ trạng thái. Đó là số test case tối thiểu của bạn cho độ phủ 1 chuyển đổi.
Chọn Kỹ Thuật Phù Hợp
| Tình huống | Sử dụng |
|---|---|
| Đầu vào có phạm vi số | EP + BVA |
| Nhiều điều kiện ảnh hưởng đến đầu ra | Decision Table |
| Hệ thống có chế độ hoặc trạng thái | State Transition |
| Phân vùng đầu vào có/không đơn giản | EP một mình |
Các bài kiểm thử thực tế kết hợp nhiều kỹ thuật. Biểu mẫu đăng nhập có thể dùng EP cho độ dài username, BVA cho độ dài mật khẩu, và bảng quyết định cho hành vi khóa tài khoản khi thử đăng nhập sai.
Tóm Tắt Nhanh
| Kỹ thuật | Tốt nhất cho | Công thức test case tối thiểu |
|---|---|---|
| Equivalence Partitioning | Đầu vào theo phạm vi/danh mục | Số lượng vùng phân chia |
| BVA (2 giá trị) | Phạm vi số | 2 × số biên |
| BVA (3 giá trị) | Phạm vi số | 3 × số biên (trừ phần chồng lấp) |
| Decision Table | Tổ hợp điều kiện | 2^N quy tắc (trước khi thu gọn) |
| State Transition | Hệ thống có trạng thái | Số lượng chuyển đổi |
Nắm vững năm hàng này và bạn sẽ xử lý được hầu hết câu hỏi Chương 4 một cách tự tin.