Software Component Integration Testing
Software Component Integration Testing
(www.nist.gov/ehealth/)
Len Gallagher (lgallagher@nist.gov)
Overview:
This research project focuses on new ways to address
conformance testing and system integration of object-oriented software
whose specification is dependent upon the use and integration of
independent software components. The components themselves may be
specified at different times by different specification groups,
yet the integration of all of the pieces must work together under
the rules of a new or revised system specification. The goals of
this project are to prototype and simulate oo-specifications and
to discover new methods for efficient and effective testing of object-oriented,
component-based software systems.
Industry Need Addressed: Business software is often constructed
from a combination of off-the-shelf components, with new components
integrated to satisfy new requirements. The original components
are often sealed so that the source code is not available, yet objects
in the new components will interoperate via messages with objects
in existing components according to expected interface rules derived
from formal or informal specification of each component. Newer and
more efficient means of specifying and testing such business software
will result in lower development costs and higher quality.
NIST/ITL Approach: We assume that each component is object-oriented,
that is, it consists of objects with state and behavior. State is
determined by state variables for each object and behavior is determined
by methods that operate on one or more objects to read or modify
state variables. We represent state and behavior as a finite state
machine where predicates on state variables determine a state and
where transitions result from state transition specifications for
each method. The feasible processes of object-oriented software
can then be represented as data flows on a directed graph, where
nodes are determined from states, guards, and transitions of the
finite state machine, and where edges are determined from data and
control flow resulting from method invocation. An appropriate set
of test specifications to cover all potential data flow can then
be derived from the directed graph. Recent developments include
a component testing architecture that consists of specification
representation, rapid prototyping, and test generation, as well
as a test harness for system analysis and test execution. An overall
goal is to automate the entire process so that prototyping, testing
and analysis can be derived directly from object-oriented specifications,
such as those using UML modeling facilities.
Impact: This project contributes to the advancement of software
specification and testing methodologies, and to practical application
of the results to object-oriented software systems, thereby contributing
directly toward the ITL mission of promoting and improving the quality
of software. More efficient and automated methods of specification
and testing will have a positive impact on the software industry
as a whole.
|