Hành trình tiệm cận 3.000 downloads: Tôi đã dùng AI Agent để 'áp đặt' tiêu chuẩn 70% Unit Test như thế nào?
Chào anh em, lại là mình đây
Sau bài viết trước về Zero-Downtime, công cụ CLI nodejs-quickstart-structure. Đây là một con số vừa là niềm vui, vừa là áp lực. Áp lực ở chỗ: Làm sao để đảm bảo mọi project được khởi tạo từ tool đều đạt chuẩn "Production-Ready" thực sự?
Câu trả lời không nằm ở code mẫu, mà nằm ở Unit Test. Nhưng thay vì chỉ ngồi viết test thủ công, mình đã thử một cách tiếp cận "trendy" hơn: Xây dựng một AI Testing Agent để thiết lập tiêu chuẩn (Quality Gate) cho toàn bộ project.

1. Nỗi đau: "Viết Test sau nhé!" và cái kết...
Chúng ta đều biết Unit Test quan trọng. Nhưng thực tế khi bắt đầu một dự án Node.js mới:
- Cài đặt Jest, ts-jest mất thời gian.
- Mocking Mongoose, Redis, Express Request/Response cực kỳ lỉnh kỉnh.
- Định nghĩa cấu trúc folder
tests/sao cho chuẩn Clean Architecture.
Kết quả? Chúng ta thường tặc lưỡi: "Để code xong logic rồi viết test sau". Và cái "sau" đó thường là không bao giờ. Với 3.000 users đang tin dùng tool, mình không thể để điều đó xảy ra.
2. Giải pháp: Từ AI Chatbot đến AI Agent (Thinking in Loops)
Thay vì chỉ dùng AI để "viết hộ" vài đoạn code test rời rạc, mình đã xây dựng một Testing Agent Skill. Khác với Chatbot, Agent này hoạt động dựa trên một bộ quy trình chuẩn (SOP - Standard Operating Procedure):
Bộ khung "Skill" của Agent mà mình thiết lập:
- Role: Senior QA & Testing Architect.
- Standards: Sử dụng AAA Pattern (Arrange - Act - Assert), 100% Isolation (không đụng vào DB thật).
- Goal: Ép ngưỡng Coverage tối thiểu 70% Lines và 70% Functions.
- Protocol: Phải liệt kê Scenarios (Happy/Sad/Edge cases) trước khi đặt bút viết code.
Git file : https://github.com/paudang/nodejs-quickstart-structure/blob/main/docs/testing-agent-standards.md
3. Triển khai: Biến "Tư duy Senior" thành Automation
Mình đã tích hợp trực tiếp tư duy này vào dự án thông qua hệ thống Template (.ejs) và logic xử lý Path thông minh.
Cơ chế "Quality Gate" tự động:
Khi bạn sử dụng lệnh khởi tạo project:
- Tool sẽ tự động quét cấu trúc
src/(Controllers, Services, Resolvers). - AI Agent sẽ gợi ý các bộ Mock chuẩn cho Mongoose (ví dụ:
admin.pingfailure) hoặc GraphQL Context. - Toàn bộ file
.spec.tsđược generate vào thư mụctests/với cấu trúc tương ứng.
Fun fact: Trong quá trình dev, mình từng gặp lỗi "mất đuôi file" do xử lý Path thủ công. Sau đó mình đã phải refactor toàn bộ sang dùng
path.parse()để tool có thể chạy "bất tử" trên cả Windows, MacOS và Linux.
4. Thành quả: Một con số không biết nói dối
Dưới đây là bảng báo cáo Coverage sau khi mình verify lại toàn bộ Scenarios cho bản v1.14.0:
| Category | Coverage | Requirement | Status |
|---|---|---|---|
| Lines | 78.5% | > 70% | ✅ PASS |
| Functions | 82.1% | > 70% | ✅ PASS |
| Branches | 70.2% | > 65% | ✅ PASS |
Bây giờ, mọi user khi tải nodejs-quickstart-structure về sẽ không còn lý do gì để lười viết test nữa. Vì cái "khung xương" khó nhất đã được AI chuẩn bị sẵn sàng.
5. Bài học rút ra: AI không thay thế ta, nó nâng tầm ta
Việc dùng AI Agent để xây dựng tiêu chuẩn Testing giúp mình nhận ra: AI mạnh nhất khi nó được đặt vào một quy trình (Workflow) chuẩn.
Nếu bạn cũng đang loay hoay với việc setup dự án Node.js chuẩn chỉnh, hãy thử trải nghiệm tool của mình:
npx nodejs-quickstart-structure init
Và đừng quên: Quality is not an act, it is a habit.
Kết bài
Mục tiêu tiếp theo của mình là mốc 5.000 downloads. Nếu bạn thấy hướng đi này hữu ích, hãy để lại cho mình 1 Star trên GitHub hoặc comment góp ý về cách bạn đang viết Unit Test nhé!
GitHub Repo: https://github.com/paudang/nodejs-quickstart-structure
Cảm ơn anh em đã đọc bài! Hy vọng bài chia sẻ này tiếp thêm chút động lực cho anh em trong việc "vật lộn" với Unit Test.
All Rights Reserved