Bài Tập 1: Review Code AI¶
Yêu Cầu¶
Review code Playwright sinh ra từ AI và tìm tất cả anti-pattern.
Đề Bài¶
Review code sau:
import { test, expect } from '@playwright/test';
test('test add to cart', async ({ page }) => {
await page.goto('https://practice.automationtesting.in/shop/');
await page.locator('.product').nth(0).click();
await page.locator('.add_to_cart_button').click();
await page.waitForTimeout(5000);
await page.locator('text=View Basket').click();
});
Hướng Dẫn¶
Bước 1: Đọc code và hiểu logic¶
Code đang làm gì? 1. __ 2. __ 3. __ 4. __ 5. ___
Bước 2: Kiểm tra theo Checklist¶
1. Locator Quality¶
| Dòng | Code | Vấn đề? | Sửa |
|---|---|---|---|
| 6 | .product |
? | ? |
| 6 | .nth(0) |
? | ? |
| 7 | .add_to_cart_button |
? | ? |
| 9 | text=View Basket |
? | ? |
2. Assertion¶
- Có assertion không?
- [ ] Có
- [ ] Không → Vấn đề: _____
3. Anti-Pattern¶
| Anti-Pattern | Có không? | Dòng | Sửa |
|---|---|---|---|
| waitForTimeout | ? | ? | ? |
| Locator index (.nth()) | ? | ? | ? |
| Không có assertion | ? | - | ? |
Bước 3: Liệt kê tất cả vấn đề¶
Bước 4: Viết code cải thiện¶
import { test, expect } from '@playwright/test';
test('test add to cart', async ({ page }) => {
// TODO: Viết code cải thiện ở đây
});
Checklist Đánh Giá¶
□ Tên test mô tả rõ ràng
□ Không dùng waitForTimeout
□ Không dùng locator index
□ Có assertion đầy đủ
□ Locator ổn định
□ Code dễ đọc
Nộp Bài¶
- [ ] Danh sách vấn đề tìm được
- [ ] Code cải thiện
- [ ] Checklist đánh giá