Kinh Nghiệm Debug Automation Test Fail Trong Dự Án Thực Tế

3 min read

Vì sao debug automation test khó hơn manual test?

Trong Software Testing, một trong những kỹ năng quan trọng nhất của automation tester không phải là “viết test”, mà là khả năng debug khi test fail.

Nhiều tester mới nghĩ rằng:

  • automation test fail
    → chỉ cần rerun.

Nhưng thực tế:

  • flaky test
  • environment issue
  • async loading
  • unstable selector
  • network delay

có thể khiến việc debug mất hàng giờ.

Ở các dự án lớn:

  • số lượng test có thể lên đến hàng nghìn
  • pipeline chạy song song
  • nhiều environment khác nhau

Nếu không có kỹ năng debug tốt:

  • regression sẽ rất khó maintain
  • team mất niềm tin vào automation
  • release bị delay liên tục

Các loại automation test fail phổ biến

1. Functional Fail

Đây là trường hợp tốt nhất.

Ví dụ:

  • login API trả sai response
  • button không hoạt động
  • validation sai business logic

Loại fail này thường là:

  • bug thật
  • reproducible

2. Flaky Fail

Đây là loại đau đầu nhất.

Ví dụ:

  • rerun lại pass
  • local pass nhưng CI fail
  • random timeout

Nguyên nhân thường là:

  • timing issue
  • unstable locator
  • environment unstable

3. Environment Fail

Ví dụ:

  • database down
  • API timeout
  • staging crash
  • third-party service lỗi

Đây không phải bug của app nhưng vẫn khiến automation fail.


4. Test Data Fail

Ví dụ:

  • duplicate email
  • expired account
  • dirty data
  • race condition

Đây là vấn đề rất phổ biến trong automation project lớn.


Quy trình debug automation test hiệu quả

Bước 1: Đọc error message thật kỹ

Nhiều tester:

  • nhìn thấy fail
    → rerun ngay

Đây là sai lầm phổ biến.

Cần đọc:

  • stack trace
  • locator fail
  • timeout message
  • assertion fail

Ví dụ:

Timeout 30000ms exceeded while waiting for element

Thông tin này giúp xác định:

  • wait issue
  • selector issue
  • rendering issue

Bước 2: Xem screenshot và video

Framework hiện đại như:

  • Playwright
  • Cypress

đều hỗ trợ:

  • screenshot
  • video recording
  • trace viewer

Đây là thứ cực kỳ hữu ích khi debug CI fail.


Bước 3: Check network log

Rất nhiều fail thực tế không đến từ UI.

Ví dụ:

  • API 500
  • API timeout
  • wrong response mapping

Nếu chỉ nhìn UI:

  • rất khó biết nguyên nhân gốc.

Bước 4: Reproduce local

Một bug tốt phải:

  • reproduce được

Nếu:

  • CI fail
  • local pass

thì cần investigate:

  • browser version
  • environment
  • execution timing
  • parallel issue

Bước 5: Kiểm tra test data

Một số fail chỉ xảy ra khi:

  • data trùng
  • account bị lock
  • DB dirty

Đây là lý do mature automation framework thường:

  • generate random data
  • cleanup data sau test

Những kỹ năng debug quan trọng của automation tester

1. Đọc DOM

Nhiều vấn đề đến từ:

  • hidden element
  • detached element
  • iframe
  • shadow DOM

Nếu không hiểu DOM:

  • debug UI rất khó.

2. Hiểu network/API

Automation tester hiện đại cần hiểu:

  • request
  • response
  • authentication
  • cookies
  • headers

Vì rất nhiều issue nằm ở backend chứ không phải frontend.


3. Hiểu async behavior

Frontend hiện đại sử dụng:

  • lazy loading
  • debounce
  • async rendering

Nếu không hiểu async:

  • dễ click quá sớm
  • verify sai timing

Kinh nghiệm debug flaky test

Không dùng hard wait để “fix”

Sai lầm phổ biến:

waitForTimeout(10000)

Điều này chỉ:

  • che issue tạm thời
  • làm test chậm hơn

Dùng stable locator

Ưu tiên:

  • data-testid
  • accessibility locator
  • role-based locator

Tách nhỏ test case

Một test quá dài:

  • rất khó debug
  • fail khó xác định root cause

Tool hỗ trợ debug mạnh hiện nay

Playwright

Có:

  • trace viewer
  • auto wait
  • network inspection
  • screenshot
  • video

rất mạnh cho debugging.

Cách sử dụng Playwright here


Postman

Rất hữu ích để:

  • reproduce API issue
  • verify backend behavior

Cách sử dụng Postman here


Sai lầm phổ biến của beginner

Chỉ focus vào script

Automation testing không chỉ là:

  • viết code

Mà còn là:

  • investigate
  • analyze
  • debug system behavior

Không hiểu business flow

Nếu không hiểu:

  • app hoạt động như thế nào

thì rất khó:

  • identify root cause
  • viết assertion đúng

Kết luận

Kỹ năng debug là yếu tố phân biệt:

  • người biết dùng tool
  • automation engineer thực thụ.

Một automation tester giỏi không phải người viết nhiều test nhất, mà là người:

  • giữ test suite stable
  • debug nhanh
  • xác định đúng root cause
  • giảm false failure
Avatar photo

Leave a Reply

Your email address will not be published. Required fields are marked *