是否可以使用任何脚本语言自动生成逻辑表达式中的MCDC Truth表作为输入

时间:2016-05-10 05:56:54

标签: automation logical-operators mc-dc

假设我将任何逻辑表达式作为输入与每个信号定义一起提供给工具,Tool应该能够生成MCDC真值表(在Avionics V&V中使用)。如果可能的话,我们也可以实现时序和稳健性吗?

前:

##输入工具

输入:

  Logical Expression: OUT = (C1 ||(C2 && C3 && (C4 || C5 || C6)))

工具的预期输出

 Truth Table:

  TC   C1 C2 C3 C4 C5 C6  INIT  **OUT**   
   1   T  F  T  T  F  F     F    **T**        
   1   F  F  T  T  F  F     T    **T**                                                          
   2   F  T  T  T  F  F     F    **T**                                                        
   2   F  T  F  T  F  F     T    **F**                                                          
   3   F  T  T  F  T  F     F    **T**                                                         
   3   F  T  T  F  F  F     T    **F**                                                          
   4   F  F  T  T  F  F     F    **F**                                                        
   5   F  T  T  F  F  T     F    **T**    

2 个答案:

答案 0 :(得分:1)

  1. 为您的表达式生成一个真值表(在这种情况下,它将是2 ^ 6个案例)。
  2. 从真相表中选择适合MCDC的案例。我们以你的表达为例。对于C1:只有C1和OUT改变状态的挑选案例(从TRUE到FALSE);其他条件不会改变状态。
  3. 看看这些工具 用C#C++写的。

答案 1 :(得分:0)

是的,您可以创建确实创建真值表并创建测试向量的工具。我正是在C ++中做到的。您可以在这里找到它:

MCDC

将对布尔表达式进行解析,为虚拟机编译并进行评估。这给出了一个真值表。 Quine&McCluskey用于生成多余的正态形式。

并且,该工具会显示所有MCDC测试对,包括Msking和“ Unique cause + Masking”