- 约1198字
- 技术
- 2026年3月9日
上个月重构一个核心模块,代码改了1000多行,测试覆盖率直接从45%跌到了12%。产品经理催着要上线,我看着那一片飘红的测试报告,头都大了。
手写测试的痛苦我太清楚了:一个接口要写七八个用例,边界条件、异常分支、参数组合……全部考虑一遍要好几个小时。更绝望的是,写完一跑,发现还有漏掉的场景,又要补。
但这次,我试着用AI辅助生成测试,结果只用了20分钟,就把覆盖率拉回到了82%。今天把我的实操经验分享出来。
AI测试工具怎么选
目前主流的AI测试生成工具主要有这几个:
GitHub Copilot:集成在VS Code和JetBrains里,补全测试代码的同时能生成基础用例。适合单函数快速生成。
Codium AI:专注代码测试生成,能分析函数逻辑,自动生成边界用例。免费版够用,付费版支持更复杂的场景。
腾讯云AI代码助手:支持中文提示词,对国内开发者更友好。测试生成速度不错,但边界用例覆盖不如Codium。
我个人的使用习惯是:Codium生成基础用例 + 手动补充边界场景。20分钟从12%到82%就是这么做出来的。
具体怎么操作
第一步:让AI先理解代码
不要一上来就让AI写测试。先把要测试的模块整体贴给AI,让它分析有哪些函数、每个函数的输入输出是什么。
我通常会这么问:
「分析这个user-service.js文件,找出所有需要测试的函数,并列出每个函数的参数类型和返回值。」
AI会快速列出清单,有些是你漏掉的。比如有一个处理手机号格式化的函数,表面上看很简单,但AI提醒我要注意空字符串、null、非数字字符这些边界情况。
第二步:批量生成测试用例
有了函数清单,就可以批量生成测试了。我常用的提示词是:
「为getUserById函数生成单元测试,要求覆盖:正常查询、id不存在、id为空、id类型错误四种场景。用Jest语法。」
AI会生成对应的测试代码,通常只需要微调就能跑。这里有个小技巧:让AI一次只生成一个函数的测试,一次性生成太多容易有逻辑漏洞。
第三步:手动补充边界用例
AI生成的用例覆盖率大概在60%-70%,剩下的是边界场景,需要手动补。
我总结了几类AI容易漏掉的场景:
- 并发请求
- 资源耗尽(比如数据库连接超时)
- 第三方服务异常
- 极端数据(比如超长字符串、特殊字符)
这些场景在真实线上环境很容易遇到,但AI因为缺乏业务上下文,往往会忽略。
跑起来,然后迭代
生成完测试别忘了跑。我第一次让AI生成测试时,有些用例引用的mock数据不对,跑不起来。调整一下mock就行,不是大问题。
跑完后看覆盖率报告,针对性地补用例。一般补两三轮,就能到80%以上。
总结
AI生成测试不是万能的,但确实能节省60%以上的时间。我的使用心得是:
- 先让AI分析代码结构,避免漏测
- 用批量提示词快速生成基础用例
- 手动补充边界场景和异常分支
- 跑测试、看报告、迭代优化
与其花一下午手写测试,不如花20分钟用AI生成+手动优化。效果差不多,但省下的时间可以喝杯咖啡。