Cách dùng AI viết kiểm thử (unit test) cho đoạn code

Hướng dẫn dùng AI viết unit test cho đoạn code: cách đưa ngữ cảnh, yêu cầu các ca biên, cách đọc hiểu và kiểm tra test trước khi tin tưởng, kèm lưu ý an toàn.
Viết kiểm thử (test) là phần nhiều lập trình viên ngại nhất: tốn thời gian, lặp đi lặp lại, dễ bỏ sót. AI có thể phác thảo bộ test rất nhanh từ một đoạn code, giúp bạn có điểm xuất phát thay vì bắt đầu từ trang trắng.
Điều quan trọng cần nhớ ngay từ đầu: AI viết test có thể sai hoặc chỉ chạy qua được cho "đẹp". Bạn phải đọc, hiểu và chạy thử từng test trước khi tin. Bài này hướng dẫn quy trình thực tế để dùng AI an toàn và hiệu quả.
AI giúp được gì, không giúp được gì
AI làm tốt:
- Sinh nhanh khung test và các ca thông thường.
- Gợi ý ca biên (giá trị rỗng, âm, rất lớn, ký tự đặc biệt) mà bạn dễ quên.
- Giải thích đoạn code đang làm gì để bạn viết test đúng ý.
- Chuyển đổi test giữa các thư viện (ví dụ từ khung này sang khung khác).
AI không thay được:
- Hiểu yêu cầu nghiệp vụ thật của bạn. Nó chỉ đoán từ code, mà code có thể đang sai.
- Quyết định test nào quan trọng với dự án.
- Đảm bảo test thật sự bắt được lỗi.
Quy trình 6 bước
- Chuẩn bị code gọn gàng: chỉ đưa vào hàm hoặc lớp cần test, kèm mô tả ngắn hàm làm gì, đầu vào/đầu ra mong đợi.
- Nêu rõ ngôn ngữ và khung test: ví dụ "Python, pytest" hoặc "JavaScript, Jest". Nói rõ cách đặt tên và cấu trúc bạn muốn.
- Viết prompt cụ thể (xem mẫu bên dưới).
- Đọc kỹ từng test AI viết: mỗi test có đang kiểm tra đúng điều bạn cần không?
- Chạy test trong môi trường thử và xem kết quả. Test fail không có nghĩa AI sai, có thể code của bạn có lỗi.
- Chỉnh lại và bổ sung: yêu cầu AI sửa hoặc thêm ca còn thiếu.
Mẫu prompt dùng được ngay
Bạn có thể viết theo cấu trúc:
- Vai trò: "Bạn là lập trình viên viết kiểm thử."
- Bối cảnh: "Hàm dưới đây tính tổng tiền đơn hàng sau chiết khấu. Quy tắc: chiết khấu không vượt quá 20%, số lượng âm là không hợp lệ."
- Yêu cầu: "Viết unit test bằng pytest, gồm trường hợp bình thường, ca biên và trường hợp lỗi. Giải thích ngắn mỗi test kiểm tra gì."
- Đoạn code: dán hàm cần test.
Nếu AI viết lệch ý, đọc thêm cách sửa prompt khi AI trả lời lạc đề và cách viết câu lệnh prompt để AI trả lời đúng ý.
Cách kiểm tra chất lượng bộ test
Sau khi AI trả kết quả, tự hỏi:
- Test có kiểm tra kết quả thật hay chỉ gọi hàm rồi khẳng định điều hiển nhiên?
- Có đủ ca biên: rỗng, bằng 0, giá trị lớn, kiểu dữ liệu sai?
- Test có phụ thuộc lẫn nhau hay phụ thuộc thứ tự chạy không?
- Có test nào sao chép logic của code rồi so sánh, khiến nó luôn đúng dù code sai không?
- Tên test có mô tả rõ hành vi không?
Một mẹo hữu ích: cố tình làm hỏng code (đổi dấu, sửa điều kiện) để xem test có báo lỗi không. Nếu test vẫn qua, nó chưa đủ mạnh.
Lưu ý an toàn khi dùng AI với code
- Không dán khóa API, mật khẩu, chuỗi kết nối cơ sở dữ liệu hay dữ liệu khách hàng vào prompt. Hãy thay bằng giá trị giả.
- Kiểm tra giấy phép và chính sách bảo mật của công cụ nếu là code của công ty.
- Đọc hiểu trước khi chạy mọi lệnh hoặc script AI gợi ý, đặc biệt lệnh xóa dữ liệu hoặc truy cập mạng.
- Chạy thử ở môi trường thử (test/dev), không chạy ngay trên dữ liệu thật.
- Bản thân AI có thể bịa ra hàm hoặc thư viện không tồn tại; xem ảo giác của AI.
Kết hợp với các việc khác
AI cũng hữu ích khi bạn gặp lỗi: xem cách dùng AI tìm lỗi trong đoạn code và cách dùng GitHub Copilot hỗ trợ viết code. Nếu hay làm việc với code lớn, đừng quên cửa sổ ngữ cảnh của AI có giới hạn, nên hãy đưa từng phần nhỏ.
Cần hỗ trợ thêm?
Nếu doanh nghiệp bạn cần phần mềm được kiểm thử bài bản, hãy xem dịch vụ phần mềm theo yêu cầu của Cường Tech hoặc gọi hotline 0943.847.333.
Câu hỏi thường gặp
AI viết unit test có đáng tin không?
AI giúp tạo khung và gợi ý ca biên rất nhanh, nhưng test có thể sai hoặc yếu. Bạn cần đọc hiểu và chạy thử trước khi tin tưởng.
Nên đưa gì cho AI để viết test tốt hơn?
Hàm cần test, mô tả hành vi mong đợi, ngôn ngữ và khung test sử dụng, cùng các quy tắc nghiệp vụ như giới hạn, trường hợp lỗi.
Có được dán code công ty vào AI không?
Chỉ khi chính sách của công ty cho phép. Dù thế nào cũng không dán khóa API, mật khẩu hay dữ liệu khách hàng.
Làm sao biết test AI viết có hiệu quả?
Thử cố tình làm hỏng code để xem test có báo lỗi không, và kiểm tra test có đủ ca biên, có kiểm tra kết quả thật chứ không chỉ gọi hàm.





