Phân biệt Confirmation Testing và Regression Testing

⏱︎

Read time:

2–3 minutes

Sau khi developer sửa một defect, tester thường cần làm hai việc khác nhau: xác nhận lỗi cũ đã hết và kiểm tra bản sửa không làm hỏng nơi khác. Đó là Confirmation Testing và Regression Testing.

Confirmation Testing là gì?

Confirmation testing xác nhận defect ban đầu đã được sửa thành công. Nó còn thường được gọi là retesting

Tùy risk và nguồn lực, tester có thể:

  • Chạy lại toàn bộ tests từng fail do defect.
  • Bổ sung test mới để cover những thay đổi cần thiết cho bản sửa.
  • Khi rất hạn chế thời gian hoặc chi phí, chỉ lặp lại steps từng gây failure và kiểm tra failure không còn xuất hiện.

Regression Testing là gì?

Regression testing xác nhận bản fix đã confirmation test – không tạo ra hậu quả bất lợi ngoài ý muốn.

Ảnh hưởng có thể xuất hiện ở cùng component, component khác trong hệ thống, hệ thống kết nối hoặc thậm chí test environment.

Bảng so sánh

Tiêu chíConfirmation TestingRegression Testing
Mục tiêuXác nhận defect cụ thể đã được fixTìm side effect do change gây ra
Phạm viTập trung vùng lỗi và bản sửaVùng bị ảnh hưởng trực tiếp và gián tiếp
Căn cứ chọn testFailed tests, defect steps, change của fixImpact analysis và regression suite
AutomationCó thể tự động hóaRất phù hợp vì chạy lặp lại nhiều lần
Câu hỏiLỗi cũ đã hết chưa?Có gì khác bị hỏng không?

Ví dụ thực tế

Bug: nhập mã giảm giá làm tổng tiền bị âm. Sau khi fix:

  • Confirmation: chạy lại test với mã giảm giá từng gây tổng âm và xác nhận tổng tiền được tính đúng.
  • Regression: kiểm tra các loại mã giảm giá khác, thuế, phí vận chuyển, hoàn tiền, báo cáo doanh thu và API thanh toán có còn hoạt động đúng.

Vai trò của Impact Analysis (Phân tích ảnh hưởng)

Trước regression testing, team nên phân tích change có thể ảnh hưởng đến đâu để chọn phạm vi phù hợp. Chạy quá ít có thể bỏ sót regression; chạy toàn bộ suite cho mọi change có thể chậm và tốn kém.

QA có thể ngồi với Dev để 2 bên đánh giá ảnh hưởng tốt nhất, thay vì tự "suy đoán" ảnh hưởng

Vì sao Regression phù hợp với Automation?

Regression suite được chạy nhiều lần và thường tăng theo mỗi sprint hoặc release. Vì vậy đây là ứng viên mạnh cho automation và nên được tích hợp sớm vào CI khi phù hợp.

Confirmation và regression testing có thể cần ở mọi test level nếu defect được sửa hoặc change được thực hiện tại level đó.

Kết luận

Cách nhớ: Confirmation nhìn vào lỗi cũ; Regression nhìn ra vùng xung quanh. Một bản fix chỉ thực sự đáng tin khi vừa sửa đúng vấn đề, vừa không gây hại cho các hành vi liên quan.