Quy trình QA của Nexa: từ test case đến báo cáo phát hành
Kiểm thử không phải bước cuối dự án. Đây là cách đội QA của chúng tôi tham gia từ ngày đặc tả và vì sao mỗi bản phát hành đều kèm một báo cáo một trang.
Khi khách hỏi "QA bắt đầu từ lúc nào", câu trả lời của chúng tôi luôn là: từ buổi đặc tả đầu tiên. Lỗi phát hiện ở giai đoạn yêu cầu tốn vài phút để sửa trên giấy. Cùng lỗi đó phát hiện sau go-live có thể tốn vài tuần và một cuộc gọi không vui với khách hàng.
Bốn lớp kiểm thử
Mỗi dự án ở Nexa Labs có bốn lớp kiểm thử, với tỷ lệ được thống nhất ngay trong kế hoạch kiểm thử:
- Unit test do lập trình viên viết cùng tính năng, mục tiêu bao phủ 70% phần nghiệp vụ.
- Kiểm thử API tự động cho mọi endpoint, chạy mỗi lần đẩy mã lên nhánh chính.
- Kiểm thử giao diện bằng Playwright cho các luồng quan trọng: đăng nhập, đặt hàng, thanh toán, báo cáo.
- Kiểm thử thủ công theo kịch bản cho phần khó tự động hoá và cho trải nghiệm người dùng.
Chúng tôi không đặt mục tiêu tự động hoá 100%. Kịch bản thay đổi liên tục trong giai đoạn đầu thì kiểm thử thủ công rẻ hơn. Khi luồng đã ổn định, QA chuyển nó sang tự động.
Test case viết từ đặc tả, không từ phần mềm
Nhiều đội viết test case sau khi tính năng đã xong, nên vô tình kiểm thử theo cách phần mềm đang chạy chứ không theo cách nó phải chạy. QA của chúng tôi viết kịch bản song song với đặc tả và gửi khách duyệt. Khách Nhật đặc biệt thích bước này vì nó biến yêu cầu thành danh sách kiểm tra cụ thể.
Một test case tốt là thứ khách hàng đọc hiểu được mà không cần hỏi lại lập trình viên.
Kiểm thử tải trước mỗi đợt phát hành lớn
Với hệ thống có lượng truy cập cao như cổng đặt hàng hay ứng dụng tài xế, chúng tôi chạy kiểm thử tải bằng k6 trên môi trường giống production. Ngưỡng chấp nhận được ghi trong hợp đồng, ví dụ p95 dưới 300ms với 2.000 người dùng đồng thời.
Báo cáo phát hành một trang
Mỗi bản phát hành đi kèm một báo cáo một trang gửi khách: số kịch bản đã chạy, số lỗi tìm thấy theo mức độ, lỗi còn mở và lý do chấp nhận, kết quả kiểm thử tải. Báo cáo ngắn để người quản lý đọc trong hai phút, chi tiết đính kèm cho ai cần.
Sau ba năm áp dụng, tỷ lệ lỗi nghiêm trọng phát hiện sau go-live ở các dự án của chúng tôi giảm từ 4,1 xuống 0,6 lỗi trên mỗi đợt phát hành. Con số đó là lý do QA luôn có mặt trong buổi kick-off.