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

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

3天内不再提示

100%代码覆盖率分析是否必不可少

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

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

覆盖率分析是软件安全的重要组成部分,但随之而来的是两个问题 - 覆盖率是多少 - 以及我如何最大限度地减少实施流程所涉及的工作量。让我们看一下安全关键流程标准的指南,看看它们如何讨论覆盖范围,以及覆盖范围如何影响风险管理。我们还将考虑实施工作 - 基本规则是从简单开始并建立 - 并尝试了解这些因素如何结合在一起。

在现实生活中 – 从选择承保级别的实际角度来看,始终从报表承保范围开始,并在必要时从那里开始工作。DO-178 和 ISO 26262 的指南可帮助您确定适合您项目的覆盖级别。这两个标准都要求进行系统安全评估,以确定故障的影响和系统目标故障率,这反过来又定义了证明系统已经过适当测试所需的测试级别。毋庸置疑,失败的影响越大,测试效果必须越严格。然后强制要求适当级别的代码覆盖率,以证明已达到适当的测试级别。

这导致了一些问题,例如您的系统对您的任务有多重要?我应该以什么样的故障率为目标?下表提供了一些关于选择美国联邦航空管理局 (FAA) 就 DO-178 讨论的适当覆盖范围级别的指导。

450-LDRA+Table.jpg.jpg

代码覆盖率作为测试严格性的衡量标准必须谨慎应用。例如,在没有测试计划的情况下执行系统所实现的覆盖范围是不合适的。执行必须由测试计划和需求驱动。通常,安全关键软件标准的指导是,为了证明适当的测试严格程度,测试必须由需求驱动并在系统级别执行。但是,根据适当的要求,您可以使用在单元级别驱动的测试来补充此测试。只有这样,才适合使用覆盖率分析来衡量测试的完整性。

在实践中,从系统级测试中实现 100% 的代码覆盖率既不合适也没有必要。实现系统的最大代码覆盖率是一个迭代过程。使用代码覆盖率结果作为反馈,可以识别测试过程中的缺陷,例如缺少需求、缺少测试用例、无法访问、不需要或失效/停用的代码。然后可以添加测试用例,解决需求,重构代码以解决提出的问题。然后可以更新和重复测试,直到满足项目的测试效果目标。这可能包括考虑未使用的代码(例如,当仅使用部分开源组件时)或用测试工具的结果增强系统级测试结果,甚至代码检查。

在选择有助于进行覆盖率测量的工具时,请务必注意,并非所有覆盖率分析工具都是平等的,选择错误的工具可能会损害您准确测量覆盖范围的能力,或者更糟的是,提供不正确的结果。以下是选择覆盖范围分析工具时需要考虑的一些问题:

• 覆盖率测量实施的内存占用量是多少,尤其是在测试嵌入式系统时?

• 该工具是否支持您的嵌入式系统?

• 运行时数据的内存占用量是多少?您的系统是否有足够的内存来进行有意义的测量?

检测是否会影响系统运行时行为?

DO-178 通过要求必须验证用于测量代码覆盖率的任何工具,以便在目标环境中产生准确、可靠的结果,从而为这些决策提供指导。因此,您需要确保您选择的工具符合 DO-178 的要求,以便可以放心地使用它产生的结果,而无需进一步验证。检查工具的谱系。

代码覆盖率 — 提供基本保证

任何软件项目的代码质量都可以从应用安全关键标准中的一些简单指南中受益。为了控制测试的有效性,必须使用代码覆盖率来衡量测试的影响,使用适合软件所需的测试严格程度的代码覆盖率级别。为了确保测试的严格性达到适当的水平,所有测试都必须基于需求并在系统级别执行。测试,测量,重复。如果没有代码覆盖率分析,就不可能获得提高测试有效性所需的反馈、知识和理解。选择覆盖范围分析工具时,请确保选择 DO-178 限定工具,以确保选择具有适当谱系的工具。通过遵循这些准则,任何软件项目都可以达到安全关键系统通常预期的软件质量水平。

审核编辑:郭婷

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

    关注

    5056

    文章

    18950

    浏览量

    301494
  • 代码
    +关注

    关注

    30

    文章

    4708

    浏览量

    68176
收藏 人收藏

    评论

    相关推荐

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

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

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

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

    时序逻辑电路必不可少的部分是什么

    时序逻辑电路必不可少的部分是 存储电路 ,这一结论主要基于时序逻辑电路的基本工作原理和特性。存储电路在时序逻辑电路中扮演着至关重要的角色,它使得电路能够存储和记忆之前的状态信息,并在需要时根据这些
    的头像 发表于 08-28 14:12 284次阅读

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

    各种测试对象和方法的所有覆盖率测量结果,并记录在新的测试总结报告中。 了解更多TESSY新版本功能详情或申请免费试用,欢迎咨询TESSY中国授权分销商——龙智。 新版本功能亮点速览: 1、超级覆盖率 逐行评估源代码。 基于标准
    的头像 发表于 07-08 16:20 369次阅读
    单元测试工具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 532次阅读
    该如何提高<b class='flag-5'>代码</b>容错<b class='flag-5'>率</b>、降低<b class='flag-5'>代码</b>耦合度?

    频谱分析仪的分辨带宽100和160的区别

    分辨能力。本文将详细探讨分辨带宽100和160的区别,并分析其在不同应用场景下的适用性。 一、分辨带宽的概念 分辨带宽是指频谱
    的头像 发表于 06-03 09:49 386次阅读

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

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

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

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

    追求卓越制造,ECRS工时分析必不可少!#工时分析

    软件
    VIOOVI
    发布于 :2024年01月10日 10:31:14

    怎么用Vivado做覆盖率分析

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

    软件代码结构化覆盖测试-MC/DC覆盖

    MC/DC的全称是Modified Condition/Decision Coverage,修正条件判定覆盖率。很多文章对于定义的解释都比较专业,通常也会让人感觉理解困难,本文我们用通俗易懂的说明给大家做介绍。
    的头像 发表于 12-15 15:22 2879次阅读
    软件<b class='flag-5'>代码</b>结构化<b class='flag-5'>覆盖</b>测试-MC/DC<b class='flag-5'>覆盖</b>

    ADA4961、AD8352是否支持覆盖低频段,如100kHz~10MHz?

    ADA4961、AD8352是否 支持覆盖低频段,如100kHz~10MHz? 我看到datasheet里面性能测试曲线都才到10MHz,但是我的应用需要支持到100kHz。
    发表于 11-22 07:25

    GSM覆盖增强技术和超远覆盖原理的研究分析

    电子发烧友网站提供《GSM覆盖增强技术和超远覆盖原理的研究分析.pdf》资料免费下载
    发表于 11-17 16:36 0次下载
    GSM<b class='flag-5'>覆盖</b>增强技术和超远<b class='flag-5'>覆盖</b>原理的研究<b class='flag-5'>分析</b>

    基于体系结构和基于流的DFT方法

    与嵌入式RAM,多个时钟域,复位线和嵌入式知识产权的对抗可能会对设计进度产生重大影响。尽管处理了所有这些问题,但很少能实现100%的故障覆盖率。因此,ASIC设计经常以低于90%的故障覆盖率进入生产,导致不必要的器件缺陷
    的头像 发表于 11-10 17:01 495次阅读

    静态代码分析工具Helix QAC 2023.3:将100%覆盖MISRA C++:2023®规则

    Helix QAC 2023.3预计将于2023年第四季度发布的新MISRA C++®指南,将100%覆盖MISRA C++:2023®规则。 此外,此版本扩展了对C++20语言支持,并改进了Perforce Validate平台和Helix QAC与Validate的集
    的头像 发表于 11-08 18:37 487次阅读
    静态<b class='flag-5'>代码</b><b class='flag-5'>分析</b>工具Helix QAC 2023.3:将<b class='flag-5'>100</b>%<b class='flag-5'>覆盖</b>MISRA C++:2023®规则