Minh họa cho Nghịch lý thuốc trừ sâu
Law #34 Chất lượng

Nghịch lý thuốc trừ sâu

Pesticide Paradox

Chạy mãi cùng một bộ test sẽ dần kém hiệu quả vì lỗi mới tìm cách lẩn qua các mẫu cũ.

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

Tổng quan

Nghịch lý thuốc trừ sâu nói rằng chạy mãi cùng một bộ test sẽ dần kém hiệu quả trong việc tìm lỗi mới. Test vẫn hữu ích, nhưng nếu không được làm mới, nó chỉ bắt các kiểu lỗi cũ.

Ý chính

  • Test suite cần tiến hóa cùng sản phẩm và loại lỗi mới.
  • Thêm dữ liệu, boundary case và mutation của test cũ giúp phát hiện bug khác mẫu.
  • Đừng nhầm "test xanh" với "không còn rủi ro"; nó chỉ nói các kịch bản hiện tại chưa vỡ.

Ví dụ từ nguồn

Một app mobile ban đầu có test login bắt được nhiều bug. Sau vài release, bug mới xuất hiện ở offline sync và permission nhưng test cũ không chạm tới.

API test chỉ dùng input hợp lệ sẽ không phát hiện lỗi validation, encoding hoặc payload quá lớn.

Nguồn gốc

Boris Beizer, chuyên gia kiểm thử phần mềm, nêu khái niệm này và nó được biết đến rộng rãi trong nhóm bảy nguyên lý kiểm thử của ISTQB.

Lưu ý khi áp dụng

Mỗi lần sửa bug production, hãy hỏi test suite thiếu biến thể nào và bổ sung đúng lớp test có feedback tốt nhất.

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