🩺 Sanity Test là gì?
Kiểm tra gọn, đúng chỗ vừa sửa.
1
Hiểu nó là gì
Sanity Test tập trung xác nhận tính năng vừa sửa hoặc vừa thêm đã chạy hợp lý, trước khi bỏ công chạy bộ test đầy đủ.
Nói theo đời thường:
Thợ vá xong cái lốp thì bơm lên xem còn xì không, chứ chưa cần khám tổng thể cả chiếc xe.
Thợ vá xong cái lốp thì bơm lên xem còn xì không, chứ chưa cần khám tổng thể cả chiếc xe.
⚠ Chỗ ẩn dụ này hỏng
Ranh giới với smoke test không rõ ràng như sách vở nói, và mỗi công ty định nghĩa một kiểu.
Cách nhớ thực dụng: smoke hỏi “bản build này còn sống không?” (rộng, nông). Sanity hỏi “chỗ vừa sửa đã đúng chưa?” (hẹp, sâu). Đừng tranh cãi định nghĩa với đồng nghiệp — hỏi thẳng công ty bạn đang hiểu từ đó theo nghĩa nào.
2
Code trông thế nào
// Dev vừa vá lỗi làm tròn tiền ở giỏ hàng // Sanity: chỉ soi đúng chỗ đó, chưa cần chạy cả bộ test('tiền giỏ hàng làm tròn đúng', ...) test('tiền giỏ hàng cộng phí ship đúng', ...)
Vài ca, chạy trong một phút, chỉ quanh chỗ vừa động vào.
3
Khi nào bạn dùng nó
✓ Dùng khi
- Dev vừa vá xong một lỗi và cần xác nhận nhanh
- Chưa muốn tốn 40 phút chạy bộ đầy đủ
✗ Đừng dùng khi
- Thay cho hồi quy — sanity không nói gì về phần còn lại của hệ thống
Chưa cần biết: chọn ca test tự động theo vùng code đã đổi.
Để dành tới Mốc 3 — Tự sửa được khi nó hỏng: Test đỏ trên CI mà xanh ở máy bạn, và bạn biết bắt đầu tìm từ đâu.
Dấu hiệu bạn đã cần học nó: Khi bạn phải tự đoán “sửa chỗ này thì nên test lại những gì” quá nhiều lần trong tuần.
4
Đi đâu tiếp
- Smoke TestRộng và nông, ngược với sanity.
- Regression TestBộ đầy đủ chạy sau khi sanity đã đạt.
- BugSanity thường chạy ngay sau khi một bug được vá.