Cách viết test case bằng Excel: các cột cần có, ví dụ và lỗi hay gặp
Excel hoặc Google Sheets vẫn là cách phổ biến để viết test case ở nhiều team, nhất là dự án nhỏ hoặc khi chưa có công cụ quản lý test. Bài này tập trung vào cách làm sao để file dễ dùng, dễ báo cáo và người khác đọc vào làm lại được.
Các cột nên có
| Cột | Ý nghĩa |
|---|---|
| Mã TC | Duy nhất, có tiền tố theo module, ví dụ TC-LOGIN-01. Dễ tìm và dễ liên kết với bug, với test tự động. |
| Module | Chức năng được kiểm thử, dùng để lọc. |
| Tiêu đề | Một câu nói rõ đang kiểm tra điều gì. |
| Tiền điều kiện | Trạng thái cần có trước khi bắt đầu, ví dụ "đã đăng nhập, giỏ hàng trống". |
| Các bước | Đánh số, mỗi bước một hành động. |
| Dữ liệu test | Giá trị cụ thể, không ghi chung chung "dữ liệu hợp lệ". |
| Kết quả mong đợi | Đo được, kiểm chứng được. |
| Kết quả thực tế | Điền khi chạy, đặc biệt quan trọng khi Fail. |
| Trạng thái | Pass, Fail, Blocked, Not Run. Dùng danh sách chọn để tránh gõ sai. |
| Ưu tiên, Loại | Giúp chọn bộ test khi thiếu thời gian (chạy Cao trước). |
| Mã bug | Liên kết sang bug khi Fail. |
Tùy dự án có thể thêm người test, ngày chạy, môi trường, mã yêu cầu (requirement ID). Đừng thêm cột không ai điền.
Ví dụ: 3 test case đăng nhập
| Mã | Tiêu đề | Dữ liệu | Kết quả mong đợi |
|---|---|---|---|
| TC-LOGIN-01 | Đăng nhập thành công | standard_user / secret_sauce | Chuyển sang trang Products |
| TC-LOGIN-02 | Tài khoản bị khóa | locked_out_user / secret_sauce | Hiện lỗi "user has been locked out", vẫn ở trang đăng nhập |
| TC-LOGIN-03 | Bỏ trống cả hai trường | (trống) | Hiện lỗi "Username is required" |
Ba ví dụ này dùng trang demo công khai saucedemo.com, nên bạn có thể mở trang và chạy thử bằng tay ngay.
Tỉ lệ pass và tiến độ là hai số khác nhau
Lỗi báo cáo hay gặp là chỉ đưa ra tỉ lệ pass. Nên tách hai số:
- Tỉ lệ pass = số Pass / số đã chạy. Cho biết phần đã test tốt đến đâu.
- Tiến độ = số đã chạy / tổng số test case. Cho biết đã test được bao nhiêu.
Pass 95% nhưng mới chạy 30% thì gần như chưa nói được gì về chất lượng bản build. Trong Excel, dùng COUNTIF trên cột trạng thái để tính cả hai, test Blocked không tính là đã chạy.
Lỗi hay gặp khi viết test case
- Kết quả mong đợi mơ hồ, kiểu "hệ thống hoạt động bình thường".
- Một test case kiểm tra quá nhiều thứ, Fail rồi không biết hỏng ở đâu.
- Thiếu tiền điều kiện, người khác chạy lại cho kết quả khác.
- Chỉ viết luồng thành công, bỏ qua dữ liệu sai, giá trị biên, quyền truy cập. Checklist kiểm thử web có thể dùng làm nguồn ý tưởng cho các trường hợp này.
- Không cập nhật khi yêu cầu thay đổi, file dần trở nên vô dụng.
Từ Excel sang test tự động
Giữ mã TC giống nhau giữa file Excel và tên test tự động (ví dụ test Playwright tên TC-LOGIN-01 đăng nhập thành công). Khi đó báo cáo tự động và file Excel đối chiếu được với nhau. Xem cách làm trong bài Playwright TypeScript cho người mới.