DO-178B及DO-178C中的MC/DC有什么不同?

本文介绍了DO-178B和DO-178C中MC/DC的差异,包括唯一原因、屏蔽和短路MC/DC的概念。MC/DC是一种结构覆盖准则,用于确保软件验证的充分性。DO-178C在原有基础上增加了对耦合条件的处理,提高了覆盖率,以解决DO-178B中的局限性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 背景

MC/DC是在机载软件等安全关键领域被广泛接受、应用的结构覆盖准则。作为一种面向工程应用的准则,MC/DC虽然由来已久,但其解释并非一成不变。当我们将MC/DC应用到基于需求的测试中时,会与相关方对MC/DC本身进行讨论。我们发现,有必要对MC/DC进行一些解释。

作为一种覆盖准则,MC/DC的目的是确保验证过程具有充分性,即能够表明每个条件至少一次正确影响了系统的行为。从这个目的出发,MC/DC可以有多种规则。

实际上,我们一般讨论的MC/DC,是唯一原因(Unique Cause)MC/DC,也即DO-178B中采用的MC/DC。在DO-178C中,MC/DC的定义发生了改变,除唯一原因MC/DC之外,允许采用屏蔽(Masking)MC/DC和短路(Short Circuit)MC/DC。

不同的MC/DC具有不同的适用性。DO-178C的MC/DC定义,极大程度上解决了DO-178B MC/DC不适用于耦合条件的问题。

本文对唯一原因(Unique Cause)、屏蔽(Masking)、短路(Short Circuit)这三类MC/DC进行简要讨论。

2 基本说明

MC/DC(Modified Condition / Decision Coverage),即修改条件/判定覆盖,是一种结构覆盖准则。

DO-178C要求A级软件满足MC/DC结构覆盖,如下图所示。

图1 DO-178C对MC/DC的要求

在DO-178C中定义了如下相关术语:

  • 条件(Condition):不包含布尔运算符(除Not外)的布尔表达式;

  • 判定(Decision):由条件和零个或多个布尔运算符组成的布尔表达式。如果一个条件在一个判定中出现多次,则每次出现都认为是不同的条件。

  • MC/DC:程序中的每个入口和出口点都至少被调用过一次,一个判定中每个条件的所有可能结果都至少产生过一次,每个判定的所有可能结果都至少产生过一次,并且一个判定中的每个条件都独立地影响了该判定的结果。一个条件可以通过以下方式独立影响判定结果:(1)保持所有其他可能的条件不变,改变该条件,或者(2)保持所有其他可能影响结果的条件不变,改变该条件

对耦合条件(coupled condition)说明如下:

  • 弱耦合条件:当一个条件变化可能(也可能不)导致其他条件变化的,相关条件为弱耦合的。例如:对判定A && B,其中A := (x>10), B := (x<20),则A、B为弱耦合条件。

  • 强耦合条件:当一个条件变化必然导致其他条件变化的,相关条件为强耦合的。例如,令A := (x>10), B := (x<=10),则A、B为强耦合条件。

3 唯一原因MC/DC

DO-178B中采用唯一原因MC/DC。所谓唯一原因MC/DC,指构成判定的n个条件中,指定一个条件c作为独立条件,其他所有条件保持不变,条件c的变化(即作为唯一原因)导致判定结果变化。

考虑如下语句:

if A or (B and C)then …,其中A、B、C为布尔变量且相互独立

上述条件语句中,逻辑表达式“Aor (B and C)”为判定,A、B、C为条件。针对该判定,一个可能的MC/DC用例集如下表所示:

表1:A or (B and C)的唯一原因MC/DC用例表

用例编号

A

B

C

判定

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值