DocumentCode
821759
Title
Software assurance by bounded exhaustive testing
Author
Coppit, David ; Yang, Jinlin ; Khurshid, Sarfraz ; Le, Wei ; Sullivan, Kevin
Author_Institution
Dept. of Comput. Sci., Coll. of William & Mary, Williamsburg, VA, USA
Volume
31
Issue
4
fYear
2005
fDate
4/1/2005 12:00:00 AM
Firstpage
328
Lastpage
339
Abstract
Bounded exhaustive testing (BET) is a verification technique in which software is automatically tested for all valid inputs up to specified size bounds. A particularly interesting case of BET arises in the context of systems that take structurally complex inputs. Early research suggests that the BET approach can reveal faults in small systems with inputs of low structural complexity, but its potential utility for larger systems with more complex input structures remains unclear. We set out to test its utility on one such system. We used Alloy and TestEra to generate inputs to test the Galileo dynamic fault tree analysis tool, for which we already had both a formal specification of the input space and a test oracle. An initial attempt to generate inputs using a straightforward translation of our specification to Alloy did not work well. The generator failed to generate inputs to meaningful bounds. We developed an approach in which we factored the specification, used TestEra to generate abstract inputs based on one factor, and passed the results through a postprocessor that reincorporated information from the second factor. Using this technique, we were able to generate test inputs to meaningful bounds, and the inputs revealed nontrivial faults in the Galileo implementation, our specification, and our oracle. Our results suggest that BET, combined with specification abstraction and factoring techniques, could become a valuable addition to our verification toolkit and that further investigation is warranted.
Keywords
automatic programming; fault trees; formal specification; program debugging; program testing; program verification; software fault tolerance; software tools; Alloy; BET; Galileo dynamic fault tree analysis tool; TestEra; bounded exhaustive testing; formal methods; formal specification; program debugging; program verification; software assurance; software verification technique; Aircraft; Automatic testing; Data structures; Debugging; Fault tolerant systems; Fault trees; Formal specifications; Hardware; Software testing; System testing; Index Terms- Formal methods; program verification; testing and debugging.;
fLanguage
English
Journal_Title
Software Engineering, IEEE Transactions on
Publisher
ieee
ISSN
0098-5589
Type
jour
DOI
10.1109/TSE.2005.52
Filename
1435353
Link To Document