当前位置: X-MOL 学术Expert Syst. Appl. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Automation of software test data generation using genetic algorithm and reinforcement learning
Expert Systems with Applications ( IF 7.5 ) Pub Date : 2021-06-18 , DOI: 10.1016/j.eswa.2021.115446
Mehdi Esnaashari , Amir Hossein Damia

Software testing is one of the most important methods of analyzing software quality assurance. This process is very time consuming and expensive and accounts for almost 50% of the software production cost. In addition to the cost problem, the nature of the test, which seeks errors in the program, is such that software engineers are not interested in doing the process, so we are looking to use automated methods to reduce the cost and time of the test. In the last decade, various methods have been introduced for the automatic test data generation, the purpose of which is to maximize the detection of errors by generating minimum amount of test data. The main issue in the test data generation process is to determine the input data of the program in such a way that it meets the specified test criterion. In this research, a structural method has been used in order to automate the process of test data generation considering the criterion of covering all finite paths. In structural methods, the problem is converted into a search problem and meta-heuristic algorithms are used to solve it. The proposed method in this paper is a memetic algorithm in which reinforcement learning is used as a local search method within a genetic algorithm. Experimental results have shown that this method is faster for test data generation than many existing evolutionary or meta-heuristic algorithms and can provide better coverage with fewer evaluations. Compared algorithms include: conventional genetic algorithm, a variety of improvements to the genetic algorithm, random search, particle swarm optimization, bees algorithm, ant colony optimization, simulated annealing, hill climbing, and tabu search.



中文翻译:

使用遗传算法和强化学习自动生成软件测试数据

软件测试是分析软件质量保证的最重要方法之一。这个过程非常耗时和昂贵,几乎占到软件生产成本的 50%。除了成本问题,测试的本质是在程序中寻找错误,软件工程师对做这个过程不感兴趣,所以我们正在寻求使用自动化的方法来降低测试的成本和时间. 在过去的十年中,已经引入了各种方法来自动生成测试数据,其目的是通过生成最少量的测试数据来最大限度地检测错误。测试数据生成过程中的主要问题是确定程序的输入数据,使其满足指定的测试标准。在这项研究中,考虑到覆盖所有有限路径的标准,已使用结构化方法来自动化测试数据生成过程。在结构化方法中,问题转化为搜索问题,启发式算法用于解决它。本文提出的方法是一种模因算法,其中强化学习被用作遗传算法中的局部搜索方法。实验结果表明,与许多现有的进化或启发式算法相比,该方法生成测试数据的速度更快,并且可以以更少的评估提供更好的覆盖率。比较算法包括:常规遗传算法、遗传算法的多种改进、随机搜索、粒子群优化、蜜蜂算法、蚁群优化、模拟退火、爬山、禁忌搜索等。

更新日期:2021-06-22
down
wechat
bug