多目标测试用例优先排序(Multi-objective Test Case Prioritization, MOTCP)在测试用例集中寻找同时满足多个优化目标的测试用例执行序列,是软件测试领域中的重要研究方向之一。在多个优化目标的作用下,所有最优解形成的集合构成MOTCP...
详细信息
多目标测试用例优先排序(Multi-objective Test Case Prioritization, MOTCP)在测试用例集中寻找同时满足多个优化目标的测试用例执行序列,是软件测试领域中的重要研究方向之一。在多个优化目标的作用下,所有最优解形成的集合构成MOTCP问题的最优解集,即帕累托最优解集(Pareto Front)。在理想的情况下,采用多目标进化算法求解MOTCP问题的过程是一个不断逼近并最终达到帕累托最优解集的过程。但是在实际求解的过程中,多目标的进化算法并不能保证能找到真正的帕累托最优解集。蚁群优化算法(Ant Colony Optimization, ACO)是一种群体智能的启发式优化算法被应用于解决MOTCP问题,但存在收敛速度缓慢且容易陷入局部最优的问题。生物学中,上位效应(Epistatic-Domain Effect)是遗传学中基因相互作用的现象,具体是指一个位点能够掩盖或减弱另一个位点基因效应的表达。MOTCP问题中同样存在上位效应,即在一个可行解中,测试优化目标受不同序列位上的测试用例共同作用,排列在前面的测试用例能够阻止或减弱排列在后面的测试用例对某测试目标的表达。相关研究表明,排列在前端的测试用例序列段能决定MOTCP的适应度值,该段序列被称作是上位基因段(Epistatic-Domain Test Case Segment, ETS)。我们将这种测试用例间的相互关系称作是测试用例优先排序(Test Case Prioritization, TCP)的上位效应。本文将TCP问题的上位效应与多目标蚁群优化算法相结合,提出了一种基于ETS的信息素更新策略,并进一步对蚁群算法进行优化改进,研究一种面向MOTCP问题的基于上位效应的蚁群优化算法。在信息素更新策略中,首先选取ETS作为信息素更新范围;其次,基于蚁群优化算法分布求解的方式,利用测试用例间的适应度增量调整路径上的信息素增量,采用信息素标记测试用例间的上位关系。在保证蚁群算法解集质量的情况下,通过估算ETS长度动态设置蚂蚁遍历测试用例的搜索终点,降低蚂蚁依次访问测试用例序列的时间消耗,进一步提升算法性能。两组对比实验结果表明,上位效应与蚁群算法相结合能够提升求解MOTCP问题时的收敛速度和求解效果。与目前应用最广泛的NSGA-Ⅱ相比较,基于上位效应的帕累托最优解集可以支配NSGA-Ⅱ的帕累托最优解集。
暂无评论