代码覆盖率使用培训
2019-05-07 20:24:59 0 举报
AI智能生成
代码覆盖率
作者其他创作
大纲/内容
代码覆盖率的意义
标志测试是否充分
代码覆盖率低,代表代码质量也存在一定问题
* 质量要求,转测要求,若不满足无法转测或者免测发布
* 转测要求:函数覆盖:95%,分支/条件:80%
使用代码覆盖率
CI构建项目
单元测试
部署
如何查看覆盖率结果以及增量覆盖率结果
查看全量覆盖率
查看增量覆盖率
http://apdcov.oa.com/
帮助手册http://apdcov.oa.com/coverage_test/help/
QA
1、如何提升代码覆盖率?
2、覆盖率包含哪些?
3、分支覆盖率和条件覆盖率有何区别?
if (a > 10 || b > 10)
4、如何确认使用的二进制文件是带覆盖率版本还是不带覆盖率版本?
编译时Bullseye字样
运行时Bullseye字样以及.cov文件
5、覆盖率数据只统计到一部分代码
检查编译过程中是否使用gcc/g++编译,如果不是,可以修改一下makefile的compiler。使用cmake编译的,cmake会记录上次构建的编译路径,可以在编译前重置一下
6、同一台机器上部署了多个带覆盖率编译的模块,运行带覆盖率版本的程序时会报错
在/etc/profile中添加环境变量,export COVFILELIST
值为这台机器上对应的多个模块
7、把带有覆盖率版本的包部署到非构建时指定的测试机上进行测试,要如何操作
8、如果安装包部署在多个环境,需要汇总多台测试机的覆盖率结果
9、覆盖率支持的语言
部门平台仅支持C/C++
10、单测框架选择
boost
catch2
gtest+gmock
mettle
mstest
nunit
qtest
tpunit
11、覆盖率本地跑的可能性?
无法本地跑,需要依赖与CI项目
可以建立专门用于覆盖率的CI项目
12、
上次谈到的分支/条件覆盖率问题,和cherries这边做了交流,我们新增代码所在的分支和条件还是要做覆盖率要求,虽然可能只改了一行代码,但不确定这一行是否对其他分支有影响。
(16年TEG有一起二级故障的案例,开发只改了一行代码,当时评估影响小未进行回归测试,结果灰度时出现了问题,影响到另外一个接口调用)
(16年TEG有一起二级故障的案例,开发只改了一行代码,当时评估影响小未进行回归测试,结果灰度时出现了问题,影响到另外一个接口调用)
13、fork会导致子进程无法统计
子进程同样需要环境变量
14、子主题
其他
准备工作
ajs安装
测试机器安装
0 条评论
下一页