Một nghịch lý quen thuộc
Hãy hình dung một tester nhờ AI sinh 80 test case cho tính năng thanh toán. Việc tiếp theo họ làm là ngồi đọc từng case, thấy thiếu trường hợp hết hạn thẻ, thấy một expected result sai, thấy hai case trùng nhau.
Họ đang kiểm thử bộ test case do AI tạo ra. Họ làm vậy theo bản năng, không ai bảo.
Nhiều người coi đây là điểm yếu: “AI không đáng tin, mình lại mất thời gian soát lại”. Tôi nghĩ ngược lại. Bản năng ấy chính là kỹ năng cốt lõi của nghề, và nó đang bị gọi sai tên.
Vùng an toàn đang thu hẹp
Phải nhìn thẳng vào thực tế:
- AI sinh test case nhanh hơn người, và phủ rộng hơn ở các luồng thông thường.
- AI có thể tự chạy thử ứng dụng, quan sát kết quả và báo cáo hoàn thành.
- Khi team cần automation, AI viết Playwright khá tốt: locator, fixture, page object, cả cấu hình CI.
- Ở khoản viết mã, tester thường thua developer. Developer cộng với AI thì khoảng cách còn rộng hơn.
Vậy nếu giá trị của tester nằm ở “viết test case” hay “viết script”, giá trị đó đang giảm dần. Cạnh tranh ở đó là cuộc đua không có người thắng.
Điều AI chưa làm được: biết thế nào là đúng
Kiểm thử không chỉ là chạy và so sánh. Nó bắt đầu từ một câu hỏi khó hơn: kết quả đúng ở đây là gì? Giới kiểm thử gọi đó là test oracle.
AI sinh test dựa trên những gì nó thấy: yêu cầu, code, tài liệu. Nó không biết:
- khách hàng thật sự cần gì, khác với điều họ viết trong yêu cầu;
- nghiệp vụ nào đã từng gây sự cố ở production;
- chỗ nào hệ thống hay hỏng, và hỏng thì ai đau;
- yêu cầu nào mơ hồ, mâu thuẫn hoặc bị bỏ sót.
Khi tester soát bộ test của AI, họ đang đem tri thức đó ra đối chiếu. Cái “bản năng” ấy chính là domain knowledge và tư duy rủi ro. AI không có hai thứ này, trừ khi con người đưa vào.
Còn một rủi ro thầm lặng. AI viết test và viết code theo cùng một cách hiểu. Nếu cách hiểu sai thì test sai cùng chiều với code, và mọi thứ vẫn xanh. Test xanh khi người kiểm tra cũng chính là người tạo ra lỗi thì không chứng minh được gì. Cần một góc nhìn độc lập, và góc nhìn đó là người.
Hướng đi: từ người thực thi thành người cầm cân
Tôi đề xuất bốn dịch chuyển cụ thể.
1. Làm chủ đầu vào, không chỉ đầu ra.
Chất lượng test do AI sinh ra phụ thuộc chất lượng yêu cầu. Hãy dùng sức mạnh của tester ở khâu sớm nhất: làm rõ acceptance criteria, liệt kê giả định, chỉ ra điểm mâu thuẫn trước khi code được viết. Một yêu cầu rõ ràng đáng giá hơn một trăm test case sửa lại sau.
2. Soát theo rủi ro, không soát từng dòng.
Đọc hết 80 test case thì tốn thời gian và dễ mất tập trung. Hãy đảo ngược cách làm:
- Yêu cầu AI nêu rõ giả định và những gì nó không phủ.
- Lập bản đồ độ phủ theo yêu cầu và theo rủi ro, rồi tự hỏi “thiếu gì?” thay vì “sai ở đâu?”.
- Dành sự chú ý cho vùng rủi ro cao: tiền, dữ liệu cá nhân, phân quyền, tích hợp bên ngoài.
3. Kiểm tra chính bộ test.
Một test xanh chưa chắc là test tốt. Hai câu hỏi đáng hỏi:
- Nếu tôi cố ý phá code, test có đỏ không? (kiểm tra theo kiểu mutation)
- Assertion có thật sự khẳng định hành vi quan trọng, hay chỉ kiểm tra “trang đã tải”?
Đây là tầng giá trị mới: kiểm thử các bài kiểm thử.
4. Tách người viết và người duyệt.
Đừng bảo AI vừa viết test vừa tự đánh giá trong cùng một lượt, vì nó có xu hướng tự đồng ý với mình. Hãy dùng một lượt hoặc một agent riêng, với chỉ thị riêng, để phản biện. Rồi con người đưa ra quyết định cuối. Quy trình này vừa nhanh hơn soát tay hoàn toàn, vừa an toàn hơn tin tuyệt đối.
Còn chuyện viết code automation thì sao?
Đừng cố thắng developer ở cú pháp. Hãy đổi vai:
- Tester viết ý định bằng ngôn ngữ nghiệp vụ: kịch bản, điều kiện, dữ liệu, kết quả mong đợi.
- AI chuyển ý định thành Playwright.
- Tester soát những gì AI hay làm sai: locator mong manh, chờ đợi bằng
sleep, assertion lỏng, test phụ thuộc lẫn nhau, dữ liệu dùng chung gây flaky.
Soát một đoạn Playwright cần hiểu code ở mức đọc được, không cần viết trơn tru từng dòng. Đó là mức tester hoàn toàn đạt được, và nên đạt.
Những mảng AI khó thay thế
- Exploratory testing: tò mò, nghi ngờ, thử những thứ không ai nghĩ tới.
- Kiểm thử tính khả dụng và trải nghiệm: cảm giác “dùng thấy khó chịu” khó mã hoá thành assertion.
- Kiểm thử chính hệ thống AI: đánh giá đầu ra mơ hồ, bias, hallucination. Đây là mảng đang cần người rất nhiều.
- Chiến lược kiểm thử: quyết định kiểm gì, bỏ gì, dừng khi nào, và chịu trách nhiệm cho quyết định đó.
- Quan sát production: đọc log, metric, phản hồi người dùng để biết chất lượng thật.
Kết luận
AI không xoá nghề tester. Nó xoá phần việc lặp lại của nghề, và để lộ phần việc khó nhất: phán đoán điều gì là đúng và điều gì đáng lo.
Cái bản năng “soát lại test của AI” không phải sự thiếu tin tưởng vô ích. Đó là tín hiệu cho thấy bạn đang đứng đúng chỗ. Việc cần làm là biến bản năng đó thành phương pháp: soát theo rủi ro, kiểm tra độ mạnh của test, tách người viết khỏi người duyệt, và để AI lo phần gõ phím.
Tester của tương lai không phải người chạy nhiều test nhất. Đó là người mà team tin khi nói: “Có thể phát hành rồi” hoặc “Chưa, vì chỗ này”.