Saga, công cụ đưa trạng thái vào kiểm thử
Đưa trạng thái vào từ phía máy chủ để QA và kiểm thử tự động nhảy thẳng tới bất kỳ bước nào của một luồng xác minh dài, rút thời gian chuẩn bị kiểm thử hồi quy từ tối đa 20 phút xuống dưới 1 phút.
- Vai trò
- Senior Frontend Engineer
- Thời gian
- 2025–nay
- Công nghệ
- TypeScript · Playwright · BFF · Test database
Vấn đề
Để kiểm tra một lỗi ở bước 5 của luồng KYC, trước hết bạn phải điền thông tin cá nhân hợp lệ, tải lên giấy tờ tùy thân và vượt qua bước kiểm tra liveness từ bước 1 đến bước 4. Lần nào cũng vậy, cho mỗi pull request và mỗi lần chạy tự động.
Cách tiếp cận
Saga cho phép người kiểm thử hoặc một script mở ứng dụng ở đúng trạng thái họ cần.
- Một script Playwright hoặc kỹ sư QA tải trang với một token kiểm thử an toàn, ví dụ
?state=step_4_ready. - Frontend nhận ra token khi hydration và chuyển nó trong header tới BFF.
- BFF kiểm tra môi trường chắc chắn không phải production, rồi chuẩn bị phiên của người dùng trong cơ sở dữ liệu kiểm thử: bước 1 đến 3 đã hoàn tất, con trỏ hiện tại ở bước 4.
- BFF trả về một token phiên thật và giao diện hiển thị bước 4 ngay lập tức.
Tôi chọn đưa trạng thái vào từ máy chủ thay vì giả lập localStorage phía client. Ứng dụng hiện đại xác thực phiên ở backend, nên giả lập chỉ ở client sẽ dần lệch khỏi thực tế và tạo ra những bài kiểm thử đạt ở đây nhưng lỗi trên production.
Kết quả
Thời gian chuẩn bị kiểm thử hồi quy giảm từ 10–20 phút mỗi vòng xuống dưới một phút. Với hàng chục lần chạy pull request và bộ kiểm thử tự động mỗi tuần, điều đó trả lại hàng trăm giờ kỹ thuật mỗi quý.