BAHUB.VN
Glossary

Smoke Testing

TestingKiểm thử sơ bộ

Bộ kiểm tra nhanh vài chức năng xương sống ngay sau khi nhận build, để quyết định build này có đáng test tiếp hay trả lại cho dev. Thường chạy trong 15 tới 60 phút.

Định nghĩa

Nhận build lúc 9h sáng, QC bấm thử: đăng nhập được, mở được trang chủ, tạo được một đơn hàng. Mười lăm phút, xong, build này dùng được. Đó là smoke test. Nếu đăng nhập đã hỏng thì trả build về ngay, đỡ tốn cả ngày của ba người.

Smoke test là cửa gác: build không qua được thì không ai mất thời gian test sâu.

Smoke, sanity và regression

Tiêu chíSmokeSanityRegression
Phạm viRộng, nông — chạm mọi chức năng chínhHẹp, sâu — vào đúng phần vừa sửaRộng, phủ nhiều chức năng cũ
Mục đíchBuild có dùng được khôngChỗ vừa sửa có hợp lý khôngThay đổi có làm hỏng cái cũ không
Thời gian15–60 phút30 phút tới vài giờNửa ngày tới vài ngày
Tài liệuCó kịch bản cố địnhThường không cần, chạy theo hiểu biếtCó bộ case được duy trì
Ai chạyQC hoặc chạy tự độngQCQC, phần lớn nên tự động

Chỗ hay nhầm: nhiều nơi gọi lẫn smoke và sanity, thậm chí coi là một. Về mặt vận hành cũng chẳng chết ai, miễn cả team hiểu giống nhau. Nhưng khi viết vào tài liệu chính thức hoặc đi phỏng vấn thì nên dùng đúng nghĩa như bảng trên.

Bộ smoke gồm những gì

Chọn theo nguyên tắc: nếu cái này hỏng thì mọi thứ khác không test được nữa.

  • Đăng nhập, phân quyền cơ bản
  • Trang chủ và menu chính tải được
  • Tạo mới bản ghi chính của hệ thống, ví dụ tạo đơn hàng hoặc tạo hồ sơ khách
  • Một luồng nghiệp vụ end-to-end ngắn nhất
  • Kết nối tới các hệ thống bên ngoài còn sống

Giữ dưới 20 case. Bộ smoke phình lên 80 case là mất luôn chức năng gác cổng: tới lần nhận build thứ ba trong ngày, kiểu gì cũng có người lặng lẽ bỏ bớt bước.

Smoke test trên PROD sau khi deploy

Đây là lúc smoke test có giá trị cao nhất và cũng dễ bị quên nhất. Deploy xong 23h30, ai cũng buồn ngủ, mọi người nhìn log thấy service chạy là về.

Gần nửa đêm chủ nhật, bản cập nhật POS vừa lên cho 76 cửa hàng của một chuỗi siêu thị mini. Bộ smoke sau deploy có 9 bước, mất 12 phút, trong đó có bước "quét một sản phẩm thật và in một hóa đơn thử". Chính bước in hóa đơn lòi ra máy in nhiệt bị lệch dòng do đổi template. Sửa xong lúc 0h kém, khách hàng không hề biết có chuyện gì. Chờ tới 6h sáng lúc cửa hàng mở cửa thì 76 điểm bán gọi lên tổng đài cùng một lúc.

Bộ smoke trên PROD nên có kịch bản riêng, ghi rõ dùng tài khoản nào, dữ liệu nào, và cách dọn dẹp dữ liệu thử sau khi chạy. Đơn hàng test để quên trong hệ thống thật sẽ được kế toán lôi ra hỏi vào đúng ngày chốt sổ.

Mẹo khi đi làm

Đưa smoke test vào quy trình nhận build như một điều kiện, chứ đừng để nó thành thiện chí. Viết vào entry criteria: build chưa pass smoke thì QC không nhận. Ban đầu dev sẽ càu nhàu, sau vài tuần chính họ sẽ chạy smoke trước khi giao build vì không ai muốn bị trả về hai lần trong một ngày.

Chia sẻ

Thông tin

Danh mục
Testing
Cập nhật
15/08/2026

Đóng góp bởi

Phan Minh HoàngPhan Minh Hoàng

Biết thuật ngữ BA hay?

Thông tin không chính xác?

Smoke Testing là gì? So sánh smoke, sanity, regression | BAHUB.VN