Towards Test Focus Selection for Integration Testing Using Software Metrics
Abstract
Object-oriented software systems contain a large number of modules which make the unit testing, integration testing, and system testing very difficult and challenging. While the aim of the unit testing is to show that individual modules are working properly and the aim of the system testing is to determine whether the whole system meets its specifications, the aim of integration testing is to uncover errors in the interactions between system modules. Correct functioning of object-oriented software depends upon the successful integration of classes. While individual classes may function correctly, several faults can arise when these classes are integrated together. However, it is generally impossible to test all the connections between modules because of time and cost constraints. Thus, it is important to focus the testing on the connections presumed to be more error-prone. The general goal of this research is to let testers know where in a software system to focus when they perform integration testing to save time and resources. In this work, we propose a new approach to predict and rank error-prone connections in object-oriented systems. We define method level metrics that can be used for test focus selection in integration testing. In addition, we build a tool which calculates the metrics automatically. We performed experiments on several Java applications taken from different domains. Both error seeding technique and mutation testing were used for evaluation. The experimental results showed that our approach is very effective for selecting the test focus in integration testing.