Integrating Evolutionary Testing with Reinforcement Learning for Automated Test Generation of Object-Oriented Software

Integrating Evolutionary Testing with Reinforcement Learning for Automated Test Generation of Object-Oriented Software
复制标题

DOI:
10.1049/cje.2015.01.007
复制
发表时间:
2015
影响因子:
1.2
通讯作者:
Wei He;Ruilian Zhao;Qunxiong Zhu
Wei He;Ruilian Zhao;Qunxiong Zhu
中科院分区:
计算机科学4区
文献类型:
--
作者:
Wei He;Ruilian Zhao;Qunxiong Zhu

文献摘要

被引文献

相似文献

进化测试生成的最新进展极大地促进了面向对象软件的测试。当被测软件(SUT)包含继承类层次结构(ICH)和非公共方法(NPM)时,现有的测试生成方法仍然受到限制。本文提出了一种通过集成进化测试和强化学习来为面向对象软件生成测试用例的方法。对于具有ICH和NPM的面向对象软件,提出了两种特定的同构替换动作,并维护了一个q值矩阵来辅助进化测试的生成。一个名为EvoQ的原型是基于这种方法开发的,并用于为实际的Java程序生成测试用例。实证结果表明,EvoQ可以有效地为带有ICH和npm的SUT生成测试用例,并且在相同的时间预算内实现比两种最先进的测试生成方法更高的分支覆盖率。
Recent advances in evolutionary test generation greatly facilitate the testing of Object-oriented (OO) software. Existing test generation approaches are still limited when the Software under test (SUT) includes Inherited class hierarchies (ICH) and Non-public methods (NPM). This paper presents an approach to generate test cases for OO software via integrating evolutionary testing with reinforcement learning. For OO software with ICH and NPM, two kinds of particular isomorphous substitution actions are presented and a Q-value matrix is maintained to assist the evolutionary test generation. A prototype called EvoQ is developed based on this approach and is applied to generate test cases for actual Java programs. Empirical results show that EvoQ can efficiently generate test cases for SUT with ICH and NPMand achieves higher branch coverage than two state-of-the-art test generation approaches within the same time budget.