Minh họa cho Kim tự tháp kiểm thử
Law #33 Chất lượng

Kim tự tháp kiểm thử

Testing Pyramid

Hệ kiểm thử bền vững thường có nhiều test nhanh ở lớp thấp và ít test giao diện chậm ở lớp cao.

Nguồn tham khảo: Laws of Software Engineering

Tổng quan

Kim tự tháp kiểm thử khuyên có nhiều unit test nhanh ở đáy, ít integration test hơn ở giữa và ít end-to-end test nhất ở đỉnh. Tỷ lệ này giúp test suite nhanh, ổn định và vẫn bao phủ luồng quan trọng.

Ý chính

  • Unit test rẻ và nhanh nên phù hợp kiểm logic nhỏ với số lượng lớn.
  • Integration test kiểm cách các module hoặc service làm việc cùng nhau, số lượng ít hơn nhưng rất cần thiết.
  • E2E test mô phỏng user thật nhưng chậm và dễ flaky nên nên dùng cho luồng quan trọng nhất.

Ví dụ từ nguồn

Một app thương mại điện tử có hàng trăm unit test cho tính giá, discount và validation; một số test API/database; và vài E2E test cho checkout.

Nếu team chỉ có E2E test, mỗi thay đổi nhỏ đều chờ lâu và lỗi thường khó khoanh vùng.

Nguồn gốc

Mike Cohn được ghi nhận là người phổ biến Test Pyramid trong Succeeding with Agile và các bài viết khoảng năm 2009.

Lưu ý khi áp dụng

Kim tự tháp là heuristic, không phải tỷ lệ cứng. Hãy tối ưu feedback nhanh và độ tin cậy theo kiến trúc sản phẩm.

← Quay lại danh sách 56 luật