文章目录
功能覆盖率是用来衡量哪些设计特征已经被测试程序测试过的一个指标。
1 为什么需要功能覆盖率?
如果是定向测试,测试中的覆盖率是隐含的,设计规范列出了100个特征,需要做的就是完成100个测试,如果完成了50个,则覆盖率为50%。
对于复杂的设计,需要使用受约束的随机测试方法(CRT),此时不需要手工逐行输入激励,却需要根据验证计划编写代码来追踪测试的有效性。显示的功能覆盖率衡量了测试的进度。
2 怎么收集覆盖率?
通过改变随机数种子,就可以反复运行同一个随机测试平台来产生新的激励。每一次仿真都会产生一个带有覆盖率信息的数据库,记录随机游走的轨迹。把这些信息全部合并在一起就可以得到功能覆盖率,从而衡量整体的进展程度。
3 怎么收敛覆盖率?

- 改变随机数种子获得功能覆盖率数据。
- 分析覆盖率数据决定如何修改测试集。
- 覆盖率稳步增长:添加新的随机种子继续运行现有测试,或加长运行时间。
- 覆盖率增速放缓:添加额外的约束产生更多激励。
- 覆盖率稳定而某些部分未测试过:创建更多新的测试。
- 覆盖率接近100%而不停发现错误:没有真正覆盖设计中的某些区域。
4 覆盖率有哪些类型?
- 代码覆盖率
- 功能覆盖率
- 漏洞率
- 断言覆盖率
深度解析:功能覆盖率、策略与测量方法在软件测试中的关键应用

本文探讨了功能覆盖率的重要性,如何通过随机测试和覆盖率指标来衡量设计特征的测试进度,包括代码覆盖率的衡量标准、功能覆盖的测量方法和覆盖组的概念。同时,还介绍了收敛覆盖率的策略,以及功能覆盖的几种类型如漏洞率和断言覆盖率。最后,文章提供了针对不同设计阶段的测试策略和关键实践技巧。
最低0.47元/天 解锁文章
319

被折叠的 条评论
为什么被折叠?



