SystemVerilog 验证-测试平台编写指南学习笔记(5):功能覆盖率

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

功能覆盖率是用来衡量哪些设计特征已经被测试程序测试过的一个指标。

1 为什么需要功能覆盖率?

如果是定向测试,测试中的覆盖率是隐含的,设计规范列出了100个特征,需要做的就是完成100个测试,如果完成了50个,则覆盖率为50%。

对于复杂的设计,需要使用受约束的随机测试方法(CRT),此时不需要手工逐行输入激励,却需要根据验证计划编写代码来追踪测试的有效性。显示的功能覆盖率衡量了测试的进度。

2 怎么收集覆盖率?

通过改变随机数种子,就可以反复运行同一个随机测试平台来产生新的激励。每一次仿真都会产生一个带有覆盖率信息的数据库,记录随机游走的轨迹。把这些信息全部合并在一起就可以得到功能覆盖率,从而衡量整体的进展程度。

3 怎么收敛覆盖率?

在这里插入图片描述

  1. 改变随机数种子获得功能覆盖率数据。
  2. 分析覆盖率数据决定如何修改测试集。
    1. 覆盖率稳步增长:添加新的随机种子继续运行现有测试,或加长运行时间。
    2. 覆盖率增速放缓:添加额外的约束产生更多激励。
    3. 覆盖率稳定而某些部分未测试过:创建更多新的测试。
    4. 覆盖率接近100%而不停发现错误:没有真正覆盖设计中的某些区域。

4 覆盖率有哪些类型?

  • 代码覆盖率
  • 功能覆盖率
  • 漏洞率
  • 断言覆盖率

4.1 代码覆盖率

<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ChipWeaver

觉得有用的话点个赞吧 :)

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值