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



假设我给tool任何逻辑表达式作为每个信号定义的输入,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**    
  1. 为表达式生成一个真值表(在这种情况下是2^6个事例)
  2. 从真值表中选择适合MCDC的案例。让我们以你的表达为例。对于C1:选择只有C1和OUT改变状态的情况(从TRUE到FALSE);其他条件不会改变状态

看看这些工具用C#和C++编写。

是的,您可以创建一个工具来创建truthtable和创建测试向量。我在C++中就是这么做的。你可以在这里找到:

MCDC

布尔表达式将被解析、编译为虚拟机并进行评估。这给出了一个真值表。奎因&麦克罗斯基被用来产生一个无冗余的正规形式

并且,该工具显示所有MCDC测试对,包括Msking和"唯一原因+掩蔽"

相关内容

最新更新