Automation of software test data generation using genetic algorithm and reinforcement learning

2021
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.
EXPERT SYSTEMS WITH APPLICATIONS
卷号:183
ISSN:0957-4174
来源机构
K. N. Toosi University of Technology
收录类型
SSCI
发表日期
2021
学科领域
循证管理学
国家
伊朗
语种
英语
DOI
10.1016/j.eswa.2021.115446
EISSN
1873-6793
被引频次(WOS)
0
被引更新日期
2022-01
关键词
Software test Structural test Test data generation Genetic algorithms Reinforcement learning