Chọn theo rủi ro, không chọn theo cảm tính hay theo thứ tự bảng test case.
Thứ tự ưu tiên:
1. Luồng sinh tiền và luồng chặn người dùng: đăng nhập, thanh toán, đặt hàng, gửi thông báo giao dịch. Hỏng ở đây là dừng kinh doanh, bất kể release có động vào hay không.
2. Vùng bị thay đổi trong release này: đọc diff, liệt kê module bị chạm và module gọi vào nó. Phần này gồm cả các endpoint dùng chung một service vừa sửa.
3. Vùng từng hỏng nhiều lần: tra lịch sử bug, chỗ nào tái phát nhiều thì test lại chỗ đó.
4. Nơi giao nhau với thay đổi hạ tầng: đổi phiên bản thư viện, đổi cấu hình, có migration DB.
Cách làm cho lần sau đỡ căng: gắn nhãn cho test (@smoke, @critical) để chạy được từng nhóm; giữ một bộ smoke ngắn (5-10 phút) luôn chạy trước mỗi release; đẩy phần regression đầy đủ vào job chạy hằng đêm thay vì cố nhét vào cửa sổ release.
Cần nói thêm hai điều khi trả lời: kiểm tra sau khi deploy cũng là một phần của regression — chạy smoke trên production ngay sau khi lên, theo dõi tỉ lệ lỗi và độ trễ vài chục phút đầu. Và phải có đường lùi: biết cách rollback nhanh thì việc cắt bớt phạm vi test trước release mới là quyết định chấp nhận được.