Software Component Integration Testing
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.
mpact: 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.
|