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 a...
详细信息
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. x. 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. xing 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. The authors demonstrate the proposed approach and its benefits by means of two NASA case studies: a safety-critical protocol for autonomous rendez-vous and docking and the executive subsystem of the planetary rover controller K9.
The process of testingsoftware is an important technique for checking and validating the correctness of software. Unfortunately, it is usually difficult, expensive, time consuming and often error prone to achieve bot...
详细信息
ISBN:
(纸本)0780375149
The process of testingsoftware is an important technique for checking and validating the correctness of software. Unfortunately, it is usually difficult, expensive, time consuming and often error prone to achieve both an effective and efficient testing process. Formal methods are a method of specifying and verifying software systems using mathematical and logic approaches. This allows the analysis and reasoning of software systems with precision and rigor. Formal methods target the verification and the proving of correctness, while testing can only show the presence of errors. The use of formal methods can also automate the generation of test cases from formal specifications which can lead to less expensive and less error prone testing process.
暂无评论