加载中...
返回AI 编程实战
AI 编程知识库 · AI 编程实战 · 企业团队落地

测试编写

概念图

版本说明:本文基于 Claude Code(1.0.x)与 OpenCode 的测试生成实践撰写,适用于企业级开发团队。

技术栈版本:Java 17+、Spring Boot 3.x、JUnit 5(Jupiter)、Maven/Gradle、JaCoCo 覆盖率工具。

适用对象:中高级开发者、测试工程师、技术负责人。

前置知识:第18篇单服务编码。

一、AI辅助测试的完整流程

测试是 AI 编码工具投入产出比最高的环节之一。MorphLLM 的 2026 年分析指出,单元测试遵循高度结构化的模式——给定函数签名、实现和项目测试约定,测试结构基本可预测,这使得测试生成成为 AI 工具回报率最高的应用场景之一 。arXiv 2026 年的一项案例研究也表明,AI 辅助迭代生成测试能显著提升代码行为捕获能力,某商业 Web 应用通过 AI 工作流生成了约 16,000 行单元测试,使生产代码的依赖密度降低了 57.5% 。

但 AI 生成测试不是"给一段代码,拿一堆测试"。和编码一样,需要结构化的流程。

本文将 AI 辅助测试拆分为五个步骤:

分析测试场景 → 生成单元测试 → 生成集成测试 → 边界条件测试 → 运行并分析结果

用一个满减券的测试案例贯穿全文。

二、第一步:分析测试场景

不要直接让 AI 生成测试

很多人拿到一段代码就直接让 AI "帮我写测试"。这样做的问题是:AI 会生成一堆看似合理但缺乏针对性的测试用例,覆盖了显而易见的场景,遗漏了真正容易出 Bug 的地方。

正确的做法是先分析需要测试的场景,再让 AI 逐个生成。

场景分析的三个层次

层次 内容 示例(满减券)
正常流程 标准业务流程 满 100 减 10,订单 150 元,减 10
异常分支 非法输入和异常情况 订单金额为 null、阈值为负数
边界条件 临界值和极端值 订单恰好 100 元、订单 99.99 元

让 AI 分析测试场景,它会输出类似这样的结果:

FullReduction.calculate() 测试场景分析:

正常流程:
1. 订单金额 >= 阈值,返回正确的减免金额
2. 订单金额满足多次满减(如满100减10,订单300元)
3. 订单金额恰好等于阈值

异常分支:
4. 订单金额为 null → 预期抛出 NullPointerException
5. 阈值为 null → 预期在构造时校验失败
6. 阈值为 0 或负数 → 预期在构造时校验失败

边界条件:
7. 订单金额 < 阈值(差 0.01)→ 返回 0
8. 订单金额 = 阈值 → 返回 discount
9. 订单金额极大值 → 验证精度不丢失
10. discount 为 0 → 返回 0

关键技巧: 把场景分析结果保存下来,作为后续生成测试用例的依据。这样可以确保每个场景都有对应的测试,不会遗漏。

三、第二步:生成单元测试

基于场景逐个生成

有了场景分析结果,让 AI 逐个生成测试用例。不要一次生成所有测试——逐个生成的好处是每个用例都有明确的意图,AI 不会"凑数"。

以满减券的正常流程测试为例:

AI 编程知识库会员专享内容
开通后解锁「测试编写」全文,AI 编程知识库全年访问

扫码添加企业微信,找大熊掌门开通会员

企业微信二维码

添加后说明想开通的会员类型即可

加载中...