1.一种基于蒙特卡洛树搜索的EFSM可执行测试序列生成方法,其特征在于:应用蒙特卡洛树搜索算法建立EFSM对应的TEA树,从中找到一条满足测试覆盖条件的路径,该路径即为可执行测试序列且该路径及其路径上每条变迁的输入、输出构成一个完整的测试用例。
2.根据权利要求1所述的EFSM可执行测试序列生成方法,其特征在于:所述蒙特卡洛树搜索算法的具体实施方式为:首先建立EFSM对应的TEA树,所述TEA树中每个节点即对应一个状态且节点包含对应的状态名称以及整个EFSM的变量;从给定的起始状态即根节点开始进行搜索,当某个节点存在有多条输出变迁时,通过计算每条输出变迁的UCT值,经过对应UCT值最大的输出变迁搜索到下一个节点,且每经过一条变迁需查看走过的路径是否已包含所有测试目标变迁,若是则搜索结束,输出路径作为可执行测试序列,否则继续搜索。
3.根据权利要求2所述的EFSM可执行测试序列生成方法,其特征在于:所述UCT值的计算表达式如下:
其中:N为当前节点,N'为N的父节点,UCT(N)为节点N与N'之间变迁的UCT值,Q(N)为当前节点N的累计奖励值,V(N)为当前节点N的被访问次数,V(N')为父节点N'的被访问次数,η为给定的权重系数。
4.根据权利要求3所述的EFSM可执行测试序列生成方法,其特征在于:所述累计奖励值Q(N)的计算表达式如下:
其中:Δ(Ni)为在对当前节点N进行第i次蒙特卡洛树搜索过程的模拟仿真阶段中终端节点Ni的奖励值,budget为蒙特卡洛树搜索的搜索开销上限,n为TEA树中当前节点N至根节点路径上已覆盖的测试目标变迁数量,|TS|为所要求覆盖的测试目标变迁数量,|Ni.ω|为在对当前节点N进行第i次蒙特卡洛树搜索过程中根节点到终端节点Ni的路径深度,Max为蒙特卡洛树搜索所设定的最大探索深度。
5.根据权利要求4所述的EFSM可执行测试序列生成方法,其特征在于:所述搜索开销上限budget通过以下关系式确定;
其中:|TS|为所要求覆盖的测试目标变迁数量,Max为蒙特卡洛树搜索所设定的最大探索深度,|N.path|为当前节点N到根节点的路径深度,μ为给定的开销参数,用于控制budget的缩放。
6.根据权利要求5所述的EFSM可执行测试序列生成方法,其特征在于:所述蒙特卡洛树搜索算法在继续搜索的过程中,若超过所设定的最大探索深度Max,仍未找到一条从根节点起覆盖所有测试目标变迁的路径,则重新从根节点开始探索或增大最大探索深度Max或增大开销参数μ。
7.根据权利要求1所述的EFSM可执行测试序列生成方法,其特征在于:该方法将EFSM可执行测试序列生成问题转化为一个基于TEA树搜索的马尔科夫决策过程,并应用蒙特卡洛树搜索算法进行求解。
8.根据权利要求1所述的EFSM可执行测试序列生成方法,其特征在于:该方法建立了TEA树和蒙特卡洛树搜索算法的融合机制,利用蒙特卡洛树搜索算法来预测TEA树中节点的扩展合理性,即在每次TEA树扩展节点时,建立一棵以蒙特卡洛树搜索方式建立的TEA子树,利用这棵TEA子树状态空间信息选择更合理的扩展方向。