1.功能覆盖率概述
- 功能覆盖率是衡量哪些设计特征已经被测试程序测试过的一个指标。
- 下图展示了如何使功能覆盖率收敛的大体思路。
- 若没达到100%覆盖率,但是覆盖率一直在增加,那就继续运行更多随机种子;若已经覆盖率稳定则需要考虑修改约束;只有当修改约束来随机仿真去覆盖特定区域最后的边沿情况会耗费太久的时候,才有必要写定向测试。
- 如运行不通过,设计中存在漏洞使得仿真失效,则必须丢弃覆盖率指标。
2.覆盖率分类
2.1代码覆盖率
- 代码覆盖率衡量的是测试对于设计测试的有多彻底,而非针对验证计划。有可能当前的设计并没完全实现设计规范。所以即便达到了100%,也只能说明当前设计都被测试到了,但是无法得知是否完成整个测试计划,更无法得知是否实现设计规范。
- 工具会自动完成代码覆盖率收集,仿真完毕后相应的数据库会被创建。
- 分类:
覆盖率类型 | 含义 |
---|---|
语句覆盖率 | 衡量多少行代码被执行过(行覆盖) |
条件覆盖率 | 运行被测程 |