- Phân biệt shift-left và shift-right
- Dựng pipeline CI chạy kiểm thử tự động
- Quản lý dữ liệu và môi trường kiểm thử
Kiểm thử hiện đại là một vòng phản hồi liên tục, được tự động hoá trong CI/CD và kéo dài đến cả sau khi phát hành.
Shift-left: kiểm thử sớm hơn
Chi phí sửa lỗi càng về sau càng cao, nên shift-left đưa hoạt động chất lượng lên sớm: cùng rà soát yêu cầu và tiêu chí chấp nhận, viết kiểm thử cùng lúc với mã, review mã, phân tích tĩnh (linter), quét bảo mật ngay trong PR. Tư duy cả nhóm chịu trách nhiệm chất lượng (whole-team approach) được ISTQB CTFL 4.0 nhấn mạnh: kiểm thử là hoạt động của mọi thành viên, không chỉ của tester.
CI/CD: kiểm thử chạy tự động mỗi lần thay đổi
Ví dụ quy trình GitHub Actions chạy kiểm thử Node.js và Playwright cho mỗi pull request:
name: ci
on: [pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with: { node-version: 22 }
- run: npm ci
- run: npx vitest run
- run: npx playwright install --with-deps chromium
- run: npx playwright test
- uses: actions/upload-artifact@v4
if: failure()
with: { name: report, path: playwright-report/ }Đặt cổng chất lượng (quality gate): PR chỉ được gộp khi kiểm thử đơn vị, API và E2E trọng yếu đều xanh. Chạy kiểm thử nhanh trước, kiểm thử chậm sau, và chạy song song để pipeline vài phút thay vì vài chục phút.
Shift-right: kiểm thử sau khi phát hành
Môi trường thật luôn có thứ mà môi trường thử không có. Shift-right gồm: giám sát và cảnh báo, observability (log, metric, trace), kiểm thử tổng hợp (synthetic monitoring) chạy luồng chính định kỳ trên production, phát hành dần (canary, feature flag), thử nghiệm A/B và chuẩn bị sẵn quy trình hoàn tác (rollback). Lỗi gặp trên production nên được chuyển thành kiểm thử hồi quy.
Shift-left và shift-right không loại trừ nhau: hãy xem chúng như hai đầu của một vòng phản hồi liên tục giữa phát triển, kiểm thử và vận hành.
Dữ liệu kiểm thử và môi trường
Dùng dữ liệu tổng hợp hoặc đã ẩn danh, không sao chép dữ liệu cá nhân thật vào môi trường thử. Dùng container (Docker/Testcontainers) để dựng CSDL, hàng đợi sạch cho mỗi lần chạy, giúp kiểm thử lặp lại được và độc lập.
- Đặt dự án kiểm thử của bạn lên GitHub và thêm workflow CI như ví dụ.
- Liệt kê 3 luồng của một website cần synthetic monitoring và tần suất chạy.
- Viết quy tắc quality gate cho nhóm của bạn (những kiểm thử nào bắt buộc xanh).
Bạn đã học shift-left, shift-right, cách tự động hoá kiểm thử trong CI, quality gate, observability và quản lý dữ liệu kiểm thử.

