测试覆盖率从30%到80%:我的AI测试实战

  • 约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%以上的时间。我的使用心得是:

  1. 先让AI分析代码结构,避免漏测
  2. 用批量提示词快速生成基础用例
  3. 手动补充边界场景和异常分支
  4. 跑测试、看报告、迭代优化

与其花一下午手写测试,不如花20分钟用AI生成+手动优化。效果差不多,但省下的时间可以喝杯咖啡。

相关文章

专注:开发者的超级力量

在信息爆炸的时代,专注已成为稀缺资源。本文探讨专注对开发者的重要性,并分享排除干扰、练习冥想、设定目标和反思调整等方法,帮助开发者提升专注力和工作效率。

查看更多

时间管理的奇迹:开发者的高效工作秘诀

作为开发者,我们常面临繁重任务和高强度工作。本文结合《时间管理的奇迹》和实际经验,探讨如何合理规划时间,提升工作效率。

查看更多

如何解决拖延症

从有记事时起,印象中拖延症就始终伴随着我。上学时家庭作业拖到快睡觉时候再熬夜做,掐着点出门导致经常迟到;上班后每天、每周的总结总是拖到最后一刻提交;深夜有时候困得不行还会漫无目的的上网来拖延睡觉……

查看更多