0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

代码覆盖率分析是否必要

星星科技指导员 来源:嵌入式计算设计 作者:JAY THOMAS 2022-11-01 10:58 次阅读

程序员讨论测试时,经常出现的一个问题是多少才足够?我需要获得100%的保险吗?让我们首先解决房间里的大象:完全测试一个软件是不可能的。不相信我?一书中描述的100行程序有多达1018条独特的路径。实际上,当您意识到当代软件通常超过数十万甚至数百万行代码时,您很快就会意识到完全测试一个软件是多么不切实际。

一次正在度假,接到一个来自世界偏远地区的卫星电话,告诉我我正在执行的任务是“在饮料中”——一种委婉的说法,表明预计飞行的飞行器在水下。最后,它被证明是由于生锈的螺母而导致的故障,但在调查该故障的过程中,我们通过安全关键代码发现了许多路径,这些路径未被我们的测试制度所涵盖。虽然在接下来的几个月里解决了所有问题,但我的假期很难享受,因为我不知道发生了什么。

那么多少软件测试才足够呢?这是任务和安全关键型软件项目解决的问题,可以从中吸取一些宝贵的经验教训。最基本的方法是测试,测量,重复。这里提到的测量是结构覆盖分析,或代码覆盖率。许多行业标准(例如,航空航天的DO-178和汽车的ISO 26262)要求使用代码覆盖率作为证明测试完整性的唯一手段。

结构覆盖率分析是对给定测试或一组测试执行的代码结构的度量。最基本的指标之一,语句覆盖率 (SC),衡量通过测试执行的代码语句。更严格的度量是决策覆盖率 (DC),它包括 SC 的目标以及测量从代码中的每个决策点获取的决策路径。更严格的是修改条件/决策覆盖率(MC / DC),其中包括DC的目标以及测量决策点中每个条件的值。所有这三种测量都是由DO-178标准强制要求的。

代码覆盖率通常以百分比表示,软件测试越彻底,代码覆盖率越高,软件包含缺陷的可能性就越小。

安全关键型软件标准高度关注如何有效地测试软件。他们指出,有效的软件测试需要一种规范的方法,其中代码覆盖率用于提供有关迄今为止测试有效性的反馈。应用于系统的测试严格程度必须由系统故障的影响决定。后果越严重,测试必须越严格。

然而,需要注意的是;100%的覆盖率并不一定转化为有效的测试。以最大化代码覆盖率为目标的测试可能会遗漏代码中的重要问题,而严格测试有助于识别这些问题,例如:

• 与需求相关的错误• 缺少代码

• 与数据流相关的错误

• 争用条件

硬件兼容性/配置

尽管如此,作为测试完整性和严谨性的衡量标准,代码覆盖率是无与伦比的,每个软件开发项目都应该采用。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 飞行器
    +关注

    关注

    13

    文章

    722

    浏览量

    45497
  • 代码
    +关注

    关注

    30

    文章

    4779

    浏览量

    68514
收藏 人收藏

    评论

    相关推荐

    synopsys 的design ware:DW_fpv_div,浮点数除法器,默认32位下,想提升覆盖率(TMAX),如果用功能case去提升覆盖率呢?

    覆盖率只有微微的提升,请问是否要遍历很多数才能提升覆盖率吗?一般这种浮点数有什么方法去跑吗? 每个数都跑岂不是天文数字,本人刚接触不久,请大佬指教下,谢谢
    发表于 10-15 18:38

    利用静态检查工具完善功能安全中测试覆盖率

    在功能安全中测试覆盖率是比较重要的概念,也是在验证过程中通常需要花费时间较多的步骤,如果能借助于静态检查工具的死逻辑查找和声明、测试用例自动补全等功能往往能取得事半功倍的效果。
    的头像 发表于 09-05 09:15 332次阅读
    利用静态检查工具完善功能安全中测试<b class='flag-5'>覆盖率</b>

    智能网联是否是自动驾驶落地的必要条件?

    ;另一种则是智能网联,主张通过车辆与外部环境的互联互通来提升自动驾驶的安全性和可靠性。越来越多的业内人士认为,智能网联是实现全面自动驾驶的关键路径,但这是否意味着智能网联是自动驾驶落地的必要条件?   什么是智
    的头像 发表于 08-29 09:02 298次阅读

    TL084方向比例放大器中的平衡电阻是否必要

    在对一个20mVpp的正弦波做两级10倍放大时,是否需要此电阻。如需要,是否对电路输入阻抗造成影响。这个电阻在模电课程中是必要的,可是在Ti的模电工程师手册中却被省去。
    发表于 08-02 08:44

    2025年智能水表将覆盖全北京!超声波测量技术助力智能水表实现全天候高精度流量监测

    北京日报报道,预计到“十四五”规划期末,北京市将基本实现智能远传水表的全覆盖。据2023年3月22日的数据显示,北京市自来水集团已经为用户安装了超过330万支智能远传水表,覆盖率超过了50%。
    的头像 发表于 07-19 16:05 645次阅读
    2025年智能水表将<b class='flag-5'>覆盖</b>全北京!超声波测量技术助力智能水表实现全天候高精度流量监测

    瑞萨RX MCU功能安全解决方案简介(4-2)SIL3系统软件包

    经证明,功能安全平台软件执行的自我诊断和交叉监测的诊断覆盖率可以达到90%。
    的头像 发表于 07-08 18:33 1298次阅读
    瑞萨RX MCU功能安全解决方案简介(4-2)SIL3系统软件包

    单元测试工具TESSY 新版本亮点速览:提供测试驾驶舱视图、超级覆盖率代码访问分析、增强覆盖率审查

    各种测试对象和方法的所有覆盖率测量结果,并记录在新的测试总结报告中。 了解更多TESSY新版本功能详情或申请免费试用,欢迎咨询TESSY中国授权分销商——龙智。 新版本功能亮点速览: 1、超级覆盖率 逐行评估源代码。 基于标准
    的头像 发表于 07-08 16:20 429次阅读
    单元测试工具TESSY 新版本亮点速览:提供测试驾驶舱视图、超级<b class='flag-5'>覆盖率</b>、<b class='flag-5'>代码</b>访问<b class='flag-5'>分析</b>、增强<b class='flag-5'>覆盖率</b>审查

    该如何提高代码容错、降低代码耦合度?

    提高RT-Thread代码的容错和降低耦合度是确保代码质量和可维护性的关键,下面列举了几种在编写代码时,提高代码容错
    的头像 发表于 06-26 08:10 651次阅读
    该如何提高<b class='flag-5'>代码</b>容错<b class='flag-5'>率</b>、降低<b class='flag-5'>代码</b>耦合度?

    如何将SystemVerilog断言属性和覆盖属性置于在设计上?

    功能覆盖、激励生成和运行管理是当今功能验证的三大相互关联的任务。其中,功能覆盖率可以说是最重要的,主要是因为覆盖率收敛是tape的主要标准。
    的头像 发表于 05-28 10:30 748次阅读
    如何将SystemVerilog断言属性和<b class='flag-5'>覆盖</b>属性置于在设计上?

    AI(VSO)赋能的VCS验证流程

    本质是让设计人员聚焦于修复BUG,而不是花时间发现BUG。将需要大量人力的工作交給AI,极大的推动了覆盖率收敛的速度。
    发表于 03-01 14:04 1195次阅读
    AI(VSO)赋能的VCS验证流程

    手动检测是否被入侵

    Gitlab代码是否又被修改过,用gitdiff查看 查看代码的日志 代码是否有被改动过 查看服务器日志
    发表于 02-29 10:45 1017次阅读

    PSOC4如何通过代码修改串口波特

    由于项目需要,需要实时改变串口波特,PSOC4如何通过代码修改串口波特?谢谢
    发表于 02-19 07:40

    代码静态测试工具Helix QAC 2023.4新发布

    Helix QAC 2023.4 为新的 MISRA C++:2023 指南推出了 100% MISRA C++:2023® 规则覆盖率。此版本还包括扩展的 C++20 语言支持、数据流分析的性能改进以及整个产品中的许多产品体验增强功能。
    的头像 发表于 01-13 12:25 488次阅读
    <b class='flag-5'>代码</b>静态测试工具Helix QAC 2023.4新发布

    怎么用Vivado做覆盖率分析

    在做仿真的时候往往会去做代码覆盖率和功能覆盖率分析,来保证仿真是做的比较充分完备的。
    的头像 发表于 01-03 12:34 1646次阅读
    怎么用Vivado做<b class='flag-5'>覆盖率</b><b class='flag-5'>分析</b>

    电机定子槽满是否越高越好?

    电机定子槽满是否越高越好? 电机定子槽满指的是定子槽中绕组占据的比例。在设计电机时,定子槽满的高低会直接影响电机的性能,但并不意味着越高越好。本文将从不同角度
    的头像 发表于 12-25 11:47 1515次阅读