Architecture-Level Analysis & Testing


J.A. Stafford, A.L. Wolf

Description

A formal software architecture specification makes the analysis, design, and construction of a complex system intellectually tractable by characterizing the system at a high level of abstraction. Defects in the dynamic interaction and communication behavior of the components in the system can be revealed through dynamic analysis, of which testing is a familiar technique. Historically, testing has concentrated on the implementation as the target of inquiry, which has meant that it is considered relatively late in the development process. There is, however, a highly profitable role for considering the architectural specification of the system as a target for testing, which affords effective reuse of test artifacts across product families and components. This is now possible due to the emergence of formal notations for software architecture specification, which can provide a sound basis upon which to develop architecture-based, integration testing techniques and tools.

There are five major contributions to software architecture and software testing technology arising from this research. First, a set of architecture-based integration test criteria will be defined to provide requirements for testing architectural aspects of a system; methods will also be developed for applying these criteria to architectural styles and domain-specific architectures. Second, methods will be developed for testing an implementation in terms of its conformance to a specified architecture via architecture conformance oracles. Third, architecture-level slicing techniques will be defined for localizing architectural defects and minimizing regression testing. Fourth, methods will be developed for using feature tests to discover the architecture of a system from its implementation. Finally, various approaches to formal architecture specification will be evaluated with respect to their suitability to testing technologies.

Papers

     Architecture-Level Dependence Analysis in Support of Software Maintenance
     Aladdin: A Tool for Architecture-Level Dependence Analysis of Software Systems
     Chaining: A Software Architecture Dependence Analysis Technique
     Software Testing at the Architecture Level

Related Links

     White Paper
     Quad Chart


SERL Home ©1998 Software Engineering Research Laboratory (SERL)
Last updated: 02-14-98