Kiểm thử hệ thống phân tán hiệu quả hơn với sự hỗ trợ của các tác nhân AI
Một dự án mã nguồn mở mới đang tận dụng sức mạnh của các tác nhân AI như Claude và Copilot để tự động hóa quy trình kiểm thử hệ thống phân tán phức tạp. Phương pháp này tạo ra các kế hoạch kiểm thử dựa trên tuyên bố của sản phẩm và báo cáo chi tiết về lỗi, giúp các nhà phát triển dễ dàng phát hiện các vấn đề về tính nhất quán và độ bền bỉ.

Kiểm thử hệ thống phân tán hiệu quả hơn với sự hỗ trợ của các tác nhân AI
Kiểm thử hệ thống phân tán và có trạng thái (stateful) luôn là một thách thức lớn đối với các kỹ sư phần mềm. Các bài kiểm thử tích hợp thông thường thường không đủ sức để phát hiện ra các lỗi tinh tế như phân vùng mạng một phần (partial network partitions), tính không xác định của đồng thời (non-deterministic concurrency), hay các vấn đề về khôi phục sau sự cố. Một dự án mới trên GitHub mang tên distributed-system-testing đang đưa ra giải pháp đột phá bằng cách sử dụng các tác nhân AI (AI agents) để thiết kế và chạy các bài kiểm thử chuyên sâu này.
Dự án này cung cấp hai "kỹ năng" (skills) dành cho các tác nhân lập trình AI như Claude Code, Codex, Copilot CLI, Cursor hoặc Gemini. Mục tiêu là sản xuất một kế hoạch kiểm thử có cấu trúc dưới dạng Markdown và một báo cáo phát hiện lỗi chi tiết, từ đó giúp người xem xét quyết định xem có nên phát hành phần mềm hay mà không cần chạy lại toàn bộ quy trình.
Cách hoạt động của hai kỹ năng AI
Hai kỹ năng chính được định nghĩa trong dự án này bao gồm:
- Thiết kế kế hoạch kiểm thử (Designing): Kỹ năng này sẽ phân tích kho lưu trữ mã nguồn, trích xuất các "tuyên bố" (claims) mà sản phẩm đưa ra, tạo ra các giả thuyết liên quan đến những tuyên bố đó và chọn các kỹ thuật kiểm thử phù hợp. Kết quả là một kế hoạch Markdown bao gồm lập luận về độ phủ đầy đủ và một tuyên bố về mức độ tin cậy.
- Thực thi kế hoạch (Executing): Kỹ năng này đọc kế hoạch, khám phá công cụ có sẵn của hệ thống, dò tìm môi trường và chạy các kịch bản kiểm thử. Nó ghi lại bằng chứng về lỗi, chạy các kiểm toán và gán phán quyết từ một bộ phân loại 9 trạng thái, đồng thời phân loại mọi lỗi thất bại (FAIL) theo nguyên nhân gốc rễ (SUT, harness, checker hay môi trường).
Tại sao phương pháp này lại cần thiết?
Phương pháp mặc định hiện nay — viết vài bài kiểm thử tích hợp và coi như xong — chỉ tìm thấy một phần nhỏ số lỗi thực sự gây vỡ hệ thống trong môi trường sản xuất. Dự án này áp dụng một quy trình làm việc chặt chẽ dựa trên kiến thức khó kiếm được từ lĩnh vực hệ thống phân tán:
- Dựa trên tuyên bố (Claim-driven), không phải dựa trên kiểm thử: Bắt đầu từ những gì sản phẩm hứa hẹn. Mọi kịch bản đều nhằm bác bỏ một tuyên bố dưới một lỗi cụ thể.
- Độ phủ đầy đủ là một sản phẩm giao hàng: Kế hoạch kết thúc bằng một lập luận giải thích tại sao các kịch bản đã chọn là đủ để phát hành, kèm theo danh sách trung thực về những gì chưa được xác minh.
- Mô hình + Lịch sử + Trình kiểm tra (Checker): Không chỉ là chaos engineering (kỹ thuật hỗn loạn). Đối với các yêu cầu về an toàn, độ bền, tính lũy thừa (idempotency)... mọi kịch bản phải khai báo một mô hình trừu tượng, lược đồ lịch sử hoạt động và một trình kiểm tra được đặt tên (ví dụ: linearizability, serializability).
- Không có sự vượt qua âm thầm: Mọi kết quả PASS đều phải trích dẫn bằng chứng thực thi oracle và tín hiệu chứng minh lỗi thực sự đã kích hoạt.
Cấu trúc đầu ra và Quy trình cài đặt
Sử dụng hai kỹ năng này, người dùng sẽ nhận được một thư mục testing-plans chứa kế hoạch chi tiết (từ §0 đến §9) và một thư mục test-sessions chứa nhật ký, số liệu và báo cáo phát hiện (findings report). Kế hoạch kiểm thử được thiết kế để một người xem xét có thể đọc và quyết định xem có nên "ship" code hay không mà không cần chạy lại test.
Việc cài đặt cực kỳ đơn giản. Bạn chỉ cần dán một dòng lệnh duy nhất vào bất kỳ tác nhân AI nào hỗ trợ đọc Markdown và chạy shell:
Read https://raw.githubusercontent.com/shenli/distributed-system-testing/main/INSTALL.md and follow the instructions to install and configure distributed-testing-skills for this agent.
Tác nhân sẽ tự động tải về, cài đặt và cấu hình các kỹ năng cần thiết. Sau khi cài đặt xong, bạn có thể yêu cầu tác nhân "thiết kế kế hoạch kiểm thử cho hệ thống này" hoặc "thực thi kế hoạch tại X".
Kho kỹ thuật kiểm thử
Dự án cũng bao gồm một danh mục kỹ thuật tham khảo gồm 8 tệp, được chắt lọc từ các tài liệu học thuật nổi tiếng trong ngành như Jepsen, Chaos Engineering, Fuzzing, và các phương pháp hình thức (Formal Methods). Điều này giúp các tác nhân AI chọn đúng công cụ cho đúng vấn đề, từ việc kiểm tra tính tuyến tính hóa (linearizability) dưới lỗi đến mô phỏng xác định để tái tạo lỗi.
Hiện tại, dự án đang ở giai đoạn đầu nhưng đã được kiểm chứng thực tế trên AgentDB (một runtime tác nhân phân tán viết bằng Rust), phát hiện thành công nhiều lỗi nghiêm trọng. Đây là một công cụ hứa hẹn sẽ nâng cao chất lượng phần mềm cho các hệ thống phân tán phức tạp trong tương lai.
Bài viết liên quan

Phần mềm
Plugin Checkmarx Jenkins bị xâm phạm trong cuộc tấn công chuỗi cung ứng
11 tháng 5, 2026

Công nghệ
Substrate (YC S24) tuyển dụng Technical Success Manager cho nền tảng AI chuyên xử lý thanh toán y tế
13 tháng 5, 2026

Phần mềm
Bun công bố hướng dẫn chuyển đổi sang Rust, nhưng gọi dự án viết lại là "chưa chín muồi"
05 tháng 5, 2026
