为 MBT 动态创建 EFSM

Dynamically creating EFSM for MBT

在我尝试建模的示例中,随着在 FSM 中采取的每一步,模型的复杂性呈指数增长。然而,FSM 如何增长的规则很容易用代码描述,但无法手工建模。使模型难以手动创建的原因是随着 FSM 的进行,每个节点可能发生大量转换。状态的数量不是很多,但是转换的数量是巨大的!

我一直在尝试使用 ModelJUnit,但据我所知,此工具仅支持完全预定义的模型。

所以我的问题是,是否有任何基于模型的测试工具支持为被测系统动态创建 FSM,如上文所述?

你的问题很典型。一个例子是 controller/software,它确定了车辆中换档器的位置 - 位置 P R N D 需要根据杠杆的电气转换来确定。如果您考虑到跳过转换和发生的电气故障,您会得到 large/infinite space。这种软件具有最高的安全级别,因为它可能会导致意外的扭矩。

ModelJUnit、NUnit 等工具可用于 educational/tool 开发目的。您可以研究代码、对其进行编辑并实施您自己的实验算法。

另一方面,未经修改的它们无法解决您提到的问题:状态 space/transition 爆炸等。这就是为什么专业工具使用非常复杂的方法来处理 large/infinite space小号:

  • 完整的符号探索
  • 约束求解器
  • 切片

它们通常可以产生像需求覆盖率这样的结果,mc/dc 即使在无限模型上也是如此,因为算法不需要在探索期间扩展完整的 space。 您可以查找的工具示例如下:

  • Conformiq
  • 规格浏览器