单元测试覆盖率,面试官问项目的单测覆盖率是多少,该怎么回答?

单元测试覆盖率,面试官问项目的单测覆盖率是多少,该怎么回答?

单元测试覆盖率目录

单测增量代码覆盖率统计方案

面试官问项目的单测覆盖率是多少,该怎么回答?

单元测试覆盖率是指在软件开发过程中,针对某个模块或功能,编写的单元测试代码覆盖了该模块或功能的代码行数、分支数、路径数等度量指标的比例。通常用百分比表示,例如一个模块的代码行数为100行,编写了60行的单元测试代码,则单元测试覆盖率为60%。单元测试覆盖率是衡量软件测试质量的重要指标之一,高的单元测试覆盖率可以提高软件的可靠性、可维护性和可扩展性。”

单测增量代码覆盖率统计方案

背景

增量代码扫描数据作为上线准入的重要依据,目前所有测试环境执行的测试均有覆盖率统计,但是部分需求或服务更加适合使用单测进行验证,也有部分RD有单测的好习惯。

单测覆盖率的缺失无法通过覆盖率分析补充case也对上线准入评估造成了一定的困扰。

因此,我们将单测的增量代码覆盖率融合至测试环境覆盖率中,解决以上问题。

整体方案

用例平台

1、持续集成平台将工程名称,分支名称,git地址信息传给单测平台,平台根据这些信息下载源码

2、更改源码里的pom.xml 文件。

引用插件 maven-surefire-report-plugin

插件的特点:

结果:

打开surefire-report.htm 可以查看执行case数量,执行通过率,执行失败的具体方法以及失败原因。

3、用jacoco生成单元测试覆盖率

在执行mvn命令时,加上“org.jacoco:jacoco-maven-plugin:prepare-agent”参数即可。

其中,jacoco-maven-plugin后面跟的是jacoco的版本;【-Dmaven.test.failure.ignore=true】建议加上,否则如果单元测试失败,就会直接中断,不会产生.exec文件。

执行以上命令后,会在当前目录下的target目录产生一个jacoco.exec文件,该文件就是覆盖率的文件:

4、生成的jacoco.exec文件传给覆盖率统计系统。

覆盖率平台

1、增加覆盖率统计任务

用例平台收到执行单测任务时,会调用覆盖率平台创建覆盖率任务接口,将源码地址,jar包的ftp地址, 以及代码分支等数据传递给覆盖率平台,覆盖率平台建立覆盖率任务并做一些提前准备工作:下载源 码、jar包以及进行codediff,并将diff结果存到数据库。

2、统计覆盖率

回顾一下之前 on-the-fly方式的差异代码覆盖率方案 ,代码执行轨迹是当测试人员点击覆盖率按钮时,实时从测试服务器上获取的。

从图中可以看到,如果我们把测试服务器的部分任务由用例平台来完成,就可以在基本上不变动代码的情况下完成单测增量代码覆盖率的统计。

主要逻辑:

面试官问项目的单测覆盖率是多少,该怎么回答?

你可以把自己学的专业说一个大概就可以了,这是面试官测试你所专业的知识,和考你的反应能力

给TA打赏
共{{data.count}}人
人已打赏
python

sqrt是求什么的函数,函数sqrt是什么意思

2024-3-30 11:45:35

python

打印机出现replace toner

2024-3-30 11:53:30

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索
打开微信,扫描左侧二维码,关注【旅游人lvyouren】,发送【101】获取验证码,输入获取到的验证码即可解锁复制功能,解锁之后可复制网站任意一篇文章,验证码每月更新一次。
提交