1. Tóm tắt nhanh & màn hình build bạn sẽ kiểm
Chào bạn mới! Câu hỏi 'phân biệt smoke test và sanity test' là một trong những câu phỏng vấn hay gặp nhất với tester mới vào nghề, vì hai khái niệm này rất dễ nhầm — cả hai đều là 'kiểm tra nhanh sau khi có thay đổi'. Nhưng nếu bạn từng đọc bài về hồi quy & smoke test, bài này sẽ đi một hướng khác: không nói về mối quan hệ smoke–regression nữa, mà đào sâu vào ranh giới thật sự giữa SMOKE và SANITY — hai loại kiểm thử rất dễ bị dùng lẫn cho nhau, và việc chọn sai loại có thể khiến bạn bỏ sót lỗi nghiêm trọng hoặc lãng phí thời gian quý giá.
2. Smoke test là gì & khi nào chạy
Tên gọi 'smoke test' xuất phát từ ngành điện: sau khi lắp ráp một mạch điện, kỹ sư cấp điện lần đầu và chỉ cần xem có bốc KHÓI hay không — nếu có khói, mạch hỏng rõ ràng, chưa cần kiểm chi tiết từng linh kiện. Trong phần mềm, smoke test cũng vậy: sau mỗi bản build mới (deploy lên staging, hoặc production), tester chạy nhanh qua vài chức năng SỐNG CÒN của hệ thống — đăng nhập, tìm kiếm, thêm vào giỏ, đặt hàng — để xem build có 'bốc khói' (lỗi rõ ràng, sập ngay) hay không.
Vì sao smoke test luôn chạy TRƯỚC các loại kiểm thử khác? Vì nó rẻ và nhanh (thường 5–15 phút), giúp bạn tránh lãng phí hàng giờ test sâu trên một bản build hỏng ngay từ gốc. Nếu smoke fail — ví dụ trang chủ không tải được, hoặc đăng nhập báo lỗi 500 — quy tắc vàng là DỪNG LẠI, báo lỗi ngay và trả bản build về cho đội dev, thay vì cố gắng test tiếp trên nền không vững.
3. Sanity test là gì & khác smoke, khác regression thế nào
Nếu smoke test là 'khám tổng quát nhanh cả cơ thể', thì sanity test giống 'khám kỹ đúng một chỗ vừa bị đau'. Sanity test chỉ chạy SAU KHI có một thay đổi cụ thể, nhỏ — sửa lỗi, thêm một tính năng nhỏ, vá một trường dữ liệu — và tập trung HẸP nhưng SÂU vào đúng vùng đó cùng các chức năng lân cận gần nhất, để xác nhận thay đổi đúng như mong đợi và không gây vỡ những gì gần nó nhất. Sanity KHÔNG cần bao phủ toàn hệ thống như smoke, và cũng không cần đào sâu toàn bộ chức năng liên quan như regression.
Điểm dễ nhầm nhất với người mới: cả smoke và sanity đều 'nhanh', nên nhiều bạn nghĩ chúng là một. Chìa khoá để phân biệt là hỏi 2 câu: (1) 'Đây là build hoàn toàn mới, hay chỉ một thay đổi nhỏ vừa vá?' — build mới thì nghiêng về smoke, thay đổi nhỏ thì nghiêng về sanity; (2) 'Mình đang kiểm TOÀN BỘ hệ thống hay ĐÚNG một vùng cụ thể?' — toàn bộ là smoke, một vùng cụ thể là sanity. Còn regression thì khác hẳn về quy mô: nó không phải kiểm tra nhanh, mà là một vòng kiểm tra đầy đủ, có kế hoạch, thường chạy trước khi release hoặc theo chu kỳ cố định.
4. Chuẩn bị: khi nào chọn Smoke, khi nào chọn Sanity
Trước khi bấm nút test, hãy dành 30 giây trả lời câu hỏi 'nên chạy loại nào' — chọn đúng ngay từ đầu giúp bạn tiết kiệm rất nhiều thời gian và không bỏ sót lỗi. Ba bước dưới đây là cách tester ShopEasy vẫn dùng mỗi khi có build hoặc bản vá mới.
▶ Bước 1: Xác định đây là BUILD MỚI (deploy lại toàn bộ, gộp nhiều thay đổi) hay chỉ một BẢN VÁ NHỎ (sửa/thêm đúng 1 vùng).
▶ Bước 2: Nếu là build mới hoặc gộp nhiều PR → chạy SMOKE rộng trên các chức năng sống còn trước tiên, chưa test sâu.
💬 Bình luận (0)
Chưa có bình luận nào. Hãy là người đầu tiên!