【问题标题】:using genetic algorithm to generate test sequences based on extended finite state machine基于扩展有限状态机的遗传算法生成测试序列
【发布时间】:2016-04-23 09:03:23
【问题描述】:

我想使用遗传算法生成基于扩展有限状态机 (EFSM) 的测试序列。基于EFSM的测试面临遗传算法在可行路径上的问题。我的覆盖标准是过渡覆盖。我有一个系统的 EFSM 模型,它具有输入参数和从一种状态到另一种状态的转换的保护。所以通过使用这个 EFSM 模型,我想生成测试序列。但我对如何开始感到困惑。我的意思是如何生成初始种群。 实际上,我的研究是关于基于 EFSM 的测试用例生成。我有一个 ATM 机模型。这个模型由状态和转换组成。转换具有输入参数的保护和操作。现在我想为这台机器生成测试用例。我的意思是基于模型的测试。对于此任务,必须不存在可行路径。我的意思是每个转换都应该包含在测试用例中。所以为了这个目的,我需要生成测试序列。遗传算法有利于路径优化。但我不知道如何在遗传算法中使用我的模型规范并生成测试序列。

【问题讨论】:

  • 你可以提供更多细节,比如算法流程、你尝试过/想要什么、最小的模型结构等。否则人们容易混淆,你可能不会得到任何帮助。
  • 生成一组示例来填充您的初始群体,然后您应该能够提出算法来生成随机集。

标签: genetic-algorithm


【解决方案1】:

考虑到后果,我将通过在 FSM 图中使用随机游走来简化总体部分的随机创建(暂时不考虑布尔约束) - 这就像从正则表达式生成示例(或转换您的 FSM 进入换能器,在输出上产生输入并通过它)。一旦生成了许多足够长的随机示例,您就可以使用 _E_FSM 部分对它们进行验证。鉴于其中许多可能无效,您可能会考虑一些“修复”策略 - 修复未验证但距离正确不远的个人(您必须自己提出启发式方法)。那么你的人口实际上是一组个体(所以你进化了一组人口),你的评估指标将是集合级别的覆盖率。此外,我要么不使用交叉运算符,要么确保只有有效点和个人交叉。突变将在图中选择一个点并随机走一条不同的路径。解决方案的草图就是这样(我用 GA 成功解决了一个类似的问题)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-16
    相关资源
    最近更新 更多