Assume-guarantee testing for software components
Giannakopoulou, D.
Pasareanu, C.S.
Blundell, C.
NASA Ames Res. Center, CMU, Moffett Field, CA;
This paper appears in: Software, IET
Publication Date: December 2008
Volume: 2,
Issue: 6
On page(s): 547-562
ISSN: 1751-8806
INSPEC Accession Number: 10610879
Digital Object Identifier: 10.1049/iet-sen:20080012
Current Version Published: 2008-12-16
Abstract
Integration issues of component-based systems tend to be targeted at the later phases of the software development, mostly after components have been assembled to form an executable system. However, errors discovered at these phases are typically hard to localise and expensive to fix. To address this problem, the authors introduce assume-guarantee testing, a technique that establishes key properties of a component-based system before component assembly, when the cost of fixing errors is smaller. Assume-guarantee testing is based on the (automated) decomposition of system-level requirements into local component requirements at design time. The local requirements are in the form of assumptions and guarantees that each component makes on, or provides to the system, respectively. Checking requirements is performed during testing of individual components (i.e. unit testing) and it may uncover system-level violations prior to system testing. Furthermore, assume-guarantee testing may detect such violations with a higher probability than traditional testing. The authors also discuss an alternative technique, namely predictive testing, that uses the local component assumptions and guarantees to test assembled systems: given a non-violating system run, this technique can predict violations by alternative system runs without constructing those runs.
Index
Terms
Available to subscribers and IEEE members.
References
Available to subscribers and IEEE members.
Citing Documents
Available to subscribers and IEEE members.