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án, chư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ử
Last modified: Friday, 6 February 2026, 3:42 PM