ABSTRACT
Selection of diverse test cases and elimination of duplicates are two major problems in product testing life cycle, especially in sustained engineering environment. In order to solve these, we introduce a framework of test case comparison metrics which will quantitatively describe the distance between any arbitrary test case pair of an existing test suite, allowing various test case analysis applications. We combine program profiles from test execution, static analysis and statistical techniques to capture various aspects of test execution and compute a specialized test case distance measurement. Using these distance metrics, we drive a customized hierarchical test suite clustering algorithm that groups similar test cases together. We present an industrial strength framework called SPIRiT that works at binary level, implementing different metrics in the form of coverage, control, data, def-use, temporal variances and does test case clustering. This is step towards integrating runtime analysis, static analysis, statistical techniques and machine learning to drive new generation of test suite analysis algorithms.
- A. Srivastava, J. Thiagarajan, "Effectively Prioritizing Tests in Development Environment", ISSTA 2002. Google ScholarDigital Library
- M. J. Harrold, "Testing Evolving Software", Journal of Systems and Software, vol. 47, pp. 173--181, Jul. 1999. Google ScholarDigital Library
- A. Srivastava, A. Edwards, and H. Vo, "Vulcan: Binary transformation in a Distributed Environment", Microsoft Research Technical Report, 2001Google Scholar
Index Terms
- Test case comparison and clustering using program profiles and static execution
Recommendations
Static test case prioritization using topic models
Software development teams use test suites to test changes to their source code. In many situations, the test suites are so large that executing every test for every source code change is infeasible, due to time and resource constraints. Development ...
Efficient static analysis with path pruning using coverage data
Soundness and completeness are two primary concerns of a static analysis tool for finding defects in software. Exhaustive static analysis of the program through all paths is not always possible, especially for a large software causing incompleteness in ...
Combining static analysis and test generation for C program debugging
TAP'10: Proceedings of the 4th international conference on Tests and proofsThis paper presents our ongoing work on a tool prototype called SANTE (Static ANalysis and TEsting), implementing a combination of static analysis and structural program testing for detection of run-time errors in C programs. First, a static analysis ...
Comments