Smoke Test và Sanity Test khác nhau thế nào?
Trả lời ngắnSmoke hỏi “bản build này còn sống không?” — rộng và nông. Sanity hỏi “chỗ vừa sửa đã đúng chưa?” — hẹp và sâu.
Bảng so sánh
| Smoke Test | Sanity Test | |
|---|---|---|
| Câu hỏi trả lời | Có đáng bỏ công test tiếp không? | Chỗ vừa vá đã chạy đúng chưa? |
| Phạm vi | Rộng — chạm mọi chức năng sống còn | Hẹp — chỉ quanh chỗ vừa động vào |
| Độ sâu | Nông — chỉ cần chạy được | Sâu — soi kỹ các trường hợp của tính năng đó |
| Chạy khi nào | Ngay khi có bản build mới | Ngay sau khi dev báo đã fix |
| Số ca test | 5–10 ca, dưới 2 phút | Vài ca, khoảng 1 phút |
💡 Cách nhớ
Smoke = rộng và nông. Sanity = hẹp và sâu. Smoke chạy trước để khỏi phí công; sanity chạy sau khi có người vừa sửa gì đó.Chọn cái nào?
- Nếu Vừa nhận bản build mới từ dev→ Smoke — xem nó có mở nổi không đã
- Nếu Dev vừa báo “đã fix lỗi làm tròn tiền”→ Sanity — soi đúng chỗ đó
- Nếu Sắp phát hành cho người dùng thật→ Không phải hai cái này — chạy bộ hồi quy đầy đủ
⚠ Bẫy thường gặp
Ranh giới giữa hai loại này không rõ ràng như sách vở, và mỗi công ty định nghĩa một kiểu. Đừng tốn thời gian tranh cãi định nghĩa với đồng nghiệp — hỏi thẳng “ở đây mình đang hiểu smoke test là gì” rồi làm theo cách đội đang dùng.
Câu hỏi hay gặp
- Smoke test có phải là regression test không?
- Không. Smoke chỉ vài ca kiểm tra chức năng sống còn, chạy dưới 2 phút. Regression là bộ đầy đủ chạy lại mọi thứ, thường mất hàng chục phút tới hàng giờ.
- Có cần chạy cả hai không?
- Có, nhưng ở hai thời điểm khác nhau. Smoke chạy khi có bản build mới. Sanity chạy khi có người vừa sửa một chỗ cụ thể.