覆盖度测试整体流程:
1、安装
(1)获取路径: http://www.ncover.com/info/download
(2)解压并安装程序包
2、监控
(1)点击NCover Explorer图标,进入运行界面
(2)点击Run Coverage按钮,打开Run NCover 对话框
(3)配置
A. Project Name : 输入工程名(例如:ihou30.KickMuseum.Coverage_build#3101)
B. 若监控进程应用(.exe),则勾选Cover an application,并选择进程运行路径
C. 若监控IIS应用,则勾选Cover a service,并取消Cover an application勾选
D. 点击Run NCover Now 开始监控
3、统计
(1)完成接口测试后,点击Stop Coverage ,开始生成loading coverage data数据。
点击Trends & Statistics,打开趋势静态图。
(2)在Explorer栏选择接口对应API,查看覆盖度统计信息
数据统计项说明:
A. Symbol Coverage为 标志覆盖度
B. Method Coverage为 方法覆盖度
C. Branch Coverage为 分支覆盖度
D. Cyclomatic Complexity为 圈复杂度
E. Num. Classes 为 类文件数
F. Num. Methods为 方法数
4、分析
(1)测试用例总数 VS 代码分支数
以踢馆数据中心接口监控为例:
代码分支数(829) — 测试用例总数(529) = 300
假设接口代码覆盖业务逻辑完全100%,则说明测试用例覆盖不完全,仅覆盖63%。理论上讲,测试用例总数 应大于等于 代码分支数 .
备注:其中代码分指数可通过查看Branch Coverage 获知
(2)测试用例 VS API覆盖度
以数据中心接口监控为例:
在Explorer栏选择已测接口对应API,查看覆盖度。若低于100%,则关联接口工程代码进一步分析。
Step 1 :从SVN 上Check 接口工程代码到本地
Step 2 :根据 .cs文件路径关联代码文件
其中,蓝色背景表示代码行已执行,红色背景表示代码行未执行。若不清楚测试接口与代码API关系,可查看接口Wiki说明文档。
Step 3 :根据代码注释,结合业务逻辑,分析遗漏分支
覆盖度不完全常见原因分析
用例问题
(1) 用例遗漏
A. 接口所有返回码 未覆盖完全
B. 接口对象初始化为NULL 的 情况 未覆盖完全
C. 接口Exception异常处理 的 情况 未覆盖完全
D. 接口参数边界值 的 情况 未覆盖完全
(2) 用例冗余
存在多条用例验证同一业务逻辑或异常的情况。
代码问题
(1) 代码冗余
(2) 代码模块已下线
(3) 代码异常未捕获处理
(4) 自定义参数未使用
5、根据分析结果完善测试用例,重新统计覆盖度
请各位童鞋谨记:
在测试过程中,发现代码覆盖度为100%的接口仍存在缺陷,说明代码覆盖度不能作为代码质量评价的标准,可以作为需求覆盖度的评价标准,即用例设计及用例执行质量评价标准。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端