AI-assisted testing là cách tiếp cận kết hợp AI coding assistants (GitHub Copilot, Cursor, v.v.) với phương pháp phân tích có hệ thống để tạo unit test chất lượng cao — nhanh hơn và ít miss edge case hơn so với viết tay thuần túy.

Điều kiện tiên quyết: AI không tự nhiên giỏi test

AI coding assistants giỏi ở pattern matching và boilerplate generation, nhưng gặp khó khăn với:

  • Hiểu full dependency graph của một service class phức tạp
  • Xác định “impossible” branches cần test
  • Nhớ verify negative cases (những gì không nên bị gọi)

Kết quả: nếu chỉ prompt “write tests for this class”, AI sẽ generate test coverage thấp, bỏ sót edge cases, và mock thiếu.

Cách làm cho AI-assisted testing hoạt động

Bước 1: Build Lossless Semantic Tree trước

Trước khi yêu cầu AI viết test, xây dựng lossless-semantic-tree — bản đồ đầy đủ của service. Đây là structured context mà AI cần nhưng không tự tạo ra được.

Bước 2: Cung cấp LST cho AI

Đưa LST vào context (paste vào chat, hoặc reference file). Khi AI có LST:

  • Nó có thể map từng test case sang đúng branch trong LST
  • Coverage trở nên systematic thay vì opportunistic
  • AI có thể phát hiện gaps: “branch này trong LST chưa có test”

Bước 3: Iterate với structured prompts

Khi test generation gặp branch phức tạp:

“Đối chiếu với LST, kiểm tra branch [X] đã test chưa, mock đã đủ chưa, exception đã cover chưa?”

AI sẽ tự động sinh test, bổ sung mock, và gợi ý edge cases mà human dễ bỏ sót.

Mô hình Human + AI

Vai tròHumanAI
Trách nhiệmPhân tích LST, hiểu business logic, review kết quảImplementation speed, boilerplate, catch patterns
Thế mạnhSystem thinking, domain knowledge, judgmentExhaustive enumeration, code generation
Hạn chếMệt mỏi, miss edge cases khi code phức tạpKhông hiểu ẩn ý business, pattern-match sai khi thiếu context

Sự kết hợp loại bỏ điểm yếu của nhau: human cung cấp structured context, AI thực thi nhanh và đầy đủ.

Kết quả thực tế

Với LST + GitHub Copilot:

  • Bắt được bug ở “impossible branches”
  • Test dễ maintain hơn (logic rõ ràng từ đầu)
  • Onboarding dễ hơn — LST là documentation sống của service
  • Đạt real coverage (branch coverage) thay vì chỉ line coverage

Connections

  • lossless-semantic-tree — LST là nền tảng methodology; AI-assisted testing là cách ứng dụng LST với AI tooling
  • continuous-integration — test quality từ AI-assisted testing cải thiện CI reliability
  • continuous-delivery — high-quality test suite là điều kiện để CD hoạt động an toàn

Sources

  • writing/Dùng AI đưa Unit Test Vào Khuôn Khổ.md