DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/TSE.2013.55
Charles Song , Fraunhofer USA Center for Experimental Software Engineering, College Park,
Adam A. Porter , University of Maryland, College Park
Jeffrey S. Foster , University of Maryland, College Park
Modern software systems are configurable; while this has many benefits, it also makes software testing harder. In theory, every configuration may need to undergo testing but this is infeasible. Developers need cost-effective techniques for selecting configurations to test; one popular approach is combinatorial interaction testing (CIT). In prior work, we demonstrated several limitations of CIT. In particular, we found that a system's effective configuration space may not be well approximated by CIT. We developed an algorithm called interaction tree discovery (iTree), an iterative learning algorithm that efficiently searches for configurations that closely approximates a system's effective configuration space. On each iteration, iTree tests the system on a small configuration sample, monitors the system's behaviors, and then applies machine learning techniques to discover option settings potentially responsible for new behaviors. This information is used in the next iteration to pick new configuration sample to test. This article presents an improved iTree algorithm based on our use of composite proto-interactions, which significantly improves iTree's running time without sacrificing effectiveness. The article also presents evaluation of the improved iTree algorithm by comparing against CIT and random sampling. Our results strongly suggest that iTree is highly scalable and is more effectively than existing methods.
Software Configuration, Testing and Debugging
C. Song, A. A. Porter and J. S. Foster, "iTree: Efficiently Discovering High-Coverage Configurations Using Interaction Trees," in IEEE Transactions on Software Engineering.