2002Unpublished venueRequires access

A systems approach to automated object-oriented integration testing

Gregory Eakman, John W. Brackett

Open publisher page 1 citations

Abstract

Integration testing of embedded systems developed using object-oriented technology can be a difficult task due to complex interactions among objects, the distribution of system state information among many objects, and encapsulation that prevents easy access to the state of the system. This thesis describes a method and an architecture providing automated support for validating domains (well-bounded software components) during integration testing. The method compares the behavior of the domain against an oracle, a requirements-level model expressed in an executable formal methods language (LOTOS). The domains are developed using object-oriented techniques and are expressed using the Unified Modeling Language (UML), an industry standard notation. The models use well-defined executable semantics and allow code generators to produce the implementation code; other design languages could be substituted for UML if they meet the requirements for executable semantics. A test architecture is defined within which code generators can insert test instrumentation code to enable integration testing at the UML model level. The test code allows the internal state of the software to be examined directly for correctness without depending upon a distinguishing sequence of external stimulus to propagate the error to the output. The architecture provides a generic test harness in which test case execution and data collection can be automated, which in turn provides the required test information to the oracle. UML models serve as the basis for implementation through code generation, and another model, the oracle, serves as the basis for test result validation. The oracle is a requirements-level model of the domain, expressed using formal methods, which describes its behavior in response to external stimuli. An abstraction function defines equivalent states between the UML and formal specification models, allowing the internal state of the system to be included as part of the test results with the input-output relationship. Testing the internal system state reduces test generation effort because it does not depend on a distinguishing sequence of inputs to trigger and propagate an error to the system output.

About this research paper

What this paper is about

Integration testing of embedded systems developed using object-oriented technology can be a difficult task due to complex interactions among objects, the distribution of system state information among many objects, and encapsulation that prevents easy access to the state of the system. This thesis describes a method and an architecture providing automated support for validating domains (well-bounded software components) during integration testing. The method compares the behavior of the domain against an oracle, a requirements-level model expressed in an executable formal methods language (LOTOS). The domains are developed using object-oriented techniques and are expressed using the Unified Modeling Language (UML), an industry standard notation. The models use well-defined executable semantics and allow code generators to produce the implementation code; other design languages could be substituted for UML if they meet the requirements for executable semantics. A test architecture is defined within which code generators can insert test instrumentation code to enable integration testing at the UML model level. The test code allows the internal state of the software to be examined directly for correctness without depending upon a distinguishing sequence of external stimulus to propagate the error to the output. The architecture provides a generic test harness in which test case execution and data collection can be automated, which in turn provides the required test information to the oracle. UML models serve as the basis for implementation through code generation, and another model, the oracle, serves as the basis for test result validation. The oracle is a requirements-level model of the domain, expressed using formal methods, which describes its behavior in response to external stimuli. An abstraction function defines equivalent states between the UML and formal specification models, allowing the internal state of the system to be included as part of the test results with the input-output relationship. Testing the internal system state reduces test generation effort because it does not depend on a distinguishing sequence of inputs to trigger and propagate an error to the system output.

Why it matters

OpenAlex reports 1 citations for this work. Citation counts describe recorded attention and do not establish research quality.

Key contribution

A contribution statement is not available in the OpenAlex record.

Method / approach

Method details are not available in the OpenAlex metadata.

Main findings

Findings are not separately available in the OpenAlex metadata.

Limitations

Limitations are not available in the OpenAlex metadata.

Applications

Application details are not available in the OpenAlex metadata.

Available abstract

Integration testing of embedded systems developed using object-oriented technology can be a difficult task due to complex interactions among objects, the distribution of system state information among many objects, and encapsulation that prevents easy access to the state of the system. This thesis describes a method and an architecture providing automated support for validating domains (well-bounded software components) during integration testing. The method compares the behavior of the domain against an oracle, a requirements-level model expressed in an executable formal methods language (LOTOS). The domains are developed using object-oriented techniques and are expressed using the Unified Modeling Language (UML), an industry standard notation. The models use well-defined executable semantics and allow code generators to produce the implementation code; other design languages could be substituted for UML if they meet the requirements for executable semantics. A test architecture is defined within which code generators can insert test instrumentation code to enable integration testing at the UML model level. The test code allows the internal state of the software to be examined directly for correctness without depending upon a distinguishing sequence of external stimulus to propagate the error to the output. The architecture provides a generic test harness in which test case execution and data collection can be automated, which in turn provides the required test information to the oracle. UML models serve as the basis for implementation through code generation, and another model, the oracle, serves as the basis for test result validation. The oracle is a requirements-level model of the domain, expressed using formal methods, which describes its behavior in response to external stimuli. An abstraction function defines equivalent states between the UML and formal specification models, allowing the internal state of the system to be included as part of the test results with the input-output relationship. Testing the internal system state reduces test generation effort because it does not depend on a distinguishing sequence of inputs to trigger and propagate an error to the system output.

Key concepts: Computer science, Programming language, Executable, Unified Modeling Language, UML tool, Applications of UML, Software engineering, Software

Related papers

Back to paper searchBrowse research topicsOriginal source
A systems approach to automated object-oriented integration testing — Research Paper | ScholarLens