10 · Test Plan & Test Cases
Đối tượng: QA.
1. Chiến lược test
Vì ClinicOS là static multi-page, trọng tâm test là render đúng + logic JS client + luồng điều hướng giữ trạng thái. Công cụ: Playwright Chromium (như quy trình build ở 01 · Kiến trúc).
| Loại |
Phạm vi |
| Smoke |
Mọi trang render, không pageerror |
| Chức năng |
Logic theo acceptance ở 09 · User stories |
| Luồng |
Điều hướng giữ ?id=, mã phiếu xuyên suốt |
| Hồi quy |
Sau mỗi sửa, chạy lại smoke toàn bộ + DOM check phần liên quan |
2. Mẫu test case
TC-id · Tiền điều kiện → Hành động → Kết quả mong đợi
3. Test cases tiêu biểu
Cashier
| TC |
Hành động |
Kết quả |
| TC-CA-01 |
POS bấm "Tạo phiếu & chuyển thu ngân" |
Mở cashier-payment?id=... đúng khách |
| TC-CA-02 |
Trang Payment chọn 1 method + "Trả đủ phần còn nợ" + xác nhận |
"Còn lại sau lần này" = 0đ, lịch sử +1 dòng |
| TC-CA-03 |
Mở ?paid=1 |
SKU khóa, banner "đã thu một phần" |
| TC-CA-04 |
SKU thuốc chưa pick |
Gạch ngang, không cộng tổng |
Tư vấn viên
| TC |
Hành động |
Kết quả |
| TC-TV-01 |
Có khách active, xem hàng đợi |
Nút "Nhận khách kế tiếp" khóa + lý do |
| TC-TV-02 |
Đóng khách → bấm nhận kế tiếp |
Ra đúng người đầu hàng, hàng đợi giảm 1 |
| TC-TV-03 |
Đóng khách |
Hiện cooldown đếm ngược, nút nhận khóa trong cooldown |
| TC-TV-04 |
Giữ khách quá ngưỡng SLA |
Cảnh báo "giữ khách quá lâu" |
Điều phối
| TC |
Hành động |
Kết quả |
| TC-DP-01 |
Chọn khách cần major "Tóc" |
Chỉ NV có major Tóc được "Phân công"; người khác "Thiếu major bắt buộc" |
| TC-DP-02 |
Bật "Chỉnh tay" với NV thiếu major |
Vẫn bị chặn |
| TC-DP-03 |
Đổi khu vực ở tab rule |
Trọng số/giới hạn/khung giờ đổi theo |
| TC-DP-04 |
Mobile: bỏ qua offer |
Lùi lượt ưu tiên, offer chuyển người kế |
4. Tiêu chí pass
- 0 lỗi
pageerror (trừ lỗi font Google qua file://).
- Đúng toàn bộ kết quả mong đợi.
- Không phá rule ở 15 · Business rules.
5. Mẫu báo lỗi
| Trường |
Nội dung |
| Tiêu đề |
Ngắn gọn hiện tượng |
| Trang / TC |
File + mã test case |
| Bước tái hiện |
1, 2, 3... |
| Mong đợi / Thực tế |
Hai dòng đối chiếu |
| Mức độ |
Blocker / Major / Minor |