WISE: Automated test generation for worst-case complexity
Authors:
- 1 January 2009
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE)
- No. 02705257,p. 463-473
Abstract
Program analysis and automated test generation have primarily been used to find correctness bugs. We present complexity testing, a novel automated test generation technique to find performance bugs. Our complexity testing algorithm, which we call WISE (worst-case inputs from symbolic execution), operates on a program accepting inputs of arbitrary size. For each input size, WISE attempts to construct an input which exhibits the worst-case computational complexity of the program. WISE uses exhaustive test generation for small input sizes and generalizes the result of executing the program on those inputs into an ldquoinput generator.rdquo The generator is subsequently used to efficiently generate worst-case inputs for larger input sizes. We have performed experiments to demonstrate the utility of our approach on a set of standard data structures and algorithms. Our results show that WISE can effectively generate worst-case inputs for several of these benchmarks.Keywords
This publication has 23 references indexed in Scilit:
- Measuring empirical computational complexity2007
- Automatic Derivation of Loop Bounds and Infeasible Paths for WCET Analysis Using Abstract Execution2006
- Determining Bounds on Execution Times2005
- DART2005
- An information exploration tool for performance analysis of Java programs2002
- KoratACM SIGSOFT Software Engineering Notes, 2002
- Supporting Timing Analysis by Automatic Bounding of Loop IterationsReal-Time Systems, 2000
- Automated test data generation using an iterative relaxation method1998
- Verification of Real-Time Systems using Linear Relation AnalysisFormal Methods in System Design, 1997
- GprofACM SIGPLAN Notices, 1982