1. Vì sao phỏng vấn hỏi về AI trong testing năm 2026
Từ khi Playwright ra bộ Agents và giao thức MCP, hầu hết vòng phỏng vấn QA cấp trung trở lên đều có một khối câu hỏi về AI trong testing. Người phỏng vấn không tìm người tôn thờ AI, cũng không tìm người bài xích; họ tìm người biết dùng AI đúng chỗ và giữ quyền kiểm soát ở đúng chỗ. Bài viết này là ngân hàng câu hỏi kèm câu trả lời mẫu, các 'cờ đỏ' khiến bạn mất điểm, và một buổi mock để bạn tập nói về AI một cách chín chắn.
Điểm cốt lõi mà mọi câu trả lời tốt phải chạm tới: AI giúp tăng tốc soạn thảo, khám phá và bảo trì test, nhưng con người giữ quyền định nghĩa oracle và phê duyệt thay đổi. Nói cách khác, AI là người viết bản nháp và người thợ sửa, còn kỹ sư là người ra phán quyết 'đúng hay sai về mặt nghiệp vụ'. Người phỏng vấn muốn nghe bạn phân định rạch ròi ba việc: nơi AI làm tốt, nơi AI dễ sai, và cơ chế bảo vệ (guardrail) bạn dựng để AI không gây hại.
2. Kiến trúc Planner / Generator / Healer nói sao cho chuẩn
Câu hỏi mở đầu thường là 'giải thích Playwright Agents'. Trả lời chuẩn nêu ba vai trò và điểm dừng review giữa chúng. Planner khám phá ứng dụng và viết kế hoạch test dạng Markdown mà con người đọc và duyệt trước khi sinh code. Generator biến kế hoạch đã duyệt thành spec chạy được, và điểm mấu chốt là nó xác minh locator ngay trên app đang chạy, nhờ đó giảm ảo giác locator không tồn tại. Healer chạy trong debug: nó soi console, network và snapshot để đề xuất sửa test đỏ hoặc đánh dấu skip, nhưng không được nới lỏng kỳ vọng.
❓ Vì sao việc Generator 'verify locator trên app thật' lại quan trọng với chống ảo giác?
Mô hình ngôn ngữ có thể bịa ra một selector nghe hợp lý nhưng không tồn tại trên trang. Khi Generator chạy locator đó ngay trên app đang chạy và thấy nó khớp đúng một phần tử, ta có bằng chứng thực nghiệm thay vì niềm tin mù. Đây là dạng grounding: neo output của AI vào trạng thái thật của hệ thống. Điểm cao: bổ sung rằng vẫn cần con người duyệt vì locator đúng cú pháp chưa chắc đúng ý nghĩa nghiệp vụ — nó có thể trỏ nhầm phần tử hợp lệ khác.
<!-- .agents/planner.md — kế hoạch test do Planner sinh, con người duyệt -->
# Kế hoạch: Luồng đặt hàng
## Mục tiêu (oracle do con người xác nhận)
- Tồn kho không âm sau khi đặt
- Số tiền cuối = subtotal - giảm giá theo bậc
- Retry đặt hàng -> một đơn duy nhất (idempotent)
## Ca kiểm
1. Happy path: đăng nhập, thêm giỏ, đặt, xác nhận đơn
2. Hết hàng: SKU tồn 0 -> chặn đặt, thông báo đúng
3. Thanh toán lỗi 500 -> giữ đơn ở trạng thái chờ, không trừ kho
> Người review: xác nhận oracle trước khi cho Generator sinh spec.3. MCP là gì và ranh giới an toàn khi cho AI điều khiển trình duyệt
Playwright MCP (Model Context Protocol) là cầu nối để một mô hình AI như Claude, GPT hay Gemini điều khiển trình duyệt qua các công cụ Playwright bằng câu lệnh tiếng Anh. Điểm khác biệt quan trọng là MCP làm việc trên cây accessibility (a11y tree) chứ không phải pixel: AI 'nhìn' trang qua cấu trúc vai trò và nhãn giống trình đọc màn hình, nên hành động ổn định và diễn giải được. Trong phỏng vấn, hãy nhấn mạnh MCP mở ra kịch bản khám phá và test thăm dò do AI dẫn, nhưng đi kèm rủi ro nếu để nó chạy tự do trên môi trường thật.
❓ Bạn cho AI qua MCP chạy trên môi trường nào, và cần guardrail gì?
Chỉ trên môi trường không sản xuất: staging hoặc sandbox có dữ liệu giả, không có tiền thật, không PII thật. Guardrail gồm: giới hạn phạm vi hành động (không xoá, không thanh toán thật), tài khoản quyền tối thiểu, dữ liệu tổng hợp, và ghi log mọi hành động để audit. Quan trọng nhất là mọi test hay thay đổi do AI đề xuất đều phải qua pull request để con người duyệt trước khi vào suite chính thức. Điểm cao: nêu rủi ro prompt injection — nếu nội dung trang chứa chỉ thị độc, AI có thể bị lái; nên coi nội dung app là dữ liệu không tin cậy.
// mcp config — chỉ trỏ tới staging, chặn thao tác nguy hiểm
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["@playwright/mcp@latest", "--headless",
"--allowed-origins", "https://staging.shop.io"],
"env": { "BASE_URL": "https://staging.shop.io" }
}
}
}
💬 Bình luận (0)
Chưa có bình luận nào. Hãy là người đầu tiên!