3 phút đọcRead in English
Một run đỏ phải có nghĩa là app của bạn hỏng
Lỗi hạ tầng khi chạy test không phải là test fail. Vì sao VibeQA có sáu outcome thay vì pass và fail, tô lỗi phía mình màu tím, và chỉ chạy lại những lỗi đó.
Phần lớn công cụ test chỉ có hai màu. Test pass, hoặc có gì đó sai và run chuyển đỏ. Vấn đề là "có gì đó sai" gom những chuyện rất khác nhau: nút thanh toán của bạn hết hoạt động, test bấm vào một nút đã bị đổi tên, hoặc máy chạy test hết bộ nhớ.
Chỉ chuyện đầu tiên là tin tức về app của bạn; chuyện cuối là lỗi hạ tầng khi chạy test, không phải test fail. Nếu cả ba cùng hiện một màu đỏ, mọi người sẽ học được rằng đỏ không có nghĩa gì nhiều, và bắt đầu chạy lại cho tới khi xanh. Lỗi thật lọt qua chính bằng cách đó.
Sáu outcome
Mỗi run đã xong trong VibeQA có đúng một trong các outcome sau:
- Pass: mọi test đều pass.
- Fail: một test đã chạy và một assertion không đúng. Đây là outcome nói về app của bạn.
- Lỗi suite: test không chạy được như đã viết, ví dụ config hỏng hay suite làm đầy ổ đĩa của nó. Cần sửa test, không phải sửa app.
- Lỗi hạ tầng và lỗi model: sandbox bị crash, hết bộ nhớ, quá thời gian, hoặc nhà cung cấp model gặp lỗi. Phần này là của chúng tôi.
- Đã huỷ: có người dừng run.

Phân biệt test fail với lỗi hạ tầng khi chạy test
Outcome được quyết định từ hai thứ test runner để lại: exit code và file report.json. Không phải từ
log, và không phải từ một AI đọc output rồi đoán.
Run không có report nào là lỗi hạ tầng, vì runner chưa chạy tới bước ghi report. Run bị kill vì dùng quá nhiều bộ nhớ, hoặc chạy quá giới hạn thời gian, cũng là lỗi hạ tầng. Run kết thúc với assertion fail trong report là fail.
Vì đây là một hàm đơn giản của các input đó, cùng một run luôn ra cùng một outcome, và chúng tôi test được hàm đó như mọi thứ khác.
Cái gì được chạy lại
Chỉ hai outcome phía chúng tôi được chạy lại, và chỉ do hàng đợi làm: lỗi hạ tầng hoặc lỗi model được thêm một lần thử trong một sandbox mới. Nếu lần thử lại pass hoặc fail thật, đó là kết quả bạn thấy.
Run fail không bao giờ được chạy lại. Chạy lại một lỗi thật cho tới khi nó pass không sửa được gì; nó chỉ che đi một test flaky hoặc một lỗi lúc có lúc không. Nếu một test thật sự không ổn định, bạn có thể quarantine nó tối đa 30 ngày: test vẫn chạy và lịch sử vẫn cho thấy khi nào nó ổn lại, nhưng riêng các lần fail của nó không còn làm fail cả run.
Vì sao lỗi của chúng tôi màu tím
Trong dashboard, lỗi hạ tầng và lỗi model có màu tím, không bao giờ màu đỏ. Màu đỏ dành cho một test đã tìm ra vấn đề. Mỗi trạng thái còn có icon và chữ đi kèm, nên ý nghĩa không bao giờ phụ thuộc vào việc phân biệt màu.

Khi thấy màu đỏ trong VibeQA, hãy đi xem app của bạn. Khi thấy màu tím, vấn đề là của chúng tôi, và thường thì hàng đợi đã thử lại rồi.