DO-178C MCDC软件测试

一、基本概念: 单元(Unit)、 条件(Condition)、 决策(Decision)

2. MCDC 四个原则

和1. 每个入口和出口点都被调用(测试第1行和第10行)

  1. 每个判定取所有可能的结果 (测试第7行和第9行,中止(真)或不中止(假))

  2. 判定中的每个条件取所有可能的结果: 条件需要分别测试真和假

  3. 判定中的每个条件都被证明能独立影响结果: 为什么?这仅在条件起作用时------即影响结果时------测试该条件

3. MCDC测试用例

MC/DC 的测试用例设计主要有两种主要形式:(可选择其中一种,或两者结合)

3.1 唯一原因(Unique-Cause)

  • 每次只改变判定中的一个条件

  • 保持其他所有条件不变

  • 同时验证结果的变化

如下图右侧的decision,要覆盖所有条件,需要按照左侧的真值表进行测试(会产生8种测试用例情况):

进一步地结合前述MCDC四原则------每次只改变判定中的一个条件,保持其他条件不变,保留导致结果变化的测试用例(四个6,2,3,4):

在单元测试时,必须进行四次调用,才能完成MCDC测试:

测试用例数量=条件数量+1

3.2 掩码(Masking)

  • 依赖计算机的'短路'求值, 一旦能做出判定就停止求值。

按照"自左向右"计算,如下图,x被标记为"无关变量"

对于没有x这种无关变量的情况,必须全部进行测试,如:

其他选一个测试用例即可。

4. 小结.

在单元测试的时候,开始MCDC测试,MC/DC 软件测试要点总结:

  • • 测试所有有意义逻辑路径的最小集合
  • • 不是代码中所有逻辑路径,而是只测试影响结果的路径
  • • 四种规则确保全面覆盖
  • • 唯一原因:N+1 个测试,每次只变一个条件
  • • 掩码:2*N 个测试,利用短路求值
  • • 可使用 gcov 等开源工具实现
相关推荐
CodeCraft Studio3 个月前
【Parasoft案例分享】在 DO-178C 标准下,如何实现航空嵌入式软件测试自动化
单元测试·自动化·静态分析·代码覆盖率·parasoft·do-178c·软件自动化测试