1. Đồng bộ hóa đúng cách

  • Sử dụng explicit wait thay vì sleep trong test UI.
  • Đảm bảo các điều kiện (element hiển thị, API phản hồi) đã sẵn sàng trước khi assert.

2. Cô lập môi trường test

  • Mỗi test nên chạy độc lập, không phụ thuộc vào test khác.
  • Dọn dẹp dữ liệu và trạng thái sau mỗi test.

3. Kiểm soát dữ liệu đầu vào

  • Dùng dữ liệu giả lập (mock/stub/fake) thay vì gọi API thật.
  • Tạo dữ liệu test riêng biệt, không dùng chung với môi trường production.

4. Tránh phụ thuộc vào thời gian thực

  • Không assert theo thời gian cụ thể (ví dụ: “đợi 5 giây rồi kiểm tra”).
  • Dùng timestamp giả lập hoặc kiểm tra theo điều kiện logic.

5. Ghi log và retry có kiểm soát

  • Ghi lại log chi tiết khi test fail để phân tích nguyên nhân.
  • Có thể dùng retry, nhưng chỉ như biện pháp tạm thời – không nên lạm dụng.

NGUYÊN TẮC CỐT LÕI

Để tránh flaky test, cần tập trung vào 4 điểm chính:

  • locator ổn định

  • wait đúng trạng thái

  • dữ liệu độc lập

  • test không phụ thuộc lẫn nhau

Công cụ hỗ trợ phát hiện flaky test

  • CI/CD dashboard: theo dõi test nào fail ngẫu nhiên nhiều lần.
  • Test analytics tools: như Testmo, Allure, hoặc Datadog để phân tích độ ổn định.
Last modified: Friday, 6 February 2026, 3:43 PM