Tầng 2: Integration/security/performance test trong CI/CD
🎯 Mục tiêu học: hiểu tầng chạy trong pipeline CI/CD (vd sau khi push code hoặc mở pull request) — nơi chạy các loại test tốn thời gian hơn Tầng 1 nhưng vẫn cần chạy trước khi merge/deploy.
Đặc điểm Tầng 2
Chạy trên hệ thống CI (GitHub Actions, GitLab CI, Jenkins...), có môi trường đầy đủ hơn máy dev — kết nối được DB test, gọi được các service phụ thuộc (thật hoặc mock/sandbox theo Mục 3.4). Ở tầng này chạy: integration test (Chương 3), quét bảo mật tự động (dựa theo checklist Chương 4), và 1 phần nhỏ performance test (không phải full load test, chỉ đủ để phát hiện suy giảm hiệu năng rõ rệt).
# Ví dụ cấu trúc pipeline CI đơn giản (dạng YAML rút gọn)
jobs:
test:
steps:
- run: pytest tests/unit tests/contract # nhắc lại Tầng 1 cho chắc
- run: pytest tests/integration # Chương 3
- run: security-scan --checklist owasp-top10 # Chương 4
- run: k6 run smoke-performance.js # bản rút gọn của Chương 5
# Chỉ merge/deploy được nếu TOÀN BỘ bước trên passNguyên tắc quan trọng
Không lặp lại y hệt Tầng 1 — Tầng 2 nên tập trung vào những gì Tầng 1 không làm được (cần môi trường thật), tránh lãng phí thời gian chạy lại.
Chạy song song khi có thể — integration, security, performance thường độc lập nhau, chạy song song rút ngắn đáng kể thời gian chờ merge.
Test performance ở đây chỉ là "smoke" — full load/stress test (Mục 5.2) thường tốn thời gian và tài nguyên, không phù hợp chạy mỗi lần có pull request.
📌 Ghi nhớ
Tầng 2 là "cổng chặn" chính trước khi code vào production — nguyên tắc vàng: không merge/deploy nếu bất kỳ bước nào ở Tầng 2 fail, dù áp lực thời gian release lớn tới đâu.
📖 Thuật ngữ Anh–Việt (mục này)
Đề thi dùng thuật ngữ tiếng Anh — nhớ đúng cụm bên trái. Bấm 🔊 để nghe từng từ, hoặc "Đọc tất cả" để nghe lần lượt Anh → (vài giây) → Việt.
| Thuật ngữ (EN) | Nghĩa & ghi nhớ nhanh |
|---|---|
| CI/CD pipeline | Chuỗi bước tự động chạy khi có thay đổi code, gồm build/test/deploy |
| Smoke test | Bộ test rút gọn, chạy nhanh để xác nhận chức năng cơ bản không bị hỏng |
| Merge gate | Điều kiện bắt buộc phải thoả trước khi code được merge vào nhánh chính |
📎 Nội dung do maiqai.com biên soạn dựa trên mô hình 3 tầng test phổ biến trong thực hành CI/CD, không sao chép nguyên văn từ nguồn nào.