0

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% Lines70% 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:

  1. Tool sẽ tự động quét cấu trúc src/ (Controllers, Services, Resolvers).
  2. AI Agent sẽ gợi ý các bộ Mock chuẩn cho Mongoose (ví dụ: admin.ping failure) hoặc GraphQL Context.
  3. Toàn bộ file .spec.ts được generate vào thư mục tests/ 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

Viblo
Let's register a Viblo Account to get more interesting posts.