回归测试数据进化生成
摘 要 采用遗传算法生成回归测试数据近年来得到普遍关注,该方法高效生成测试数据的前提是合理利用已有的测试数据形成初始进化种群,并设计有针对性的遗传操作.但是,到目前为止,相关的研究成果尚不多见.文中研究采用遗传算法生成回归测试数据以覆盖目标路径时,已有测试数据的利用问题,提出一种新的回归测试数据进化生成方法.该方法根据已有测试数据穿越的路径与目标路径的相似度,选择合适的测试数据,作为初始进化种群的部分个体.进一步,根据已有测试数据穿越的路径与目标路径不相同子路径的节点对应的输入分量,确定对进化个体实施遗传操作的位置.理论分析表明,所提方法可以有效提高测试数据生成效率.将所提方法应用于典型基准和工业程序的测试,并与已有方法比较,实验结果证实了所提方法的优越性.
关键词 回归测试;路径覆盖;测试数据生成;遗传算法;软件测试
Evolutionary Generation of Regression Test Data
Abstract Generating regression test data using genetic algorithms has obtained widespread attention in recent years.The premises of this method on effectively generating test data are appropriately utilizing existing test data to form the initial population,and designing some targeting genetic oprations.However,the related work has been inadequate up to data.In this paper,we investigated the problem of utilizing existing test date when generating regression test data using genetic algorithms to cover a target path,and presented a novel method of generating regression test data.In this method,appropriate test data are selected as a part of individuals of the initial population according to the similarity betweenthe path traversed by an existing test datum and the target one.Further ,the position of performing genetic operations on individuals is determined based on the input variables corresponding to the nodes that belong to the sub-path where the path traversed by existing test data is different from the target one . the theoretical analysis shows that the proposed methed to some typical benchmark and industrial programs,and compared it with previous ones.The experimental results confirm the advantage of the proposed algorithm.
Keywords regression teat;path coverage;test data generation;genetic algorithms;software testing
目录
回归测试数据进化生成 1
1 引 言 2
2 相关工作 3
3 问题建模 4
4 测试数据生成 5
4.1 利用已有测试数据的必要性 采用传统遗传算法直接求解式(2),是一种可行方法,也是最常用方法.遗传算法是一种弱方法[19], 虽然通用性强,但是,对某一具体问题的求解效率未必很高.如果将已有知识融入到遗传算法的求解过程,无疑会充分发挥遗传算法的并行潜能,从而提高遗传算法的求解效率.因此,问题的关键在于有用知识的获取与合理利用. 5
4.2 初始种群的形成 5
5 性能分析 7
6 实 验 9
6.1 测试程序 9
6.2 遗传策略与参数设置 9
6.3 实验设置 9
6.4 sumday实验结果 10
(a)修改后源程序 10
(b)节点与输出分量关系图 10
6.5 工业程序实验结果 13
7 结束语 15
参 考 文 献 16