热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

SV基础知识功能覆盖率(概念理解)

功能覆盖率是用来衡量哪些设计特征已经被测试程序测试过的一个指标。使用反馈环路来分析覆盖的结果,并决定采取哪种行动来达到100%的覆盖率。首要的选择式使用更多的种子

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

使用反馈环路来分析覆盖的结果,并决定采取哪种行动来达到100%的覆盖率。

首要的选择式使用更多的种子来运行现有的测试程序,其次是建立新的约束。只有在确实需要的时候才会创建定向测试

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

覆盖率操作流程:

 通过分析覆盖率数据可以决定如何修改测试集。

通过仿真器覆盖率数据分析工具你可以:


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

一、覆盖率的类型


1、代码覆盖率

覆盖率的收集一般只收集设计代码。仿真器都带有代码覆盖率的工具,覆盖率数据也被转换为可读模式。工具会通过分析源代码和增加隐藏代码自动完成代码覆盖率的统计。当完成所有的测试,代码覆盖率工具会创建相应的数据库


  • 行代码覆盖率:衡量的是多少行代码已经被执行过
  • 路径覆盖率:在穿过代码和表达式的路径中有哪些已经被执行过
  • 翻转覆盖率:哪些单比特变量的值为0或1
  • 有限状态机覆盖率:以及状态机中哪些和状态转换已经被访问过

代码覆盖率衡量的是测试对于设计规范的“实现”究竟测试得多彻底,而非针对验证计划,虽然达到100%覆盖率,但是有可能设计代码本身就有缺陷。


2、功能覆盖率

功能覆盖率是和设计意图紧密相连的,有时也被称为“规范覆盖率”,而代码覆盖率则是衡量设计的实现情况。如果某个代码块在设计中被漏掉,代码覆盖率不能发现,但是功能覆盖率可以。


3、漏洞率

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

一个项目中的漏洞率:


 4、断言覆盖率


  • 断言是用于一次性地或在一段时间内核对两个设计信号之间关系的声明性代码。
  • 断言可以拥有局部变量并且可以进行简单的数据检查。
  • 断言最常用于查找错误,一旦检测到问题,仿真就会立即停止。
  • 有些断言会被用于查找感兴趣的信号值或者设计状态。这要用到cover property语句,用于观测信号序列,而覆盖组则对仿真过程中的数值和事务进行采样。覆盖组可以在信号序列结束时触发,序列可以收集信息供覆盖组使用。
  • 使用断言覆盖率可以测量这些断言被触发的频繁程度。

5、


二、功能覆盖策略


1、收集信息而非数据

例如测试一个容量为1K的FIFO存储器,测试它读写地址索引里的数据,这有上百万种可能的组合,只需要成功读出所有的数据即可。设计信号如果数量范围太大的话,应该拆分成小范围再加上边界情形。


2、只测量将会使用到的内容

收集功能覆盖率数据的开销很大,所以应该只测量将会用到的测试内容。在编译、初始化、触发时刻都能控制覆盖率数据,也可以使用条件编译或者对覆盖率信息的收集实行抑制。


3、测量的完备性

覆盖率比较:


三、功能覆盖率的简单例子

待补充。。。


推荐阅读
  • 腾讯安全平台部招聘安全工程师和数据分析工程师
    腾讯安全平台部正在招聘安全工程师和数据分析工程师。安全工程师负责安全问题和安全事件的跟踪和分析,提供安全测试技术支持;数据分析工程师负责安全产品相关系统数据统计和分析挖掘,通过用户行为数据建模为业务决策提供参考。招聘要求包括熟悉渗透测试和常见安全工具原理,精通Web漏洞,熟练使用多门编程语言等。有相关工作经验和在安全站点发表作品的候选人优先考虑。 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • 2018年人工智能大数据的爆发,学Java还是Python?
    本文介绍了2018年人工智能大数据的爆发以及学习Java和Python的相关知识。在人工智能和大数据时代,Java和Python这两门编程语言都很优秀且火爆。选择学习哪门语言要根据个人兴趣爱好来决定。Python是一门拥有简洁语法的高级编程语言,容易上手。其特色之一是强制使用空白符作为语句缩进,使得新手可以快速上手。目前,Python在人工智能领域有着广泛的应用。如果对Java、Python或大数据感兴趣,欢迎加入qq群458345782。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 数字账号安全与数据资产问题的研究及解决方案
    本文研究了数字账号安全与数据资产问题,并提出了解决方案。近期,大量QQ账号被盗事件引起了广泛关注。欺诈者对数字账号的价值认识超过了账号主人,因此他们不断攻击和盗用账号。然而,平台和账号主人对账号安全问题的态度不正确,只有用户自身意识到问题的严重性并采取行动,才能推动平台优先解决这些问题。本文旨在提醒用户关注账号安全,并呼吁平台承担起更多的责任。令牌云团队对此进行了长期深入的研究,并提出了相应的解决方案。 ... [详细]
  • Google在I/O开发者大会详细介绍Android N系统的更新和安全性提升
    Google在2016年的I/O开发者大会上详细介绍了Android N系统的更新和安全性提升。Android N系统在安全方面支持无缝升级更新和修补漏洞,引入了基于文件的数据加密系统和移动版本的Chrome浏览器可以识别恶意网站等新的安全机制。在性能方面,Android N内置了先进的图形处理系统Vulkan,加入了JIT编译器以提高安装效率和减少应用程序的占用空间。此外,Android N还具有自动关闭长时间未使用的后台应用程序来释放系统资源的机制。 ... [详细]
  • 企业数据应用挑战及元数据管理的重要性
    本文主要介绍了企业在日常经营管理过程中面临的数据应用挑战,包括数据找不到、数据读不懂、数据不可信等问题。针对这些挑战,通过元数据管理可以实现数据的可见、可懂、可用,帮助业务快速获取所需数据。文章提出了“灵魂”三问——元数据是什么、有什么用、又该怎么管,强调了元数据管理在企业数据治理中的基础和前提作用。 ... [详细]
  • 合并列值-合并为一列问题需求:createtabletab(Aint,Bint,Cint)inserttabselect1,2,3unionallsel ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • 本文介绍了Windows Vista操作系统中的用户账户保护功能,该功能是为了增强系统的安全性而设计的。通过对Vista测试版的体验,可以看到系统在安全性方面的进步。该功能的引入,为用户的账户安全提供了更好的保障。 ... [详细]
  • ShiftLeft:将静态防护与运行时防护结合的持续性安全防护解决方案
    ShiftLeft公司是一家致力于将应用的静态防护和运行时防护与应用开发自动化工作流相结合以提升软件开发生命周期中的安全性的公司。传统的安全防护方式存在误报率高、人工成本高、耗时长等问题,而ShiftLeft提供的持续性安全防护解决方案能够解决这些问题。通过将下一代静态代码分析与应用开发自动化工作流中涉及的安全工具相结合,ShiftLeft帮助企业实现DevSecOps的安全部分,提供高效、准确的安全能力。 ... [详细]
  • 目录浏览漏洞与目录遍历漏洞的危害及修复方法
    本文讨论了目录浏览漏洞与目录遍历漏洞的危害,包括网站结构暴露、隐秘文件访问等。同时介绍了检测方法,如使用漏洞扫描器和搜索关键词。最后提供了针对常见中间件的修复方式,包括关闭目录浏览功能。对于保护网站安全具有一定的参考价值。 ... [详细]
  • ElasticSerach初探第一篇认识ES+环境搭建+简单MySQL数据同步+SpringBoot整合ES
    一、认识ElasticSearch是一个基于Lucene的开源搜索引擎,通过简单的RESTfulAPI来隐藏Lucene的复杂性。全文搜索,分析系统&# ... [详细]
  • {moduleinfo:{card_count:[{count_phone:1,count:1}],search_count:[{count_phone:4 ... [详细]
  • 开发笔记:Python之路第一篇:初识Python
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Python之路第一篇:初识Python相关的知识,希望对你有一定的参考价值。Python简介& ... [详细]
author-avatar
航头党员之家
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有