1. Mô tả lỗi

Flaky test là test automation có kết quả không ổn định:

  • cùng một test

  • cùng một code

  • cùng một môi trường

nhưng:

  • lúc pass

  • lúc fail

mà không có thay đổi chức năng của ứng dụng.

2. Nguyên nhân phổ biến

2.1. Wait không đúng hoặc không đủ

  • chờ sai điều kiện

  • timeout không phù hợp

  • dùng sleep cố định

→ chạy nhanh thì pass, chậm thì fail.

2.2. Ứng dụng phản hồi chậm hoặc không ổn định

  • backend chậm

  • mạng chậm

  • môi trường yếu

→ thời gian load thay đổi giữa các lần chạy.

2.3. Element bị che hoặc chưa sẵn sàng tương tác

  • overlay

  • animation

  • trạng thái enable chưa xong

→ click bị chặn ngẫu nhiên.

2.4. Xpath / locator không ổn định

  • dùng index

  • dùng thuộc tính động

  • DOM thay đổi nhẹ là lệch

→ lúc tìm được, lúc không.

2.5. UI bị render lại trong lúc test đang thao tác

  • SPA re-render

  • element bị detach

  • reference cũ không còn hợp lệ

2.6. Dữ liệu test không độc lập

  • nhiều test dùng chung dữ liệu

  • chạy song song ghi đè

  • phụ thuộc trạng thái test khác

2.7. Phụ thuộc thứ tự chạy test

  • test sau phụ thuộc kết quả test trước

  • khi reorder hoặc chạy riêng thì fail

3. Dấu hiệu nhận biết

  • Chạy lại nhiều lần cho kết quả khác nhau

  • Chạy local thì pass, lên CI thì fail

  • Rerun thì pass

4. Cách khắc phục (thực tế nên làm)

4.1. Chuẩn hóa lại toàn bộ wait

  • chờ theo trạng thái thực

  • bỏ sleep

  • dùng wait reusable

4.2. Ổn định locator

  • dùng data-test / data-qa

  • tránh index

  • tránh xpath theo cấu trúc sâu

4.3. Đảm bảo dữ liệu test độc lập

  • mỗi test tự tạo dữ liệu

  • hoặc dùng data riêng

  • cleanup sau test

4.4. Tránh giữ element reference quá lâu

  • re-find element trước khi thao tác quan trọng

  • nhất là sau navigation hoặc reload

4.5. Kiểm soát môi trường chạy test

  • tài nguyên máy

  • số lượng test chạy song song

  • cấu hình browser / grid

4.6. Ghi log và đánh dấu flaky test

  • log thời gian chờ

  • log bước fail

  • theo dõi tỉ lệ fail

→ để tìm pattern gây flaky.

Sửa lần cuối: Thứ Tư, 25 tháng 2 2026, 10:49 AM