zoukankan      html  css  js  c++  java
  • 功能覆盖率

    随着各种设计变得越来越复杂,采用受约束的随机测试方法(CRT)是对它们进行全面验证的唯一有效途径。无论是随机的还是定向的激励,都要使用覆盖率来度量测试进行的程度。

    覆盖率的类型

    覆盖率是衡量设计验证完成程度的一个通用词。随着测试逐步覆盖各种合理的组合,仿真过程会慢慢勾画出你的设计情况,覆盖率工具会在仿真过程中收集信息,然后进行后续处理并得倒覆盖率报告。通过覆盖率报告找出覆盖率盲区,然后修改现有测试或者创建新测试来填补这些盲区。这个过程一直迭代进行,直到你对覆盖率满意为止。

    代码覆盖率

    衡量验证进展的最简易的方式是使用代码覆盖率。这种方式衡量的是多少行代码已经被执行过。代码覆盖率衡量的是测试对于设计规范的“实现”究竟测试得有多彻底,而非针对验证计划。

    功能覆盖率

    验证的目的就是确保设计在实际环境中的行为正确。设计规范里详细说明了设备应该如何运行,而验证计划里则列出了相应的功能应该如何激励、验证和测量。

    功能覆盖率是和设计意图紧密相连的,有时也称为”规范覆盖率“,而代码覆盖率则是衡量设计的实现情况。

    漏洞率

    衡量覆盖率的一个间接的方式是查看新漏洞出现的比率。

    断言覆盖率

    断言是用于一次性地或一段时间内核对两个设计信号之间关系的声明性代码。它可以跟随设计和测试平台一起仿真。

     

    功能覆盖率策略

    在动手写测试代码之前,你需要预先弄清楚相关设计的关键特性、边界情形和可能故障模型。这其实就是验证计划的内容。

    (1) 收集信息而非数据

    (2) 只测量你将会使用到的内容

    (3) 测量的完备性

     

    参考文献:

    [1] Chris Spear. SystemVerilog验证测试平台编写指南. 科学出版社. 2009,09.

  • 相关阅读:
    创建型设计模式之-单例
    设计模式(1、创造型2、结构型、3行为型)
    手写IOC容器和两种注入(构造方法注入和属性注入)
    从依赖倒置原则到IOC控制反转
    自定义HttpHandler可以做什么
    一个用户在浏览器上输入网址怎么走到我们写的.net程序中的,请求到管道处理
    代理Nginx
    .Net Expression表达式目录树(自己动态创建表达式目录树)
    canvas绘制圆环进度条
    城市二级联动
  • 原文地址:https://www.cnblogs.com/dpc525/p/5401504.html
Copyright © 2011-2022 走看看