QA vào cuộc từ lúc refine ticket, không phải khi dev báo "code xong". Ở buổi refine, QA là người hỏi các câu làm lộ yêu cầu thiếu: dữ liệu rỗng thì hiển thị gì, user không có quyền thì thấy gì, gọi lại lần hai có bị trùng đơn không. Sửa yêu cầu ở giai đoạn này rẻ hơn nhiều so với sửa khi đã code.
Dòng chảy thực tế trong sprint:
1. Refine: QA đọc acceptance criteria, đề xuất test scenario, chốt case biên.
2. Trong lúc dev code: QA chuẩn bị test case và dữ liệu test, dev viết unit/integration test theo criteria đó.
3. Sau khi merge lên staging: QA test chức năng + regression vùng liên quan.
4. Trước release: chạy bộ smoke, chốt danh sách bug còn treo.
Definition of Done là danh sách chung của cả nhóm, ticket không đạt thì không tính là xong. Nội dung thường thấy: đạt hết acceptance criteria · có test tự động cho luồng chính · code review đã duyệt · CI xanh · đã deploy được lên staging · QA đã kiểm và không còn bug blocker/critical · tài liệu hoặc changelog đã cập nhật nếu có thay đổi API.
Điểm mấu chốt khi trả lời phỏng vấn: DoD là cam kết của cả nhóm, không phải checklist riêng của QA — dev không được đẩy hết phần kiểm tra sang QA rồi coi như xong việc.