Nếu là Automation Engineer chắc chắn bạn đã gặp:
  • ✅ Script thực thi thành công khi bạn thực thi cục bộ (run trên máy các bạn phát triển) nhưng lại fail khi run all 🙁.
  • ❌ Đôi lúc hoặc nhiều lúc bị fail trên Jenkins
    -> Và khiến bạn hoài nghi về chính code của mình mỗi lần

Vậy Flaky trong Automation là gì ? hiểu đơn giản là kiểm thử tự động không ổn định, cụ thể:

  • Xuất hiện fail không thường xuyên mặc dù không có bất kỳ thay đổi nào trong code test.
  • Chạy lại thì thành công mà không biết rõ vì sao lại thế.
  • Gây ra cảnh báo sai và làm giảm niềm tin vào kết quả kiểm thử tự động.

 

Nguyên nhân phổ biến của kiểm thử không ổn định
  • Xử lý đồng bộ (wait)

    Trong automation test, wait (đồng bộ) là cơ chế giúp script chờ cho hệ thống ở đúng trạng thái mong muốn trước khi thực hiện thao tác tiếp theo.

    Nguyên nhân cần wait:

    • Trang web load không đồng bộ (AJAX, API call).

    • Element được render sau một khoảng thời gian.

  • UI thay đổi/hoặc UI động
    • Các element biến mất/xuất hiện lại hoặc load với độ trễ ngẫu nhiên
    • Thay đổi ID hoặc class trong DOM
  • Locator cho các Element
    • Phương thức xác định XPath hoặc CSS chưa nhất quánchưa đảm bảo độ chính xác cao.
  • Sự phụ thuộc trong các kịch bản
    • Các bài kiểm thử phụ thuộc lẫn nhau, bài này phụ thuộc bài kia (có thể logic hoặc cả kết quả)
    • Sự phụ thuộc về dữ liệu giữa các bài kiểm thử: Dữ liệu chưa được thiết lại lại giữa các bài kiểm thử, nên khi chạy 1 thì PASS, chạy cả thì lại FAIL
  • Môi trường thực thi
    • Ảnh hưởng từ môi trường thực thi: Độ trễ mạng, máy ảo chậm, RAM thấp, dữ liệu kiểm thử không nhất quán
  • Lỗi từ 3rd (bên thứ 3)
    • API trả về lỗi 500 một cách ngẫu nhiên
    • Dịch vụ ngừng hoạt động trong quá trình thực thi kiểm thử
Sửa lần cuối: Thứ Sáu, 6 tháng 2 2026, 3:42 PM