[Manual testing] Cách viết test checklist hiệu quả

Format chuẩn cho test checklist
1. Quick Context (Bối cảnh nhanh)
- Purpose (Mục đích): [Checklist này dùng cho loại app/tính năng nào]
- Estimated Time (Thời gian ước tính): [X phút]
- Priority Level (Mức độ ưu tiên): [Critical/High/Medium/Low]
- Prerequisites (Điều kiện tiên quyết): [Test data, tools, accounts, environment cần chuẩn bị]
2. Critical Path Testing (Kiểm tra luồng chính)
Happy Path (Luồng chính – trường hợp thành công)
- [ ] Step 1: [Action] → [Expected Result]
- [ ] Step 2: [Action] → [Expected Result]
- [ ] Step 3: [Action] → [Expected Result]
- [ ] Step 4: [Action] → [Expected Result]
Top Edge Cases (Các trường hợp biên quan trọng)
- [ ] Edge case 1: [Scenario] → [Expected Behavior]
- [ ] Edge case 2: [Scenario] → [Expected Behavior]
- [ ] Edge case 3: [Scenario] → [Expected Behavior]
- [ ] Edge case 4: [Scenario] → [Expected Behavior]
- [ ] Edge case 5: [Scenario] → [Expected Behavior]
3. Quick Validation Checklist (Danh sách kiểm tra nhanh)
P1 – Critical (Quan trọng – PHẢI test)
- [ ] Core functionality works? (Chức năng chính hoạt động?)
- [ ] Data is saved correctly? (Dữ liệu được lưu đúng?)
- [ ] Basic security validated? (Bảo mật cơ bản OK?)
- [ ] No app crashes? (App không bị crash?)
- [ ] Critical business rules enforced? (Quy tắc nghiệp vụ quan trọng được thực thi?)
P2 – Important (Cần thiết – NÊN test)
- [ ] UI displays correctly? (Giao diện hiển thị đúng?)
- [ ] Error messages are clear? (Thông báo lỗi rõ ràng?)
- [ ] Performance acceptable? (Hiệu năng chấp nhận được?)
- [ ] Works on different devices/browsers? (Hoạt động trên nhiều thiết bị/trình duyệt?)
- [ ] Input validation working? (Validation input hoạt động?)
P3 – Nice to have (Bổ sung – test khi có thời gian)
- [ ] Accessibility features work? (Tính năng accessibility?)
- [ ] UI animations smooth? (Animation mượt mà?)
- [ ] Minor edge cases covered? (Các edge case phụ?)
- [ ] Cross-browser compatibility? (Tương thích đa trình duyệt?)
4. Red Flags to Watch (Dấu hiệu cảnh báo cần chú ý)
Stop and Escalate if (Dừng và báo cáo ngay nếu):
- [ ] Data loss or corruption (Mất hoặc hỏng dữ liệu)
- [ ] Security vulnerability found (Phát hiện lỗ hổng bảo mật)
- [ ] Payment/Transaction issues (Vấn đề thanh toán/giao dịch)
- [ ] User cannot proceed/stuck (User bị kẹt, không thể tiếp tục)
- [ ] Personal data exposed (Rò rỉ thông tin cá nhân)
- [ ] System crash/hang (Hệ thống crash/treo)
5. Quick Test Data (Dữ liệu test nhanh)
Valid Data (Dữ liệu hợp lệ):
Example: [Provide specific valid test data]
Invalid Data (Dữ liệu không hợp lệ):
Example: [Provide specific invalid test data]
Boundary Values (Giá trị biên):
Min: [Minimum value]
Max: [Maximum value]
Min-1: [Below minimum]
Max+1: [Above maximum]
Special Characters & Edge Cases (Ký tự đặc biệt và trường hợp đặc biệt):
Special chars: !@#$%^&*()_+-=[]{}|;':",./<>?
SQL Injection: ' OR '1'='1
XSS: <script>alert('test')</script>
Empty/Null: [blank], null, undefined
6. Platform-Specific Quick Checks (Kiểm tra nhanh theo nền tảng)
Mobile App Checks:
- [ ] Screen rotation (portrait/landscape) (Xoay màn hình dọc/ngang)
- [ ] App background/foreground (Chuyển app background/foreground)
- [ ] Network connection (on/off/slow) (Kết nối mạng bật/tắt/chậm)
- [ ] Low battery mode (Chế độ pin yếu)
- [ ] Permission handling (Xử lý quyền truy cập)
- [ ] Push notifications (Thông báo đẩy)
- [ ] Device back button (Nút back của thiết bị)
Web Application Checks:
- [ ] Browser back/forward buttons (Nút back/forward trình duyệt)
- [ ] Multiple tabs/windows (Mở nhiều tab/cửa sổ)
- [ ] Browser refresh (F5) (Refresh trang)
- [ ] Different browsers (Chrome, Firefox, Safari, Edge)
- [ ] Zoom in/out functionality (Phóng to/thu nhỏ)
- [ ] Cookies enabled/disabled (Bật/tắt cookies)
- [ ] JavaScript enabled/disabled (Bật/tắt JavaScript)
Desktop Application Checks:
- [ ] Installation/Uninstallation (Cài đặt/Gỡ cài đặt)
- [ ] Multiple instances running (Chạy nhiều instance)
- [ ] OS compatibility (Tương thích hệ điều hành)
- [ ] Minimize/Maximize/Close (Thu nhỏ/Phóng to/Đóng)
- [ ] System tray behavior (Hoạt động system tray)
- [ ] Auto-update mechanism (Cơ chế tự động cập nhật)
7. Notes Section (Ghi chú)
Test Environment (Môi trường test):
- Environment: [Dev/Staging/Production]
- Version: [App version number]
- Date: [Test date]
- Tester: [Tester name]
Issues Found (Vấn đề phát hiện):
- [ ] Issue 1: [Description]
- [ ] Issue 2: [Description]
- [ ] Issue 3: [Description]
Additional Comments (Nhận xét thêm):
[Any additional observations or recommendations]
Ví dụ thực tế: checklist cho login feature
1. Quick Context (Bối cảnh nhanh)
- Purpose (Mục đích): Test chức năng Login cho web/mobile app
- Estimated Time (Thời gian ước tính): 5-10 phút
- Priority Level (Mức độ ưu tiên): Critical
- Prerequisites (Điều kiện tiên quyết):
- 2 test accounts (1 valid, 1 invalid)
- Access to test environment
- Email access for password reset testing
2. Critical Path Testing (Kiểm tra luồng chính)
Happy Path (Luồng chính – trường hợp thành công)
- [ ] Enter valid email + password → Login successful, redirect to dashboard
- [ ] Check “Remember me” → Close and reopen app → Still logged in
- [ ] Click “Forgot password” → Enter email → Receive reset link within 5 minutes
- [ ] Click reset link → Set new password → Login with new password successfully
Top Edge Cases (Các trường hợp biên quan trọng)
- [ ] Wrong password 3 times → Account temporarily locked for 15 minutes
- [ ] SQL injection attempt: Input
' OR '1'='1→ Show error “Invalid credentials” - [ ] Copy-paste password from password manager → Login works normally
- [ ] Login with inactive/suspended account → Show “Account suspended” message
- [ ] Multiple failed attempts from same IP → CAPTCHA appears
3. Quick Validation Checklist (Danh sách kiểm tra nhanh)
P1 – Critical (Quan trọng – PHẢI test)
- [ ] Can login with valid credentials? (Login được với thông tin đúng?)
- [ ] Password field is masked? (Mật khẩu được ẩn?)
- [ ] Login uses HTTPS? (Có dùng HTTPS?)
- [ ] Session expires after inactivity? (Session hết hạn khi không hoạt động?)
- [ ] Logout actually clears session? (Logout xóa hết session?)
P2 – Important (Cần thiết – NÊN test)
- [ ] Error messages don’t reveal if email exists? (Thông báo lỗi không tiết lộ email tồn tại?)
- [ ] Loading indicator shows during login? (Có loading khi đang login?)
- [ ] Works with browser password managers? (Hoạt động với password manager?)
- [ ] Tab order logical (email → password → button)? (Thứ tự tab hợp lý?)
- [ ] Enter key submits form? (Phím Enter submit form?)
P3 – Nice to have (Bổ sung – test khi có thời gian)
- [ ] Social login works (Google, Facebook)? (Login mạng xã hội hoạt động?)
- [ ] “Show password” toggle works? (Nút hiện/ẩn password hoạt động?)
- [ ] Login page responsive on mobile? (Trang login responsive trên mobile?)
- [ ] Accessibility – screen reader compatible? (Tương thích screen reader?)
4. Red Flags to Watch (Dấu hiệu cảnh báo cần chú ý)
Stop and Escalate if (Dừng và báo cáo ngay nếu):
- [ ] Password visible in plain text in network request
- [ ] Can access protected pages without login
- [ ] Password stored in browser local storage
- [ ] No rate limiting – unlimited login attempts allowed
- [ ] Session token in URL
- [ ] User can login with empty password
5. Quick Test Data (Dữ liệu test nhanh)
Valid Data (Dữ liệu hợp lệ):
Email: testuser@example.com
Password: Test@123456
Invalid Data (Dữ liệu không hợp lệ):
Email: invalid@test.com
Password: wrongpassword
Empty email: [leave blank]
Invalid format: notanemail
Boundary Values (Giá trị biên):
Min password: 6 chars (Test@1)
Max password: 50 chars (Test@123456789012345678901234567890123456789012345)
Max email: 254 chars
Special Characters & Edge Cases (Ký tự đặc biệt và trường hợp đặc biệt):
SQL Injection: admin' --
' OR '1'='1
'; DROP TABLE users; --
XSS: <script>alert('xss')</script>
javascript:alert('xss')
Special chars in password: !@#$%^&*()_+-=[]{}|;':",./<>?
Unicode: 用户@测试.com
Spaces: " user@test.com " (with spaces)
Case sensitivity: USER@TEST.COM vs user@test.com
6. Platform-Specific Quick Checks (Kiểm tra nhanh theo nền tảng)
Mobile App Checks:
- [ ] Biometric login (fingerprint/face) works after first login
- [ ] App stays logged in after killing app
- [ ] Login works on both WiFi and mobile data
- [ ] Keyboard type correct (email keyboard for email field)
- [ ] Auto-capitalize OFF for email field
Web Application Checks:
- [ ] Browser back after login doesn’t show login page
- [ ] Multiple tabs – login in one tab reflects in others
- [ ] Works in incognito/private mode
- [ ] Browser autofill works correctly
- [ ] Supports password managers (LastPass, 1Password)
7. Notes Section (Ghi chú)
Test Environment (Môi trường test):
- Environment: Staging
- Version: v2.1.0
- Date: 2024-01-15
- Tester: QA Team
Issues Found (Vấn đề phát hiện):
- [ ] Issue 1: No CAPTCHA after 5 failed attempts
- [ ] Issue 2: Error message reveals if email exists in system
- [ ] Issue 3: Session doesn’t expire after 30 minutes of inactivity
Additional Comments (Nhận xét thêm):
- Consider adding 2FA for enhanced security
- Password reset email sometimes delayed (>10 minutes)
- Login performance slow on 3G connection (>5 seconds)
Hướng dẫn sử dụng checklist
- Copy template này cho mỗi feature/module cần test
- Điền thông tin cụ thể vào các placeholder […]
- Tick checkbox khi hoàn thành mỗi item
- Ưu tiên test theo thứ tự: P1 → P2 → P3
- Dừng ngay và escalate nếu gặp Red Flags
- Lưu lại kết quả test trong Notes Section
Lưu ý:
- Checklist này để test nhanh, không thay thế test case chi tiết
- Điều chỉnh test checklist theo context cụ thể của dự án
- Luôn update checklist khi phát hiện case mới
- Chia sẻ với team để cùng nhau cải thiện
Template Version: 1.0
Last Updated: 2025-08-31
Created by: Better Bytes Academy
