Test Basis, Test Condition và Test Case không phải ba cách gọi khác nhau của cùng một tài liệu. Chúng nằm ở ba mức độ cụ thể hóa khác nhau trong quá trình kiểm thử:
Test Basis → Test Condition → Test Case
Nguồn thông tin → Điều cần kiểm thử → Cách kiểm thử cụ thể
1. Test Basis là gì?
Test Basis là tập hợp thông tin được dùng làm cơ sở để thực hiện test analysis và test design. Nói đơn giản, đây là nơi tester tìm hiểu hệ thống phải làm gì, có rủi ro nào và dựa vào đâu để đánh giá kết quả.
Tùy bối cảnh dự án, test basis có thể gồm:
- Requirement specification, user story và acceptance criteria.
- Thiết kế, API specification hoặc source code.
- Risk analysis, quy định pháp lý và tiêu chuẩn áp dụng.
Test basis không nhất thiết chỉ là một tài liệu requirement. Nó có thể là bất kỳ nguồn thông tin đáng tin cậy nào giúp tester xác định phạm vi và kỳ vọng cần kiểm tra.
2. Test Condition là gì?
Test Condition là một khía cạnh có thể kiểm thử được, được xác định khi phân tích test basis. Nó trả lời câu hỏi “Cần kiểm thử điều gì?” nhưng chưa mô tả đầy đủ dữ liệu và các bước thực hiện.
Một test condition có thể liên quan đến chức năng, business rule, chất lượng phi chức năng, giao dịch, trạng thái hoặc rủi ro. Ví dụ:
- Đăng nhập bằng thông tin hợp lệ.
- Khóa tài khoản sau 5 lần nhập sai mật khẩu liên tiếp.
- Gửi email thông báo khi tài khoản bị khóa.
Test condition nên đủ rõ để đánh giá coverage, nó như 1 “nhánh” để sau này có thể phát triển tiếp ra các test case cụ thể.
3. Test Case là gì?
Test Case là kịch bản kiểm thử cụ thể được phát triển từ một hoặc nhiều test condition. Nó trả lời câu hỏi “Kiểm thử như thế nào?”.
Một test case thường mô tả:
- Precondition (tiền điều kiện)
- Test data và input (dữ liệu test)
- Actions hoặc test steps (các thao tác và các bước thực hiện)
- Expected result (kì vọng của người dùng)
- Status (Trạng thái): FAIL – PASS – UNTEST
- Notes (Ghi chú nếu có)
Test case phải đủ cụ thể để người thực hiện A có thể chuẩn bị dữ liệu, chạy kiểm thử và xác định kết quả pass hay fail mà không cần hỏi lại người B – là người tạo ra test case
Bảng so sánh nhanh
| Tiêu chí | Test Basis | Test Condition | Test Case |
|---|---|---|---|
| Bản chất | Nguồn thông tin làm căn cứ | Khía cạnh cần kiểm thử | Kịch bản kiểm thử cụ thể |
| Câu hỏi chính | Dựa vào đâu để test? | Test điều gì? | Test như thế nào? |
| Hoạt động chính | Được phân tích trong test analysis | Được xác định và ưu tiên trong test analysis | Được thiết kế từ condition trong test design |
| Mức độ chi tiết | Nguồn đầu vào | Khái quát | Cụ thể và có thể thực thi |
| Ví dụ | User story, acceptance criteria | Khóa tài khoản sau 5 lần đăng nhập sai | Nhập sai mật khẩu 5 lần và kiểm tra trạng thái khóa |
Ví dụ xuyên suốt
Test Basis
User story quy định: “Tài khoản phải bị khóa sau 5 lần nhập sai mật khẩu liên tiếp và người dùng nhận được một email thông báo.”
Các Test Condition có thể xác định
- Tài khoản chưa bị khóa trước lần nhập sai thứ 5.
- Tài khoản bị khóa đúng tại lần nhập sai thứ 5.
- Email thông báo được gửi khi tài khoản bị khóa.
- Tài khoản đã khóa không thể đăng nhập bằng mật khẩu đúng.
Một Test Case cụ thể
- Precondition: Tài khoản đang active và chưa có lần đăng nhập sai nào.
- Test data: Email hợp lệ và mật khẩu sai.
- Actions: Thực hiện đăng nhập sai 5 lần liên tiếp.
- Expected result: Bốn lần đầu hệ thống báo sai thông tin nhưng tài khoản vẫn active; tại lần thứ 5 tài khoản bị khóa và một email thông báo được gửi.
Từ cùng một test basis, tester có thể xác định nhiều test condition; từ mỗi condition lại có thể thiết kế nhiều test case với dữ liệu, boundary hoặc trạng thái khác nhau.
Mẹo ghi nhớ ✌️
- Test Basis: là tài liệu, là requirements… để dựa vào đó thiết kế test
- Test Condition: Là các “nhánh case” chính, để từ đó mọc ra các test cases nhỏ hơn
- Test case: Là đơn vị nhỏ nhất, một “lá” của 1 nhánh cây




