Nếu cách bạn “dùng AI cho test” vẫn là paste stack trace vào chat rồi copy đoạn code lạ vào repo — khả năng cao team sẽ sớm gặp flaky test, leak secret và PR bị kẹt vì không ai hiểu test đang assert cái gì. Mình không muốn thêm một layer hype nữa; mình muốn một workflow bạn có thể mang vào sprint tuần sau.
AI trong automation testing là “trợ lý có trí nhớ ngắn”, không phải QA thay thế
Mình hay ví LLM giống đồng nghiệp mới vào dự án: đọc nhanh, viết nhanh, nhưng không tự biết luật nội bộ của team bạn — selector ưu tiên cái nào, fixture dữ liệu lấy ở đâu, branch nào được phép chạy test destructive. Nhiệm của mình là neo ngữ cảnh đủ chặt để output của AI có thể review và merge được.
AI sinh test nhanh — nhưng “đúng nghiệp vụ” và “ổn định trên CI” là hai trận đánh khác nhau.
Ba lớp việc nên tách rõ trước khi mở tab chat
- Lớp 1 — Diễn giải hành vi: user story, acceptance criteria, state machine đơn giản. Đây là phần AI thường làm tốt nếu bạn đưa đủ ví dụ biên.
- Lớp 2 — Ánh xạ sang công cụ: Playwright/Cypress/Appium, policy selector (data-testid vs CSS dài), retry/timeout chuẩn team.
- Lớp 3 — Vận hành: fixture, seed DB, mock API, secret qua CI vault — AI có thể gợi ý skeleton nhưng người phải ký tên phần nhạy cảm.
Workflow 5 bước mình dùng khi “AI hóa” một luồng regression
- Đóng băng phạm vi: một luồng, một môi trường (local/docker/staging), một trình duyệt mục tiêu.
- Sinh checklist kiểm thử thủ công trước: bắt AI viết bullet theo Given–When–Then; mình sửa tay các bước mơ hồ.
- Sinh skeleton automation: file test, hook beforeEach, page object mỏng — chưa nhồi assert phức tạp.
- Harden selector + ổn định timing: ưu tiên locator ổn định, tránh
sleepmù; chờ điều kiện mạng lưới rõ ràng. - Gắn CI như cổng chất lượng: chạy trên PR nhỏ, báo artifact trace khi fail; flaky được log riêng.
Prompt mẫu: từ acceptance criteria sang Playwright (TypeScript)
Dán khối dưới vào chat/coding agent của bạn, thay ngoặc vuông bằng repo thật. Mục tiêu là ép AI tuân policy thay vì bịa API lạ.
Bạn là assistant giúp viết test Playwright (TypeScript) cho team [TÊN_TEAM].
Ngữ cảnh:
- App: [MÔ_TẢ_NGẮN]
- URL base staging: process.env.BASE_URL (không hardcode prod)
- Selector policy: ưu tiên getByRole / getByTestId; tránh XPath dài
- Không dùng page.waitForTimeout trừ khi giải thích được lý do
Acceptance criteria:
1) [GIVEN_WHEN_THEN_1]
2) [GIVEN_WHEN_THEN_2]
Yêu cầu output:
- Một file test duy nhất, import @playwright/test
- beforeEach: login fixture hoặc mock API [GHI_RÕ_CÁCH_TEAM_LÀM]
- Mỗi bước có comment ngắn nối với acceptance criterion
- Assert cụ thể: URL, text hiển thị, request network (nếu cần)
Hãy in ra code đầy đủ, không bỏ sót import.
Sau khi có code, mình luôn chạy local một lần, rồi mới cho AI “vòng 2” để tách page object hoặc thêm case biên — tránh refactor sớm trên nền code chưa chạy được.
Test data, secret và môi trường: đừng để AI tự quyết
LLM không biết vault của công ty bạn đang đặt ở đâu. Mình cho AI thấy shape của env (process.env.E2E_USER) chứ không dán password. Với dữ liệu random, mình để AI sinh factory theo schema (faker seed cố định trên CI để reproduce).
Agent exploratory và self-healing: hữu ích nhưng dễ “tự sướng”
Agent có thể lang thang UI để tìm crash hay layout break — giống một đợt smoke exploratory nhanh. Self-healing selector nghe hay, nhưng nếu không log diff rõ ràng, bạn sẽ mất niềm tin vào chính báo đỏ của pipeline. Mình chỉ bật các cơ chế tự sửa khi có telemetry + diff review đi kèm.
Nói thẳng phần giới hạn — đừng giao hết cho AI những thứ sau
- Luồng auth / billing / y tế / pháp lý: cần review người có domain knowledge, không chỉ “pass trên staging”.
- Test phụ thuộc thứ tự thời gian thực: polling giá, slot hẹn — dễ flaky; AI hay vá bằng sleep.
- Compliance và retention log: AI không tự biết policy công ty bạn.
Tổng kết và việc nên làm ngay tuần tới
AI trong automation testing mạnh nhất ở chỗ rút ngắn thời gian từ ý tưởng đến skeleton có thể chạy — miễn là bạn giữ được chuẩn selector, dữ liệu và cổng CI. Đừng để repo thành bảo tàng đoạn code mà không ai dám xóa.
Tóm lại những gì cần nhớ:
- Tách ba lớp: hành vi → công cụ → vận hành; AI làm tốt lớp 1–2 nếu được neo chặt.
- Luôn có prompt template kèm policy selector và base URL qua env.
- Self-healing / exploratory agent chỉ nên đi kèm log và review.
- Không để AI tự quyết secret, compliance và các luồng nhạy cảm.
- Merge test của AI theo tiêu chí giống merge code của đồng nghiệp: đọc được, chạy lại được, fail có trace.
Nếu bạn chưa thử, hãy chọn một luồng regression đang làm tay đau nhất, viết acceptance criteria ngắn, chạy prompt mẫu ở trên và mở PR chỉ với file test đó — không refactor dàn trải. Phần còn lại sẽ thành thói quen.
Chúc anh em code vui! 🚀
Tags: #khoaphambk #AI #AutomationTesting #QA #Playwright #Cypress #DevOps

