DocumentCode
2600855
Title
Stateful testing: Finding more errors in code and contracts
Author
Wei, Yi ; Roth, Hannes ; Furia, Carlo A. ; Pei, Yu ; Horton, Alexander ; Steindorfer, Michael ; Nordio, Martin ; Meyer, Bertrand
Author_Institution
Software Eng., ETH Zurich, Zurich, Switzerland
fYear
2011
fDate
6-10 Nov. 2011
Firstpage
440
Lastpage
443
Abstract
Automated random testing has shown to be an effective approach to finding faults but still faces a major unsolved issue: how to generate test inputs diverse enough to find many faults and find them quickly. Stateful testing, the automated testing technique introduced in this article, generates new test cases that improve an existing test suite. The generated test cases are designed to violate the dynamically inferred contracts (invariants) characterizing the existing test suite. As a consequence, they are in a good position to detect new faults, and also to improve the accuracy of the inferred contracts by discovering those that are unsound. Experiments on 13 data structure classes totalling over 28,000 lines of code demonstrate the effectiveness of stateful testing in improving over the results of long sessions of random testing: stateful testing found 68.4% new faults and improved the accuracy of automatically inferred contracts to over 99%, with just a 7% time overhead.
Keywords
program testing; random processes; automated random testing; dynamic analysis; stateful testing; Arrays; Contracts; Data mining; Databases; Search problems; Testing; automation; dynamic analysis; random testing;
fLanguage
English
Publisher
ieee
Conference_Titel
Automated Software Engineering (ASE), 2011 26th IEEE/ACM International Conference on
Conference_Location
Lawrence, KS
ISSN
1938-4300
Print_ISBN
978-1-4577-1638-6
Type
conf
DOI
10.1109/ASE.2011.6100094
Filename
6100094
Link To Document