- Book Chapter
10
- 10.1007/978-3-642-25658-5_50
Regression Testing Based on Neural Networks and Program Slicing Techniques
- Jan 01, 2011
- Farn Wang + 2 more +2
Regression testing is for retesting modified software to ensure that changes are correct and do not adversely affect other parts of the software. It is usually One extremely hard for engineers to figure out how a change in software will echo in other parts of the software. We propose a framework that combines machine learning and program slicing for test cases prioritization to solve the problem. We developed a library, called Intelligent Test Oracle Library (InTOL), for the instrumentation of a system under test (SUT) to generate test traces. The program slices serve to indicate the relevance of test cases to regression testing of software modifications. Then we relate the slicing information with the test traces. We use Artificial Neural Network (ANN) as our underlying technology for machine learning. In the training phase, we first use ANN to learn the count of times that a program segment will be visited in the execution of a test case. We then use the count estimation for the program segments as a part of our feature vector for a test input and feed the vector to another ANN for test prioritization of the test input. We experiment with two benchmark programs of Software-artifact Infrastructure Repository. Our experiment data shows a good fault-detection ability.
Read more