Trương Tuấn AnhTuna / truongtuananh
Tất cả bài viết
ngày ghi
phút đọc
7
nguồn dẫn
7

Bộ kiểm báo đạt mà chưa tải được trang nào

Bộ kiểm tự động tải được 0/8 trang mà vẫn báo đạt. Quét trợ năng cũng 0 trang. Cách tôi sửa để nó dừng hẳn khi thiếu dữ liệu, và phép thử bắt buộc trước khi tin một bộ kiểm mới.

Chủ đề:
  • cổng kiểm
  • vận hành
  • ai có người duyệt

Ngày 18/08/2026, tôi đưa website cửa chống cháy cho Codex soát lại toàn bộ. Kết luận số 5 là dòng tôi nhớ nhất: cổng kiểm bố cục đang cho đạt giả. Bài này kể lại lỗi đó, cách sửa, và một kỷ luật tôi đã có ở dự án khác mà quên áp dụng.

Cái nhật ký nhìn rất yên tâm

Bộ kiểm bố cục mở trình duyệt thật bằng Playwright, tải từng trang ở 5 bề rộng, đo tràn ngang, ảnh méo, nút chat che nút bấm, rồi chạy bộ quét trợ năng. Kết quả lần soát đó:

Bề rộngTrang tải được
320px0/8
390px0/8
768px0/8
1440px0/8
1560px0/8
quét trợ năng0 trang

Sau bảng đó, bộ kiểm vẫn in "không tràn ngang, không ảnh méo" rồi kết thúc bằng trạng thái đạt. Lý do rất đơn giản. Lỗi tải trang được đẩy vào danh sách cảnh báo, không vào danh sách lỗi. Cuối cùng nó chỉ đếm danh sách lỗi. Danh sách rỗng thì xanh. Thiếu thư viện trình duyệt thì cũng báo đạt nốt.

Codex chấm mức tin cậy về trợ năng 3/10, lý do là bộ quét chạy 0 trang thì con dấu đạt rỗng nghĩa.

Điều làm tôi khó chịu nằm ngoài bản thân cái lỗi: tôi đã coi dấu tích xanh là bằng chứng, trong khi Codex ghi rõ rằng bằng chứng kiểm thử hợp lệ vẫn đang thiếu. Bộ kiểm chỉ trả lời câu hỏi "có lỗi nào ghi vào danh sách lỗi không". Tôi là người hỏi sai câu.

Sửa thành thiếu dữ liệu thì phải đỏ

Codex đặt việc đầu tiên là sửa độ tin cậy của quy trình, trước khi trau chuốt giao diện. Kèm sáu yêu cầu cho cổng kiểm, từ "trang không trả về mã thành công là lỗi chặn" tới "thiếu thư viện trình duyệt thì không được coi là đạt". Điều kiện thoát ghi một câu: bài kiểm phải thực sự chạy.

Claude Code viết bản sửa. Bộ kiểm bố cục giờ chặn ở các điểm sau:

  • Trang gốc chết thì dừng ngay. Trước khi mở trình duyệt, bộ kiểm gọi thử trang gốc với hạn chờ 5 giây. Trang gốc im thì nó dừng luôn, kèm hướng dẫn khởi động máy chủ.
  • Trang trả mã lỗi là lỗi chặn. Mức chặn thay cho mức cảnh báo, kèm mã trả về trong nhật ký.
  • Cổng đếm. Số lượt đo phải bằng số trang nhân số bề rộng, lệch là lỗi "BỘ KIỂM KHÔNG ĐỦ DỮ LIỆU". Số trang được quét trợ năng phải bằng số trang trong danh sách.
  • Thiếu thư viện thì dừng với mã lỗi. Thông báo in đúng chữ "không phải bỏ qua".
  • Máy chạy kiểm làm đủ việc trước khi kiểm. Cài trình duyệt, dựng máy chủ, gọi thử tối đa 30 lần chờ máy chủ trả lời, rồi mới chạy cổng.
  • Chụp ảnh cho người xem. Các trang chính ở 390, 768 và 1440 được lưu lại thành ảnh.

Số cuối phiên 18/08: bố cục 70/70 lượt đo thật, tức 14 trang nhân 5 bề rộng, 0 lỗi. Danh sách hiện đã là 15 trang. Bộ quét trợ năng chạy 14/14 trang ở bề rộng 390, 0 vi phạm từ mức nghiêm trọng trở lên. Ảnh chụp 4 trang nhân 3 bề rộng, tôi tự mở lên nhìn trong phiên.

Tiêm lỗi cho đỏ rồi mới tin

Ở bộ khung ERP bot, tôi đã viết từ trước vào tài liệu tổng quan một kỷ luật: bộ kiểm mới phải được tiêm lỗi cho đỏ rồi mới tin. Bộ đó có 153 bài kiểm logic thuần cộng 6 bộ kiểm cấu trúc, gom trong một lệnh, đã bắt hơn 80 lỗi thật trong quá trình xây, riêng lỗi nối sai mô đun là 51. Kỷ luật có sẵn rồi, nhưng cổng bố cục bên site cửa chống cháy là lần tôi quên áp dụng nó. Một bộ kiểm chưa từng đỏ là một bộ kiểm chưa được chứng minh là có chạy.

Phép thử rẻ nhất chạy bằng thứ đã có. Tắt máy chủ, chạy lại, phải đỏ. Gỡ thư viện trình duyệt, phải đỏ. Thêm một trang không tồn tại vào danh sách, phải đỏ vì trang đó trả mã lỗi và cổng đếm lệch. Bỏ bớt trang thì vô nghĩa, vì số kỳ vọng tính từ chính danh sách.

Dừng hẳn khi thiếu dữ liệu chống được kiểu đạt giả "không đo gì". Kiểu thứ hai, "đo thật nhưng thiếu thứ quan trọng", chỉ lộ ra khi bị đau. Bộ kiểm này có hai vết như vậy, ghi ngay trong chú thích:

  • Dải tóm tắt dính đáy ở trang báo giá tràn từ -20 tới 410 trên bề rộng 390 suốt một vòng mà cổng vẫn xanh. Lúc đo nó còn đang ẩn, bề rộng 0, nên bị bỏ qua. Giờ với trang nhiều bước, bộ kiểm diễn vài thao tác rồi mới đo.
  • Cổng từng xanh trong khi 6 khối nội dung thật đứng ở mức trong suốt hoàn toàn, vì hiệu ứng hiện dần gắn vào phần tử nằm trong dải cuộn ngang không bao giờ được kích hoạt. Nhật ký im, bố cục gọn, ảnh đúng tỷ lệ, còn khách thì mất hẳn nội dung. Ngày 21/08/2026 tôi thêm luật "nội dung vô hình": có chữ mà không nhìn thấy là lỗi.

Chiều ngược lại cũng phải giữ. Đỏ giả giết cổng kiểm nhanh ngang xanh giả. Để tránh đỏ giả, tôi bỏ nhóm quy tắc khuyến nghị vì nó gắn cờ cả lựa chọn thiết kế hợp lệ. Vi phạm dưới mức nghiêm trọng chỉ vào cảnh báo, bản mới vẫn lên được. Còn bộ quét trợ năng chỉ chạy ở bề rộng 390 là chuyện thời gian: quy tắc của nó gần như giữ nguyên theo bề rộng, chạy 5 lần chỉ tốn 5 lần thời gian cho cùng một kết quả. Một cổng hay báo động giả là một cổng sắp bị tắt.

Bốn cổng và cổng thứ năm

Trước mỗi lần đưa bản mới lên, site chạy bốn cổng. Cổng nào đỏ thì dừng tại đó.

CổngViệcĐiều kiện
Kiểm sitelink hỏng, ảnh thiếu, chuyển động chạy vô hạnngoại tuyến
Kiểm nội dungngôn ngữ nội bộ, chuỗi ghép hỏng, khối sai loại sản phẩmngoại tuyến
Kiểm tiền tốđường dẫn sót tiền tố khi site nằm trong thư mục conngoại tuyến
Kiểm bố cục15 trang nhân 5 bề rộng, cộng bộ quét trợ năngcần máy chủ đang chạy

Ba cổng ngoại tuyến chạy cả trong bước đóng gói. Nội dung sai thì gói hỏng. Đó là lưới cuối cùng.

Cổng thứ năm chạy ngoài dây chuyền tự động: nó so ảnh chụp hiện tại với bộ ảnh mẫu. Nó đỏ khi giao diện đổi, đúng việc của nó. Tôi chỉ chốt bộ ảnh mẫu mới khi đã tự mắt thấy bản mới là bản muốn giữ. Lý do tách riêng: bộ ảnh mẫu sẽ vỡ ở mọi thay đổi thiết kế hợp lệ rồi bị tắt đi, còn các luật cứng thì phải đứng nguyên.

Điều tôi rút ra

  • Bằng chứng là số lượt đo khớp số kỳ vọng, và ảnh chụp có người mở ra xem. Dòng chữ báo đạt thì không.
  • Bộ kiểm mới phải được tiêm lỗi cho đỏ rồi mới tin. Tắt máy chủ, gỡ thư viện, thêm một trang sai: ba phép thử làm được ngay, khỏi viết thêm gì.
  • Đỏ giả và xanh giả cùng một kết cục: cổng bị tắt. Cái gì hay báo động thì tách khỏi dây chuyền tự động, như cổng so ảnh.
  • Máy báo đạt xong thì tới lượt người duyệt. Tôi dựng hệ thống với Claude Code và Codex, và dấu tích cuối cùng là mắt tôi.

Nếu bộ kiểm của công ty bạn cũng đang xanh đều mà chưa ai thử làm nó đỏ, kể tôi nghe bối cảnh.