JiTTests của Meta dùng LLM để phát hiện lỗi trước khi code được hợp nhất
Meta đã triển khai Just-in-Time Tests (JiTTests) vào môi trường sản xuất, sử dụng các mô hình ngôn ngữ lớn (LLM) để tạo ra các bài kiểm tra có thể thực thi, giúp phát hiện 74 lỗi nghiêm trọng về quyền riêng tư trong đầu năm 2026.
Được dịch tự động từ bản gốc tiếng Anh.
Meta đã chuyển Just-in-Time Tests (JiTTests) từ giai đoạn nghiên cứu sang hạ tầng sản xuất hoàn chỉnh. Hệ thống này sử dụng các mô hình ngôn ngữ lớn để tạo ra các bài kiểm tra có thể thực thi nhằm xác định lỗi trong các thay đổi mã nguồn trước khi chúng được hợp nhất. Việc triển khai này nhằm mục đích phát hiện sớm các lỗi hồi quy nghiêm trọng đồng thời giảm bớt gánh nặng xem xét thủ công cho các kỹ sư.
Điều gì đã xảy ra
Trong năm qua, các nhà nghiên cứu của Meta đã khám phá việc sử dụng các mô hình ngôn ngữ lớn để bắt lỗi phần mềm theo thời gian thực. Họ giới thiệu JiTTests như một phương pháp tiếp cận mới lạ, trong đó AI tạo ra các bài kiểm tra để phát hiện những vấn đề mà phương pháp thử nghiệm truyền thống có thể bỏ sót. Trong năm tháng kể từ khi công bố nghiên cứu này, nhóm tập trung vào việc xác định liệu phương pháp này có thể mở rộng quy mô trên cơ sở mã khổng lồ của Meta mà không làm chậm tốc độ phát triển hay không.
Kết quả cho thấy JiTTests giờ đây là một phần không thể tách rời trong quy trình kỹ thuật của Meta. Hệ thống giúp các kỹ sư phát hiện nhiều lỗi hơn với tải tính toán thấp hơn và tỷ lệ dương tính giả thấp hơn so với các nguyên mẫu trước đó. Bằng cách dịch chuyển thử nghiệm sang bên trái (shift-left testing), nền tảng xác định rủi ro một cách chủ động, cho phép các nhóm phản ứng hiệu quả trước khi mã ảnh hưởng đến người dùng.
Sự chuyển đổi này đánh dấu bước tiến từ các công cụ AI thử nghiệm sang hạ tầng đáng tin cậy. Nhóm đã công bố một bài báo có tiêu đề “Just-in-Time Catching Test Generation at Meta”, chi tiết hóa quá trình triển khai ban đầu. Mục tiêu là xử lý hàng trăm triệu dòng mã liên tục biến đổi, đảm bảo rằng các phương pháp thử nghiệm truyền thống có thể theo kịp tốc độ phân phối phần mềm hiện đại.
Cách thức hoạt động
JiTTests khác biệt cơ bản so với các trình xem xét mã AI tiêu chuẩn. Trong khi các đánh giá AI dạng tác nhân (agentic AI) thường xem xét mã dựa trên kinh nghiệm trước đó giống như một nhà phê bình con người, JiTTests lại tạo ra các bài kiểm tra có thể thực thi. Những bài kiểm tra này minh họa cụ thể các khác biệt về hành vi do thay đổi mã gây ra. Phương pháp này đòi hỏi nhiều bước tính toán hơn nhưng bắt được các lớp lỗi cụ thể mà các đánh giá ngữ nghĩa thường bỏ sót.
Hệ thống hoạt động thông qua hai quy trình song song. Quy trình "intent-aware" (nhận diện ý định) suy luận mục đích của thay đổi mã và xác định các rủi ro tiềm năng. Sau đó, nó xây dựng các mutant (các lỗi giả định) và tạo ra các bài kiểm tra để tiêu diệt chúng. Quy trình "dodgy diff" (diff đáng ngờ) coi mọi thay đổi như một lỗi, tạo ra các bài kiểm tra để phơi bày sự khác biệt về hành vi mà không cần suy luận về ý định. Cả hai quy trình đều tạo ra "weak catches" (các phát hiện yếu), tức là những thất bại tiềm năng cần được xác thực thêm.
Để lọc các phát hiện yếu này, Meta sử dụng một bộ kết hợp gọi là "LLM-as-Judge" (LLM đóng vai trò thẩm phán). Nhiều LLM tiên tiến nhất xem xét mã kiểm tra, dấu vết thực thi và chính bản thân diff để phân loại kết quả là dương tính thật hay dương tính giả. Điều này được bổ sung bởi RubFake, một hệ thống đánh giá dựa trên quy tắc cung cấp các phán quyết tất định. Sự kết hợp này đảm bảo độ chính xác cao trước khi bất kỳ kỹ sư con người nào tham gia.
Chi tiết quan trọng
- JiTTests đã tạo và chạy các bài kiểm tra trên những diff được đánh giá là rủi ro bằng cơ chế Diff Risk Score (Điểm rủi ro của diff).
- Hệ thống đã phát hiện 74 lỗi nghiêm trọng về quyền riêng tư trong nửa đầu năm 2026 trước khi chúng đi vào môi trường sản xuất.
- Các kỹ sư báo cáo tỷ lệ dương tính thật là 60% đối với các phát hiện do JiTTests đưa ra.
- Phương pháp này đã giảm 20% tổng số sự cố nghiêm trọng về quyền riêng tư trong cùng kỳ.
- 589 kỹ sư, chiếm 64% số người được liên hệ, đã tương tác với kết quả của JiTTests.
- Quy trình làm việc sử dụng mô hình human-on-the-loop (con người giám sát vòng lặp), trong đó các kỹ sư xem xét kết quả tổng hợp thay vì từng trường hợp kiểm tra riêng lẻ.
Tại sao điều này quan trọng
Đối với các nhóm xây dựng phần mềm ở quy mô lớn, tốc độ triển khai thường vượt xa khả năng thử nghiệm thủ công kỹ lưỡng. JiTTests chứng minh rằng AI có thể cung cấp một lớp an toàn bổ sung, có khả năng bắt các lỗi hồi quy mà phân tích tĩnh hoặc các bài kiểm tra đơn vị truyền thống có thể bỏ sót. Bằng cách tự động hóa việc tạo ra các bằng chứng thất bại có thể thực thi, các tổ chức có thể giảm thiểu rủi ro tổ chức mà không hy sinh tốc độ phát triển của lập trình viên.
Thiết kế human-on-the-loop đặc biệt có ý nghĩa đối với các trưởng nhóm kỹ thuật. Thay vì buộc các lập trình viên phải xem xét mọi bài kiểm tra do AI tạo ra, hệ thống lọc nhiễu và chỉ leo thang các phát hiện có độ tin cậy cao. Điều này giảm ma sát và đảm bảo chuyên môn con người được áp dụng để xác nhận các thay đổi hành vi thay vì gỡ lỗi các cảnh báo giả. Nó làm cho việc thử nghiệm hỗ trợ bởi AI trở nên khả thi cả về mặt xã hội lẫn công nghệ.
Hơn nữa, thành công của JiTTests nhấn mạnh giá trị của việc kết hợp các phán đoán xác suất của LLM với các hệ thống quy tắc tất định. Các phương pháp thuần túy dựa vào AI có thể gặp vấn đề về tính phi tất định, khiến chúng khó tin cậy trong các đường ống quan trọng. Bằng cách tích hợp RubFake và LLM-as-Judge, Meta đã tạo ra một hệ thống lai cân bằng giữa hiểu biết ngữ nghĩa và logic có thể kiểm chứng, cung cấp một khuôn mẫu cho việc tích hợp AI vững chắc trong các đường ống CI/CD.
Bạn có thể làm gì
- Đánh giá đường ống CI hiện tại của bạn để xác định các khoảng trống nơi thiếu các bài kiểm tra hồi quy hành vi.
- Thử nghiệm với LLM để tạo các bài kiểm tra đơn vị cho các hàm phức tạp, tập trung vào các trường hợp biên giới dẫn xuất từ ý định của mã.
- Triển khai một lớp lọc cho các bài kiểm tra do AI tạo ra bằng cách sử dụng các quy tắc tĩnh đơn giản trước khi mời các nhà phê bình con người tham gia.
- Xác định rõ các tiêu chí cho những gì cấu thành một thay đổi "rủi ro" trong cơ sở mã của bạn để ưu tiên nỗ lực thử nghiệm tự động.
- Áp dụng tư duy human-on-the-loop bằng cách tổng hợp các phát hiện của AI để xem xét theo lô thay vì ngắt quãng các lập trình viên cho từng mục.
- Đọc bài báo “Just-in-Time Catching Test Generation at Meta” để hiểu chi tiết kiến trúc của các quy trình dodgy diff và intent-aware.



