功能覆盖率 是用来衡量哪些设计特征已经被测试程序测试过的一个指标。
使用反馈环路来分析覆盖的结果,并决定采取哪种行动来达到100%的覆盖率。
首要的选择式使用更多的种子来运行现有的测试程序,其次是建立新的约束。只有在确实需要的时候才会创建定向测试。

显式的覆盖率是在测试环境中使用SV特性直接描述的,隐含的覆盖率则是暗藏在测试中。 收集覆盖率数据,可以通过改变随机种子,就可以反复运行同一个随机测试平台来产生新的激励,每一次仿真都会产生一个带有覆盖率信息的数据库,记录随机游走的轨迹。
覆盖率操作流程:

通过分析覆盖率数据可以决定如何修改测试集。
通过仿真器覆盖率数据分析工具你可以:
- 运行一个带多个种子的测试。使用不同的随机种子反复地运行这个约束集。
- 检查运行通过与否。功能覆盖信息只在仿真运行成功时才有效,当由于设计里存在漏洞而使得仿真失败时,必须丢弃覆盖率信息。
- 分析通过多次运行得到的覆盖率。如果约束所指向的区域还没有达到100%覆盖率,但是覆盖率一直在增加,那么就继续运行更多的种子。如果覆盖率已经稳定下来,不再继续增长,那么就应该考虑修改约束,最后必要时考虑编写定向测试。

本文探讨了功能覆盖率的重要性,介绍了如何通过反馈环路、代码和功能覆盖率类型、断言覆盖率,以及策略如收集信息而非数据和完备性比较来提高测试效率。通过实例和覆盖率工具的使用,揭示了如何优化测试集并达到100%覆盖率。

1744

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



