如何提高测试用例覆盖率?阿里测试工程师是这样说的_如何提升测试场景覆盖度

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

·1A-2C-3D-E-4G-5H

·1A-2C-3D-E-4F

好处:

·它有助于减少冗余测试。

·路径覆盖率提供了较高的测试覆盖率,因为它覆盖了代码中的所有语句和分支。

缺点:

·测试每条路径既困难又费时,因为许多路径与分支的数量成指数关系。

·在实际业务中,由于数据的关系,许多路径很可能是不通的。

条件覆盖
条件覆盖率检查每个条件的两个结果(true或false)是否均已执行。逻辑判断点的结果仅与检查条件有关。每个条件需要两个测试用例才能实现两个结果。

好处:

·条件覆盖范围相互独立地测量条件。

·条件覆盖对控制流具有更好的敏感性。

缺点:

·类似于分支机构/决策范围,决策点和测试用例指数关系。

·对于多条件测试经常,很难避免用例重复

边界值覆盖
对于那些由于输入数字而发生错误的应用程序,边界值覆盖率指标非常有用。大多数BUG都是发生在边界值处。在边界值覆盖范围内,在等效类的端点处选择测试用例。对于此测试覆盖率示例,以下是需要3位数字作为输入的应用程序的边界值。

·100(最低)

·99(仅低于最小边界值)

·999(最大)

·1000(仅在最大边界值之上)

好处:

·测试小组使用边界值覆盖数据代替测试大量数据集是很容易的。

·边界值覆盖易于使用,因为它易于自动化已识别测试的性质和一致性。

缺点:

·边界值覆盖无法测试两个输入之间的依赖关系。

·边界值覆盖不能覆盖包含布尔函数的代码。

什么是测试覆盖率指标

下面是是5个关键的测试覆盖率指标。

代码级指标
测试执行覆盖率,它也称为已执行测试,是已通过/已执行测试在总测试数量中所占的百分比。

·优点是可以通过统计通过和失败的测试次数来获得测试进度的直观描述。

·缺点是计数通过的测试用例并不能说明这些测试的质量。例如,某些测试可能会通过,但是在某些非正常时候,程序会触发一些BUG。

功能测试指标
需求范围
需求覆盖率用于确定测试用例满足软件需求的程度。为此,测试工程师只需要将发布或项目的需求数量除以范围需求的总数即可。

测试范围
在需求模块中,可以通过将测试用例链接到需求来统计测试覆盖率。测试覆盖率评估测试或需求变更的影响。通过覆盖多个用例,用需求覆盖测试配置可以提供更精细的粒度。

用例质量
此度量标准用于查看要测试的功能以及符合要求的测试数量。大多数需求包含多个测试用例。了解特定需求正向和逆向的测试场景对于编写特定需求的测试用例非常重要。

测试范围
此标准对利益相关者非常重要,因为它直观展示了应用程序/软件开发对于需求的完成度。

应用程序级别指标

缺陷密度
缺陷密度是对已知缺陷总数的度量除以要测量的软件实体(通常是代码行数、模块数、功能数)的数量。

测试范围
它可以被用于标识需要自动化的模块。如果特定功能的缺陷密度很高,则需要重新测试。为了减少重新测试的工作,可以将已知缺陷的测试用例自动化。

在评估缺陷时,考虑缺陷的优先级很重要。通常较高优先级的缺陷会作为此度量标准的极其重要的一部分而获得更高的权重。

如何衡量测试覆盖率
许多质量检查团队在衡量测试覆盖率时不会考虑的一件事:如何衡量测试覆盖率?如何测量测试覆盖率?

测试覆盖率是根据代码行测得的。这是上面讨论的测试执行覆盖率。例如,如果测试工程师已经通过测试用例执行了800行代码,那么在1000行代码中,改项目的测试覆盖率为80%。

如果需要按需求衡量测试的覆盖率,以专注于测试用例库中的更高效的测试用例。一个好的测试用例可以追溯到实现的需求(包括正向和反向的流程),拥有良好的测试用例所要做的就是建立需求可追溯性。

当然也可以通过涵盖某个版本项目迭代范围内的所有要求,从而实现在项目中的可追溯性。通过建立需求可追溯性,可以在任何时间点了解需求需要的测试范围。

提高测试覆盖率
1.删除无效代码

总覆盖率可以定义为代码覆盖率和测试覆盖率的比率(covered/total)。可以通过减少作为总代码的分母来增加覆盖范围。这可以通过删除Dead代码来实现。良好覆盖率测试可以找到死代码,同样需要删除调试代码和开发人员遗留的测试代码。

可以通过手动测试或使用自动化工具轻松找到无效代码。在删除无效代码之前,测试工程师需要执行功能测试,如果测试完全按照要求执行,则可以删除未使用的代码。测试工程师还可以使用静态测试覆盖率分析工具从源代码中识别未使用的无效代码。

2.删除冗余代码

删除复制的代码可以像删除无效代码一样提高测试覆盖率。

程序中包含基本代码和代码块,这些代码块在程序中具有很搞重复性。如果找到这些复制的代码并将其删除。通过从源代码中删除复制的代码,可以将测试覆盖率提高5-10%。

3.增加设备覆盖率

移动设备和操作系统版本投放市场的节奏具有很强的节奏感,而浏览器(例如Chrome和Firefox)也具有相同的特性。每个发行版不仅带来了测试范围方面的挑战,而且还引入了需要额外测试工作的新特性和功能。为了提高最大的测试覆盖范围,就必需提高设备的覆盖率(硬件和软件)。

衡量移动测试覆盖率的方法是通过使用情况和客户分析来了解。列出软件正式环境中最常用的设备,还需要确保其中包括各个版本的iOS的设备。

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以戳这里获取

上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!**

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以戳这里获取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值