Component-Oriented Verification of Software Architectures through Built-in Tests
Although the technologies used to implement and assemble components have improved significantly in recent years, techniques for verifying systems created from them have changed very little. In fact, the correctness and reliability of component-based systems are still usually checked using the traditional testing techniques employed before components and services became widespread. These techniques are not only expensive because they treat a system as a monolithic black box, they are not very helpful because they fail to use architectural knowledge to pin-point the source of failures. As a result, many of the potential benefits of component-based development are outweighed by the costs involved in verifying the resulting systems. In this talk, Colin Atkinson will present an approach that addresses this problem by making the system verification process component-oriented as well. Based on the notion of built-in tests - tests that are packaged with components and are executed at run-time - the approach reduces the level of manual effort needed to verify a system by partially automating the testing process. It involves a method to define how services/components should be written to support and exploit built-in tests, and a resource-aware infrastructure that arranges for tests to be executed when they have a minimal impact on the delivery of system services.