1. Giới thiệu
Trong quá trình phát triển phần mềm, Automation Testing ngày càng đóng vai trò quan trọng trong việc đảm bảo chất lượng sản phẩm và rút ngắn thời gian kiểm thử.
Tuy nhiên, khi hệ thống phát triển lớn hơn, đội ngũ QC thường phải đối mặt với một số vấn đề:
Số lượng automation test case ngày càng tăng.
UI thay đổi liên tục khiến test script phải cập nhật.
Locator dễ bị lỗi khi cấu trúc HTML thay đổi.
Thời gian bảo trì automation suite ngày càng lớn.
Tester cần có kiến thức lập trình để xây dựng và duy trì automation framework.
Điều này đặt ra một câu hỏi: Liệu Tester có thể sử dụng AI để thực hiện các thao tác kiểm thử mà không cần phải viết quá nhiều code automation truyền thống?
Đó là lý do mình bắt đầu tìm hiểu về AI Agent trong E2E Testing.
2. AI Agent trong E2E Testing là gì?
AI Agent trong E2E Testing là cách tiếp cận sử dụng trí tuệ nhân tạo để thực hiện các hành động kiểm thử trên ứng dụng dựa trên yêu cầu được mô tả bằng ngôn ngữ tự nhiên.
Thay vì phải xác định từng locator và viết từng thao tác click, fill hay select, Tester có thể mô tả hành động mong muốn cho AI Agent.
Ví dụ với Playwright truyền thống:
await page.goto('/login');
await page.locator('#username').fill('admin');
await page.locator('#password').fill('Admin123');
await page.getByRole('button', {
name: 'Login'
}).click();
await expect(
page.getByRole('heading', {
name: 'Dashboard'
})
).toBeVisible();Với AI Agent:
await agent.act(
'Login with valid credentials'
);
await agent.assert(
'The user is successfully logged in'
);Sự khác biệt nằm ở cách Tester mô tả hành động và cách Agent xác định các bước cần thực hiện trên giao diện.
Thay vì phải viết toàn bộ thao tác chi tiết, Tester có thể tập trung nhiều hơn vào mục tiêu kiểm thử.
3. Tìm hiểu framework e2e của TesterArmy
Trong quá trình nghiên cứu, mình đã thử nghiệm framework e2e của TesterArmy.
Đây là framework hướng đến Agentic E2E Testing, kết hợp AI Agent với browser automation để thực hiện các thao tác kiểm thử.
Một số thành phần đáng chú ý:
Playwright: Hỗ trợ browser automation.
AI Agent: Tiếp nhận yêu cầu bằng ngôn ngữ tự nhiên và thực hiện hành động.
AI SDK: Kết nối với các AI model provider.
Assertions: Kiểm tra kết quả sau khi thực hiện hành động.
Một điểm thú vị là Tester có thể sử dụng các câu lệnh như:
await agent.act(
'Navigate to Competitions page'
);
await agent.assert(
'The Competitions page is displayed'
);Điều này giúp việc mô tả test scenario trở nên gần với ngôn ngữ nghiệp vụ hơn.
4. Thiết lập môi trường thử nghiệm
Để bắt đầu nghiên cứu, mình đã thiết lập môi trường với:
| Thành phần | Công nghệ |
|---|---|
| Programming language | TypeScript |
| Runtime | Node.js |
| Package manager | pnpm |
| Browser automation | Playwright |
| E2E framework | TesterArmy e2e |
| AI Model | OpenAI |
| AI SDK | Vercel AI SDK |
Các bước cài đặt cơ bản:
Bước 1: Khởi tạo project
npx e2e@latest initBước 2: Cài đặt dependencies
pnpm installBước 3: Cấu hình OpenAI API Key
Tạo file .env:
OPENAI_API_KEY=your_openai_api_keyLưu ý: ChatGPT Plus và OpenAI API là hai dịch vụ riêng biệt. Muốn sử dụng OpenAI model thông qua API, cần thiết lập API billing riêng.
Bước 4: Viết E2E test
Ví dụ:
import { test } from '@e2e-dev/web';
import { expect } from 'e2e';
test('Verify login functionality', async ({
app,
agent,
screen
}) => {
await app.open('/login');
await agent.act(
'Login with valid username and password'
);
await agent.assert(
'The user has successfully logged in'
);
await expect(
screen.getByRole('heading', {
name: 'Dashboard'
})
).toBeVisible();
});Đây là ví dụ minh họa cách tổ chức test; cần cấu hình credentials, model và assertion phù hợp với project thực tế.
5. Những lợi ích tiềm năng của AI Agent Testing
5.1. Giảm sự phụ thuộc vào locator cố định
Trong automation truyền thống, Tester thường sử dụng CSS selector, XPath hoặc các locator dựa trên thuộc tính HTML.
Ví dụ:
await page.locator('#login-button').click();Nếu developer thay đổi ID hoặc cấu trúc HTML, test có thể bị fail.
AI Agent có thể sử dụng ngữ cảnh giao diện và mô tả hành động để tìm cách tương tác phù hợp. Tuy nhiên, điều này không có nghĩa Agent luôn miễn nhiễm với thay đổi UI.
5.2. Viết test scenario gần với ngôn ngữ nghiệp vụ
Thay vì mô tả từng thao tác kỹ thuật, Tester có thể viết:
Login with valid credentials.
Navigate to Competitions.
Search for a specific competition.
Verify that the competition details are displayed.
Cách tiếp cận này giúp test scenario dễ đọc và dễ trao đổi giữa QC, PO và Developer.
5.3. Hỗ trợ Tester không chuyên sâu về lập trình
AI Agent có thể giảm lượng code cần viết cho một số thao tác UI.
Tuy nhiên, Tester vẫn cần hiểu:
Test design techniques.
Business requirements.
Expected results.
Test data.
Assertion và validation.
Các vấn đề về authentication, authorization và test environment.
AI có thể hỗ trợ thao tác, nhưng không thay thế kiến thức kiểm thử.
6. Những hạn chế cần cân nhắc
Mặc dù có nhiều tiềm năng, AI Agent Testing vẫn tồn tại một số thách thức.
| Hạn chế | Phân tích |
|---|---|
| Execution time | Agent cần thời gian phân tích giao diện và quyết định hành động |
| AI cost | Mỗi lần tương tác có thể phát sinh chi phí API |
| Non-deterministic | Cùng một yêu cầu có thể tạo ra cách thực hiện khác nhau |
| Assertion reliability | AI có thể hiểu sai trạng thái mong đợi |
| Debugging | Khó xác định nguyên nhân khi Agent thực hiện sai hành động |
| Security | Cần kiểm soát quyền truy cập và dữ liệu được sử dụng |
Một vấn đề đặc biệt quan trọng là tính ổn định.
Với những test case quan trọng như thanh toán, đăng ký thành viên hoặc phân quyền người dùng, chúng ta không nên chỉ dựa vào kết luận của AI Agent.
Nên kết hợp Agent với các assertion xác định bằng Playwright.
7. Kết luận
AI Agent đang mở ra một hướng tiếp cận mới trong Automation Testing.
Thay vì chỉ tập trung vào việc viết script để mô phỏng hành động của người dùng, Tester có thể chuyển sang mô tả mục tiêu kiểm thử và sử dụng AI Agent để hỗ trợ thực hiện các thao tác trên ứng dụng.
Tuy nhiên, công nghệ mới không đồng nghĩa với việc mọi vấn đề automation đều được giải quyết.
Một bộ automation hiệu quả không được đánh giá bằng số lượng test case hay mức độ sử dụng AI, mà cần dựa trên khả năng phát hiện defect, độ tin cậy, thời gian thực thi và chi phí bảo trì.
Theo mình, tương lai của Automation Testing không nhất thiết là thay thế hoàn toàn script bằng AI, mà là kết hợp đúng thế mạnh của AI Agent, Playwright và API Testing để xây dựng một hệ thống kiểm thử thông minh, ổn định và hiệu quả hơn.
