¥
立即购买

代码覆盖率分析器

209 浏览
15 试用
4 购买
Nov 19, 2025更新

本提示词专为开发者和质量保证工程师设计,通过深度分析源代码与测试结果,精确识别代码库中被测试覆盖和未覆盖的部分。它采用分步推理方法,确保逻辑严密的分析过程,帮助团队优化测试策略、提升代码质量。亮点包括多维度覆盖率评估、结构化报告输出和可定制的分析深度,能够适配从单元测试到集成测试的各种业务场景,为软件质量改进提供数据支撑。

覆盖率概览

作用域/文件 语句(%) 分支(%) 方法(%) 行(%) 未覆盖行号
src/controllers 92.30 83.33 100.0 92.30
└─ orderController.js 92.30 83.33 100.0 92.30 19-20
src/services 85.71 66.66 80.0 86.48
└─ paymentService.js 85.71 66.66 80.0 86.48 9, 15, 23-24, 30

分支细节要点:

  • applyDiscount:已覆盖 coupon.type === 'fixed' 路径;未覆盖 percent=50% 的边界路径
  • pay:已覆盖 catch 中 retries>0 的重试路径;未覆盖 result.status 为 fraud_suspected 的分支

详细分析

支付模块(src/services/paymentService.js)

  • pay
    • 语句与行覆盖率低于 90%,主要缺口位于异常耗尽后的错误返回与特定状态分支。
    • 已覆盖:正常成功路径、异常抛出后进行重试(retries>0)。
    • 未覆盖:第三方返回 fraud_suspected 的拒付场景;重试耗尽后的最终错误返回路径。
  • applyDiscount
    • 已覆盖:fixed 金额券的折扣计算。
    • 未覆盖:percent 百分比券在边界值(value=50)下的计算路径;百分比券相关的分支边界。

订单处理(src/controllers/orderController.js)

  • createOrder
    • 分支覆盖 83.33%,两条响应路径(成功 201/失败 402)至少有一条未完全覆盖或存在行未触达。
    • 未覆盖的行(19-20)位于该函数的响应路径代码段,显示存在一条响应逻辑未被触发到行级别。

业务逻辑

  • 折扣策略:边界值(percent=50)未覆盖,存在典型边界用例缺失。
  • 支付结果判定:外部网关的低频异常状态(fraud_suspected)未覆盖。
  • 错误处理:重试耗尽后的错误返回未覆盖,异常兜底路径存在盲区。

接口服务

  • 请求到响应的完整链路大体可用,但存在一条响应分支行未覆盖,可能导致发布前质量门禁对失败响应场景的信心不足。

问题识别

  • paymentService.js
    • 行 9:try 块进入/正常路径存在未命中边缘行。
    • 行 15:重试耗尽后的错误返回路径未覆盖(异常最终兜底)。
    • 行 23-24:百分比折扣路径(包含边界 50%)未覆盖。
    • 行 30:文件尾部相关行未覆盖(与逻辑路径未触达关联)。
    • 分支:result.status === 'fraud_suspected' 未覆盖。
  • orderController.js
    • 行 19-20:createOrder 的一条响应路径未触达(成功或失败中的一条),导致行未覆盖。
  • 分支覆盖薄弱点
    • 边界条件:percent=50。
    • 低频外部状态:fraud_suspected。
    • 异常兜底:重试耗尽后的 ERROR 返回。
    • 接口响应:双分支(201/402)需双向覆盖到行级别(包含 status 与 json 内容)。

改进建议

  • 支付结果分支完善

    • 用例:模拟网关返回 fraud_suspected,断言 pay 返回 FRAUD,覆盖相应分支与语句。
    • 预期提升:paymentService 分支覆盖率显著提升;行/语句覆盖补齐对应行。
  • 重试耗尽的异常兜底

    • 用例:将 retries 设为 0(或 1 并连续抛出),让 gateway.charge 每次抛出异常,断言 pay 返回 ERROR 且包含 message。
    • 预期提升:覆盖行 15,完善异常兜底路径,提升语句与行覆盖。
  • 百分比折扣边界值

    • 用例:coupon.type=percent 且 value=50,断言折扣后 total 计算正确并非负;另补充 value=1(最小正值)、value=51(不应生效)以覆盖边界与越界。
    • 预期提升:覆盖行 23-24 及分支边界,提高分支/语句覆盖。
  • 控制器响应双分支到行级

    • 用例A:网关成功返回,断言 createOrder 返回 201 且响应体包含 id/total/txId。
    • 用例B:网关拒付返回(如 DECLINED/FRAUD),断言返回 402 且响应体包含 id/reason。
    • 预期提升:覆盖 orderController 行 19-20,分支覆盖趋近 100%。
  • 无优惠券路径确认

    • 用例:coupon 为空/未提供,断言订单不变并完成支付流程,确保早返回路径被统计到行。
    • 预期提升:稳定 applyDiscount 的行覆盖,避免尾部行遗漏。
  • 响应内容断言粒度

    • 建议在控制器用例中同时断言 HTTP 状态码与响应体字段,确保响应分支内部所有可执行行被触发并计入覆盖。

数据可视化

覆盖率分布(每项“█”约等于5%覆盖)

  • src/controllers/orderController.js

    • 语句: ███████████████████████████████████░ 92%
    • 分支: ██████████████████████████████░░░░ 83%
    • 方法: █████████████████████████████████████████ 100%
    • 行数: ███████████████████████████████████░ 92%
  • src/services/paymentService.js

    • 语句: ███████████████████████████████░░░░ 86%
    • 分支: ███████████████████████░░░░░░░░░░ 67%
    • 方法: █████████████████████████░░░░░░░░ 80%
    • 行数: ███████████████████████████████░░░░ 86%

薄弱区热度(分支覆盖优先级)

  • 支付模块/分支:高优先级补齐(fraud_suspected、异常兜底、percent=50%)
  • 控制器/响应分支:中高优先级补齐(201/402 双路径行级触达)

覆盖率概览

模块 指令覆盖(INSTR) 分支覆盖(BRANCH) 行覆盖(LINE) 方法覆盖(METHOD)
库存管理 app.dao.InventoryDao 93% 66% 92% 100%
库存管理 app.service.InventoryService 95% 75% 94% 100%
文件处理 app.util.CsvImporter 78% 62% 80% 90%

项目总体(类均值):INSTR 88.7%,BRANCH 67.7%,LINE 88.7%,METHOD 96.7%

详细分析

  • 库存管理

    • app.dao.InventoryDao
      • 行与方法覆盖较高;分支覆盖未达标(66%)
      • 风险点:库存预留条件分支未完全覆盖(边界/异常场景存在缺口)
    • app.service.InventoryService
      • 行与方法覆盖高;分支覆盖存在缺口(75%)
      • 风险点:参数校验分支未完全覆盖(数量<=0触发异常路径)
  • 文件处理

    • app.util.CsvImporter
      • 行覆盖与方法覆盖相对较低;分支覆盖最低(62%)
      • 风险点:无效行处理与IO异常路径覆盖不足
      • 未覆盖行:
        • 第24、28、32行:无效行分支(列数不等于2、数量格式错误、数量<=0)
        • 第39-41行:IO异常捕获路径(返回0)

问题识别

  • 关键未覆盖代码区域

    • app.util.CsvImporter
      • 无效输入处理分支:行24、28、32
      • IO异常处理分支:行39-41(读取或关闭过程抛出异常时的返回0路径)
    • app.service.InventoryService
      • addStock 参数校验分支:qty <= 0 触发 IllegalArgumentException 的路径
    • app.dao.InventoryDao
      • reserve 条件分支:cur < qty 与 cur >= qty 的覆盖不均衡,边界值(cur == qty)与缺货/有货组合可能存在遗漏
  • 覆盖薄弱点聚类

    • 分支类场景:输入校验、异常处理、边界条件
    • I/O 异常类场景:读取失败、关闭失败

改进建议

  • 覆盖分支与异常路径

    • CsvImporter
      • 增加无效行用例:
        • 列数不为2
        • 数量非数字
        • 数量<=0
      • 增加IO异常用例:
        • 读取过程中抛出IOException
        • 关闭Reader时抛出IOException
      • 验证:返回值为0(异常路径幂等保障)
    • InventoryService
      • 为 addStock 增加 qty=0 与 qty<0 用例,断言抛出 IllegalArgumentException
    • InventoryDao
      • 为 reserve 增加边界与失败用例:
        • cur == qty(恰好耗尽)
        • cur < qty(库存不足)
        • 连续预留序列(成功后再次失败)以触发不同状态转换
  • 增强边界与健壮性覆盖

    • CSV 导入的混合场景:有效/无效/注释/空行交错,验证计数统计(ok、skip)符合预期
    • 并发可重入性验证(可选):多线程同时 add/reserve,确保可观测行为与同步语义一致(提高路径稳定性,虽不直接影响覆盖率但可提升质量信心)
  • 度量目标与质量门禁

    • 目标阈值:分支覆盖≥85%,行覆盖≥90%,方法覆盖≥95%
    • 优先顺序:先补齐 CsvImporter 的无效行与IO异常路径,其次补齐 InventoryService 的参数校验路径,最后完善 InventoryDao 的边界分支

数据可视化

  • 按类的行覆盖率

    • InventoryDao [##################--] 92%
    • InventoryService [###################-] 94%
    • CsvImporter [################----] 80%
  • 按类的分支覆盖率

    • InventoryDao [#############-------] 66%
    • InventoryService [###############-----] 75%
    • CsvImporter [############--------] 62%

图例:每个#约等于5%,-为未覆盖比例

  • 维度概览(类均值)
    • INSTR [####################------] 88.7%
    • BRANCH [##############----------] 67.7%
    • LINE [####################------] 88.7%
    • METHOD [########################-] 96.7%

示例详情

解决的问题

用一条可复用的智能提示词,快速看清测试覆盖现状、精准锁定未覆盖与高风险片段,生成清晰可分享的覆盖率分析报告,并给出可落地的测试增强建议,帮助团队在更短时间内提升覆盖率、减少回归缺陷、通过质量门禁,最终加速稳定发布与提升研发投资回报。

适用用户

开发团队负责人

在版本收尾阶段用覆盖率总览把握风险,确定必须补测的模块,安排资源优先修复,并以数据向业务解释延期理由。

质量保证工程师

通过多维度评估定位未触达路径,编写针对性用例,完善回归范围,输出结构化报告沉淀流程规范。

测试自动化工程师

将分析纳入日常脚本执行后,自动生成改进清单,优化用例集,减少冗余测试,提升脚本维护效率。

特征总结

一键生成覆盖率总览,清晰展示各模块测试表现,帮助团队快速抓住关键薄弱点并指导优先修复。
自动识别未被测试触达的代码区域,给出原因线索,避免遗漏影响发布质量。
按语句、分支、方法等维度细化评估,轻松对比差距,让改进空间一目了然立即锁定优先项。
生成结构化可读报告,涵盖概览、明细与建议,方便分享评审,减少沟通成本。
支持自定义分析深度,从快速体检到深度诊断自由切换,满足不同阶段的质量需求。
与持续集成流程协作,自动出具质量门禁数据,一键判断是否达标再合入。
新功能上线前快速验证测试完整性,回归前及时补缺补漏,降低线上故障风险。
多语言代码皆可分析,自动理解常见框架结构,减少手工标注与维护成本。

如何使用购买的提示词模板

1. 直接在外部 Chat 应用中使用

将模板生成的提示词复制粘贴到您常用的 Chat 应用(如 ChatGPT、Claude 等),即可直接对话使用,无需额外开发。适合个人快速体验和轻量使用场景。

2. 发布为 API 接口调用

把提示词模板转化为 API,您的程序可任意修改模板参数,通过接口直接调用,轻松实现自动化与批量处理。适合开发者集成与业务系统嵌入。

3. 在 MCP Client 中配置使用

在 MCP client 中配置对应的 server 地址,让您的 AI 应用自动调用提示词模板。适合高级用户和团队协作,让提示词在不同 AI 工具间无缝衔接。

AI 提示词价格
¥30.00元
先用后买,用好了再付款,超安全!

您购买后可以获得什么

获得完整提示词模板
- 共 592 tokens
- 4 个可调节参数
{ 源代码 } { 测试结果 } { 分析深度 } { 关键模块 }
获得社区贡献内容的使用权
- 精选社区优质案例,助您快速上手提示词
使用提示词兑换券,低至 ¥ 9.9
了解兑换券 →
限时半价

不要错过!

半价获取高级提示词-优惠即将到期

17
:
23
小时
:
59
分钟
:
59