1

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

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

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

4

1 回答 1

1

你的问题很典型。一个例子是控制器/软件,它确定车辆中换档器的位置——位置 PRND 需要从杠杆的电气转换中确定。如果您考虑跳过转换和发生的电气故障,您将获得一个大/无限的空间。这种软件具有最高的安全级别,因为它可能会导致意外的扭矩。

ModelJUnit、NUnit 等工具可用于教育/工具开发目的。您可以研究代码、编辑代码并实现自己的实验算法。

另一方面,未经修改,他们无法解决您提到的问题:状态空间/过渡爆炸等。这就是为什么专业工具使用非常复杂的方法来处理大/无限空间的原因:

  • 充分的象征性探索
  • 约束求解器
  • 切片

它们通常可以在无限模型上产生需求覆盖率、mc/dc 等结果,因为算法不需要在探索期间扩展整个空间。您可以查找的工具示例如下:

  • 符合
  • 规格浏览器
于 2015-11-03T17:20:56.647 回答