基于Spark的并行化组合测试用例集生成方法
软件系统的正常运行受很多因素影响,各种因素及其相互作用可能引发软件故障,需要设计测试用例检测这些故障.如果因素数量较多且取值情况较复杂,则所需测试用例的数量将非常庞大.如何设计规模较小的用例集是测试用例生成研究的一个关键问题.组合测试能够从待测软件的大规模组合空间中,生成小规模的用例集,实现对各因素取值组合的充分覆盖.已有研究表明,组合测试的最小测试用例集生成问题是一个NP完全问题.目前已有一些研究尝试使用启发式搜索算法生成尽可能小的用例集.启发式搜索算法将组合测试用例集生成问题转化为搜索问题,并使用元启发式算法生成用例集.启发式搜索算法通常能够生成较小规模的用例集,但需要较长的计算时间.为了解决这个问题,文中提出了一种基于Spark的岛模型并行化遗传算法,利用Hadoop分布式文件系统实现了Spark运行节点间交换信息的方法,进而实现个体在子种群间的迁移.该算法首先从初始种群创建Spark的弹性分布式数据集;然后,将该数据集划分为多个子种群分布到集群的多个节点中;接着,各个子种群在各自的节点上计算适应度函数值和独立进化,并每隔一定的进化代数选择一些个体在各个子种群间迁移,提高了种群的多样性以及搜索最优解的有效性和性能;最后,算法返回满足覆盖准则的最优测试用例集.这种基于Spark的并行化遗传算法是大规模并行化在组合测试用例集生成方面的一个有效尝试.在实验部分,首先对文中提出的并行化算法进行系统的参数调整,给出适合组合测试用例集生成的推荐参数配置;接着将文中所提算法与串行遗传算法和独立运行遗传算法进行比较.实验结果表明,文中所提算法在生成用例集规模和消耗时间上均显著优于这两个算法.在运行所选实例时,该算法比串行算法加速约4至30倍,比独立运行遗传算法加速约2至3倍.相对于已有的组合测试用例集生成方法,文中所提算法在生成用例集规模上也具备显著优势.
组合测试、测试用例集生成、并行化遗传算法、岛模型、Spark
41
TP311(计算技术、计算机技术)
国家重点研发计划2016YFC0400910;国家科技支撑计划2013BAB06B04;中央高校基本科研业务费项目2015B22214,2013B07514
2018-10-12(万方平台首次上网日期,不代表论文的发表时间)
共16页
1284-1299