Mutation testing đánh giá chất lượng của một test suite bằng cách cố ý đưa vào các lỗi nhỏ ("mutant") trong code và kiểm tra xem các test có bắt được chúng không. Nó đo lường test thực sự tốt đến mức nào trong việc phát hiện lỗi — vượt ra ngoài coverage, vốn chỉ đo việc thực thi.
Mutation testing hoạt động thế nào
1. Một công cụ tạo các thay đổi nhỏ (MUTATION) cho code, vd:
→ đổi + thành -, > thành >=, true thành false, xóa một câu lệnh, đổi một hằng số
→ mỗi mutation = một "lỗi" cố ý (một phiên bản MUTANT của code)
2. Chạy TEST SUITE đối với mỗi mutant:
→ test FAIL → mutant bị "KILLED" (tốt — test bắt được lỗi) ✓
→ test PASS → mutant "SỐNG SÓT" (xấu — test KHÔNG bắt được lỗi) ✗
3. MUTATION SCORE = % mutant bị killed → đo test tốt đến mức nào trong việc bắt lỗi
