Currently Empty: 0.00₫
Automation Test
Flaky tests in Automation: Nguyên nhân và giải pháp xử lý

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)
- Sử dụng Thread.sleep() thay vì các cơ chế wait thông minh như WebDriverWait (trong Selenium)
- Không chờ các phần tử được load xong hoặc cho phép thực hiện các actions
- 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ử
Vậy giải pháp xử lý như nào ? Mong được các bạn góp ý và chia sẻ phương hướng xử lý.