Checklist kiểm thử phần mềm trước khi launch là thứ phân biệt giữa go-live suôn sẻ và go-live thảm họa. Sau nhiều năm triển khai dự án cho SME Việt Nam, chúng tôi đã tổng hợp danh sách 50 điểm kiểm tra — chia thành 8 category — mà mọi website hoặc app PHẢI pass trước khi đến tay người dùng. Không check = không launch.
🎁 Lead magnet: Tải miễn phí QA Testing Checklist (Google Sheet) — bao gồm đầy đủ 50 điểm kiểm tra, status tracking, assignee, và notes. Sẵn sàng dùng ngay cho dự án của bạn.
Tại sao cần checklist trước khi launch?
Launch không checklist = Russian Roulette
| Vấn đề thường gặp khi launch không test kỹ | Hậu quả |
|---|---|
| Form đăng ký không gửi email xác nhận | Mất 100% lead đầu ngày đầu tiên |
| Trang thanh toán lỗi trên Safari | 25% khách hàng iPhone không mua được |
| Hình ảnh nặng, page load 8 giây | 53% user mobile bỏ đi (Google data) |
| SSL certificate hết hạn | Browser hiện “Not Secure” → mất trust |
| Lỗi SEO: noindex vẫn bật trên production | Google không index → 0 traffic tự nhiên |
Câu chuyện thực tế
Một chuỗi F&B tại TP.HCM launch website đặt hàng online. Không test kỹ trước launch. Kết quả ngày đầu tiên: 230 đơn hàng vào hệ thống nhưng tất cả đều thiếu địa chỉ giao hàng (field address không validate required). Team phải gọi điện từng khách hỏi địa chỉ — chi phí nhân sự phát sinh + trải nghiệm khách hàng tệ. Tất cả chỉ vì thiếu 1 dòng validation.
Checklist 50 điểm: 8 Category
Category 1: Functional Testing (12 điểm)
| # | Điểm kiểm tra | Priority | Ghi chú |
|---|---|---|---|
| 1 | Tất cả link hoạt động (không có broken link) | P0 | Dùng tool Screaming Frog hoặc ahrefs |
| 2 | Form submit thành công và gửi data đúng | P0 | Test mọi form: contact, đăng ký, đặt hàng |
| 3 | Validation hoạt động đúng (email, phone, required fields) | P0 | Test empty, invalid, edge cases |
| 4 | Thanh toán hoạt động end-to-end | P0 | Test với thẻ test của payment gateway |
| 5 | Đăng ký / Đăng nhập / Quên mật khẩu hoạt động | P0 | Bao gồm social login (Google, Facebook) |
| 6 | Email notification gửi đúng nội dung, đúng người | P1 | Check spam folder, email content, links |
| 7 | Search hoạt động và trả kết quả đúng | P1 | Test keyword có dấu, không dấu, tiếng Việt |
| 8 | Phân trang (pagination) hoạt động | P2 | Page 1, page cuối, page không tồn tại |
| 9 | Filter / Sort hoạt động đúng | P2 | Kết hợp nhiều filter cùng lúc |
| 10 | Upload file hoạt động (đúng format, đúng size) | P1 | Test file quá lớn, sai format, file trùng tên |
| 11 | Download file hoạt động | P2 | PDF, Excel, hình ảnh |
| 12 | Logout hoạt động, session bị xóa | P1 | Sau logout, back button không quay lại được |
Category 2: Cross-Browser Testing (6 điểm)
| # | Điểm kiểm tra | Priority | Ghi chú |
|---|---|---|---|
| 13 | Chrome (desktop + mobile) | P0 | Browser phổ biến nhất Việt Nam (~65% market share) |
| 14 | Safari (desktop + iOS) | P0 | 25% user Việt Nam dùng iPhone |
| 15 | Firefox (desktop) | P2 | ~5% market share |
| 16 | Edge (desktop) | P2 | Mặc định trên Windows |
| 17 | Samsung Internet (mobile) | P1 | Phổ biến trên Samsung Android |
| 18 | Zalo In-app Browser | P1 | Nhiều user click link từ Zalo chat |
Tip: Không cần mua tất cả thiết bị. Dùng BrowserStack hoặc LambdaTest để test trên 3,000+ device/browser combinations. Chi phí từ $29/tháng.
Category 3: Responsive Testing (5 điểm)
| # | Điểm kiểm tra | Priority | Ghi chú |
|---|---|---|---|
| 19 | Mobile 375px (iPhone SE — kích thước nhỏ nhất phổ biến) | P0 | Text có bị tràn không? Button có bấm được không? |
| 20 | Mobile 390px (iPhone 14/15 — phổ biến nhất) | P0 | Layout chính |
| 21 | Tablet 768px (iPad) | P1 | Landscape + Portrait |
| 22 | Desktop 1280px (laptop phổ biến) | P0 | Layout desktop chuẩn |
| 23 | Desktop 1920px (full HD) | P1 | Content có bị stretch quá không? |
Focus Việt Nam: 70% traffic từ mobile. Test mobile TRƯỚC desktop.
Category 4: Performance Testing (7 điểm)
| # | Điểm kiểm tra | Priority | Target | Tool |
|---|---|---|---|---|
| 24 | PageSpeed Insights — Mobile score | P0 | ≥ 80 | Google PageSpeed |
| 25 | PageSpeed Insights — Desktop score | P1 | ≥ 90 | Google PageSpeed |
| 26 | LCP (Largest Contentful Paint) | P0 | ≤ 2.5s | Lighthouse |
| 27 | CLS (Cumulative Layout Shift) | P0 | ≤ 0.1 | Lighthouse |
| 28 | INP (Interaction to Next Paint) | P1 | ≤ 200ms | Lighthouse |
| 29 | Hình ảnh tối ưu (WebP/AVIF, lazy load) | P1 | Max 200KB/ảnh | ImageOptim |
| 30 | Tổng page weight | P1 | ≤ 3MB | DevTools Network tab |
Category 5: SEO Testing (8 điểm)
| # | Điểm kiểm tra | Priority | Ghi chú |
|---|---|---|---|
| 31 | Title tag unique và ≤ 60 ký tự cho mỗi trang | P0 | Không duplicate giữa các trang |
| 32 | Meta description ≤ 155 ký tự cho mỗi trang | P0 | Chứa keyword chính |
| 33 | H1 tag — mỗi trang chỉ có 1 H1 | P1 | Chứa keyword chính |
| 34 | Alt text cho tất cả hình ảnh | P1 | Mô tả nội dung hình |
| 35 | robots.txt và sitemap.xml | P0 | robots.txt không block trang quan trọng |
| 36 | Canonical URL đúng | P1 | Tránh duplicate content |
| 37 | Schema markup (Organization, BreadcrumbList) | P2 | Test bằng Google Rich Results Test |
| 38 | noindex tag ĐÃ BỎ trên production | P0 | Sai lầm phổ biến nhất — quên bỏ noindex từ staging |
Category 6: Security Testing (6 điểm)
| # | Điểm kiểm tra | Priority | Ghi chú |
|---|---|---|---|
| 39 | SSL certificate valid và auto-renew | P0 | Test bằng ssllabs.com |
| 40 | HTTP → HTTPS redirect | P0 | Tất cả URL phải redirect về HTTPS |
| 41 | SQL Injection test | P0 | Thử nhập ' OR 1=1 -- vào form |
| 42 | XSS test | P0 | Thử nhập <script>alert('XSS')</script> |
| 43 | CORS cấu hình đúng | P1 | API chỉ accept request từ domain mình |
| 44 | Rate limiting cho login/API | P1 | Tránh brute force attack |
Category 7: Content & UX Testing (4 điểm)
| # | Điểm kiểm tra | Priority | Ghi chú |
|---|---|---|---|
| 45 | Không có placeholder content (“Lorem ipsum”) | P0 | Scan toàn bộ trang |
| 46 | Số điện thoại, email, địa chỉ chính xác | P0 | Click-to-call hoạt động trên mobile |
| 47 | Logo link về trang chủ | P1 | UX convention chuẩn |
| 48 | 404 page có thiết kế custom (không phải default) | P2 | Có link về trang chủ và search |
Category 8: Infrastructure & Monitoring (2 điểm)
| # | Điểm kiểm tra | Priority | Ghi chú |
|---|---|---|---|
| 49 | Analytics tracking hoạt động (GA4, GTM) | P0 | Check real-time report sau khi setup |
| 50 | Uptime monitoring setup | P1 | UptimeRobot (free), Pingdom, Better Uptime |
Quy trình launch với checklist
Trước launch 2 tuần: QA Sprint
- QA Engineer chạy qua toàn bộ 50 điểm
- Log bug vào tool tracking (Linear, GitHub Issues)
- Developer fix P0 và P1 bugs
- Re-test sau khi fix
Trước launch 3 ngày: Final Check
- Chạy lại toàn bộ P0 items
- Load test với lượng traffic dự kiến ngày đầu
- Backup database production
- Prepare rollback plan (nếu cần quay lại version cũ)
Ngày launch: Go/No-Go Meeting
| Criteria | Status cần đạt |
|---|---|
| P0 bugs open | 0 |
| P1 bugs open | ≤ 2 (có workaround) |
| Performance score | ≥ 80 mobile |
| SSL valid | ✅ |
| Analytics tracking | ✅ |
| Backup & rollback plan | ✅ |
Nếu tất cả pass → GO. Nếu có P0 bug hoặc ≥3 P1 → NO-GO, delay launch để fix.
Sau launch 48 giờ: Monitoring
- Monitor error rate (tăng đột ngột = có bug mới)
- Monitor response time (chậm = infrastructure issue)
- Check conversion rate (thấp bất thường = UX bug)
- Check email delivery rate (bounced = config sai)
- Collect user feedback (qua Hotjar, Zalo, chat)
Template Bug Report
Khi phát hiện bug, report đúng format để dev fix nhanh:
## Bug Report
**Title**: [Mô tả ngắn gọn]
**Severity**: P0 / P1 / P2 / P3
**Environment**: Chrome 120 / iPhone 15 / iOS 17.2
**URL**: https://example.com/checkout
### Steps to Reproduce
1. Truy cập trang checkout
2. Chọn phương thức thanh toán "Chuyển khoản"
3. Nhấn "Xác nhận đơn hàng"
### Expected Result
Hiển thị thông tin chuyển khoản (số tài khoản, số tiền)
### Actual Result
Trang trắng, console error: "TypeError: Cannot read property 'bankAccount' of undefined"
### Screenshot/Video
[Đính kèm]
### Additional Notes
Chỉ xảy ra với phương thức "Chuyển khoản",
VNPay và MoMo hoạt động bình thường.
Tool hỗ trợ QA Testing
| Category | Tool | Chi phí | Ghi chú |
|---|---|---|---|
| Broken Link | Screaming Frog | Free (≤500 URL) | Crawler mạnh nhất |
| Cross-browser | BrowserStack | $29/tháng | 3,000+ devices |
| Performance | PageSpeed Insights | Free | Google official |
| SEO | Ahrefs Webmaster | Free | Site audit cơ bản |
| Security | OWASP ZAP | Free | Open-source scanner |
| Uptime | UptimeRobot | Free (50 monitors) | Alert qua email/Slack |
| Visual regression | Percy | Free tier | So sánh screenshot |
| Analytics | GA4 Debugger | Free (Chrome ext) | Debug tracking |
FAQ — Câu hỏi thường gặp
1. 50 điểm quá nhiều — tối thiểu cần check bao nhiêu?
Focus vào 18 điểm P0 (đánh dấu P0 trong checklist). Đây là những điểm mà nếu fail = không launch được. P1 có thể accept với workaround. P2 có thể fix sau launch.
2. Ai nên chịu trách nhiệm chạy checklist?
QA Engineer nếu có. Nếu không có QA, PM hoặc developer senior chạy. Quan trọng: người test KHÔNG phải là người code feature đó — vì developer có bias, thường test theo happy path.
3. Checklist này dùng được cho cả app mobile không?
Được, nhưng app mobile cần thêm: test trên cả iOS và Android, test khi mất kết nối internet (offline mode), test push notification, test deep linking, và test trên nhiều kích thước màn hình hơn (từ iPhone SE đến iPad Pro).
Kết luận
50 điểm checklist kiểm thử này là kết tinh từ hàng chục dự án website/app mà Trinh Digital đã triển khai. Không có gì fancy — chỉ là những điểm đơn giản nhưng dễ quên nhất, và khi quên thì hậu quả nghiêm trọng nhất.
Nếu bạn cần hỗ trợ kiểm thử trước khi launch, hoặc muốn audit lại website/app đang chạy, hãy liên hệ Trinh Digital — chúng tôi cung cấp dịch vụ QA Testing chuyên nghiệp cho SME, từ manual testing đến automated testing.