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

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

3天内不再提示

MC/DC:与100%覆盖率的斗争

北汇信息POLELINK 2022-11-07 10:11 次阅读

在软件测试领域,MC/DC或许已经是一个耳熟能详的词汇了,但是我们还是要不断强调如何正确使用MC/DC以及它与安全相关的重要作用。

在测试中,想要对所有变量进行100%的测试几乎是不可能的。有限的时间和资本成本也决定了测试人员无法对软件进行彻底完尽的测试。但是,测试是为软件质量保驾护航的关键,不可或缺。所以对测试人员的挑战就在于如何合理的分配测试资源以及最优化地使用这些资源。选择一个“完成标准”并据此对测试目标进行计划和优先排序,这可能是一个测试团队成功与否的关键所在。

测试计划是基于测试目标来制定的,可以有不同的颗粒度。首先,针对测试组织给出的一般定义开始制定计划,对每个测试层级上的测试对象以及每次发布的内容都给出详细的信息。本质上来讲,对测试目标的定义就隐含了衡量信息,从而决定了哪些内容应该测试,哪些内容无需测试。产品的开发阶段和边界条件会最大程度地影响测试目标的制定。

同时,测试也要符合安全标准。在软件测试中,标准是非常重要的,尤其在安全相关的产品测试中。这些标准对安全相关产品的验证提出了很高的要求。IS026262-6中指出,需求覆盖度和结构覆盖度都必须由恰当的覆盖度量来测量。这也可以视作是对验证完整性的评估。对最高安全等级(ASIL-D)的软件来说,单元级的MC/DC(修正条件/判定覆盖)是强烈推荐的。

有些人可能会因此认为MD/DC就是测试目标。实则非也。测试目标的定义是验证被测软件的属性。被测单元正确的功能性应该是测试的首要目标。MC/DC仅仅展示了是否所有的判定和条件都能通过测试,并不能用来验证系统是否正确无误的运行。因此,覆盖度是不能作为测试目标的。

一般来说,覆盖度量只能作为测试完成的标准。测试完成的标准指被测系统在何时被认为是充分测试的。测试目标和测试完成标准都在测试概念中有明确的定义。建议测试人员们在每次版本迭代发布时更新测试概念,以明确具体实施中的变化及其可能带来的影响。

如何提高MC/DC测试效率?

首先,定义基于需求的测试用例。将需求表示为用例和使用需求,例如边界值的考虑或者等价类的构建。这会帮助测试人员验证被测软件是否具备理想中的完整功能。这会帮工作人员开个好头。通过测量代码覆盖度,测试人员可能会发现尚未测试的漏洞,并据此编写相应的测试用例。

覆盖度的目标值是100%。ISO26262要求对那些未达到100%的情况做出解释。如果测试项目中包含一些测试不到的部分,例如用于调试的部分或者并行软件的配置。我们建议直接在报告中阐述覆盖度降低的原因,而不是在测试之前预先设置一个较低的覆盖度目标值。这样能提高整体测试效率,因为测试人员无需在每次改变测试单元时通过复杂的计算重新检查和调整那些需要减少的覆盖度值。

如果通过上述方法测试却没有达到100%的覆盖度,可能是由于以下几个原因:

1. 需求缺失或不完整

2. 测试用例不够

3. 测试用例识别了无效的、不可访问的或禁用的代码,或者非预期的功能

因为ISO26262要求对每一个偏差值都做出合理解释,对相关部分的代码进行可视化能够帮助测试人员快速找出导致问题的原因。(见图1)

poYBAGNlwnaAHBjUAAMP1t2jhnk268.png

测试往往取决于需求的质量以及软件的设计和所选的架构。为了使测试工作尽可能高效,建议测试人员了解软件架构和软件设计对测试过程的影响,以选择合适的架构和设计模式。

因此,测试过程中与软件架构和设计人员的沟通也很重要。软件架构师和设计师是纵观整个软件产品的生命周期,并有机会通过重组和分离对软件发布产生重大影响的人。

TPT与MC/DC

北汇信息和Piketec希望帮助客户轻松快速地满足所需的指标。为了实现这一目标,我们将在TPT 18中增加了两个MC/DC新功能:

1.测量C/C++Simulink的MC/DC覆盖率;

2.使用TPT自动生成测试用例:通过这种方式,用户可以快速且轻松地将覆盖率提高到100%。

我们对算法进行了调整,用尽可能少的测试用例来做MC/DC测试。无需自己创建测试用例,只需要执行和维护最小数量的测试用例即可,也不需要购买额外的测量工具来确定覆盖率,将为客户节省大量的时间和资金成本。

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

    关注

    8

    文章

    5149

    浏览量

    126439
收藏 人收藏

    评论

    相关推荐

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

    公司某个项目用到了这个DW:DW_fpv_div,但是scan跑完,这个模块覆盖率只有60%多,现在要我用TMAX软件,通过功能去覆盖,我看了下rpt报的faults点,尝试去写了几个特殊值去做除法
    发表于 10-15 18:38

    跟踪型DC/DC转换器系列的REFIN引脚的压摆限制

    电子发烧友网站提供《跟踪型DC/DC转换器系列的REFIN引脚的压摆限制.pdf》资料免费下载
    发表于 10-11 09:18 0次下载
    跟踪型<b class='flag-5'>DC</b>/<b class='flag-5'>DC</b>转换器系列的REFIN引脚的压摆<b class='flag-5'>率</b>限制

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

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

    OC58650内置 100V/5A MOS 降压型 DC-DC,电动车车载电源选型参考

    OC58650 是一款支持宽电压输入的开关 降压型DC-DC,最高输入电压 100V。OC58650 具有低待机功耗、高效率、低纹波、优异的母 线电压调整和负载调整等特性。支
    的头像 发表于 08-14 18:00 557次阅读
    OC58650内置 <b class='flag-5'>100</b>V/5A MOS 降压型 <b class='flag-5'>DC-DC</b>,电动车车载电源选型参考

    如何用MC34063设计出一个升降压DC-DC,输出900mA左右

    各位大神高手,求电路图,用MC34063设计出一个升降压DC-DC,输出900mA左右
    发表于 08-06 16:38

    OCE100-规格书

    概述OCE100是一款支持宽电压输入的开关降压型DC-DC,最高输入电压100V。OCE100具有低待机功耗、高效率、低纹波、优异的母线电压调整
    发表于 07-31 11:35 0次下载

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

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

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

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

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

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

    24v-100v DC-DC电源设计

    求24v-100v的DC-DC电源设计,求大佬解答,假如用tl494加推挽升压电路的话,应该怎么计算确定这些参数,有没有啥方法,帖子啥的,或者用别的芯片也行,跪求!!!!
    发表于 06-04 14:23

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

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

    怎么用Vivado做覆盖率分析

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

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

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

    如何帮助MediaTek等公司将芯片调试效率提高10倍?

    验证开发者大约把三分之一的时间都用于提高验证覆盖率以发现缺陷的任务上。
    的头像 发表于 12-09 10:05 883次阅读

    双核锁步安全芯片的关键技术

    在汽车功能安全标准ISO26262-5 2018 产品开发:硬件层面附录D对处理单元的诊断覆盖率推荐的安全技术措施中,作为可实现高诊断覆盖率的几种技术措施之一,硬件冗余技术中,双核锁步、非对称冗余、编码计算是三种典型的技术措施。
    发表于 12-04 14:24 2167次阅读