Title: UMLbased Integration Testing
1UML-based Integration Testing
Jean Hartmann, Claudio Imoberdorf Siemens
Corporate Research Princeton NJ 08540 Tel 1
609 734 3361 Fax 1 609 734 6565 Email
jhartmann_at_scr.siemens.com
2Objectives
- Growing Importance of Domain-specific Frameworks
- Modeling of Software Components and their
Interfaces - Using a standardized design notation gt UML
- The model must express the component interactions
- Using the Model for Test Generation and Execution
- Focusing on unit and integration testing
(black-box) - Automating the test generation and execution
steps - Providing test execution support for
middleware-based components
3Modeling Components
- Use UML Statecharts to model each component
(object) - Statecharts should reflect the normal and
erroneous behavior of the component - To facilitate component interaction, we extend
UML with a new transition labeling scheme - For integration testing, users define the
collection of components to be tested (subsystem
definition) - Assumptions
- Point-to-point communication semantics between
components rather than a shared event model - Communications are synchronous (blocking)
- Implementation is deterministic
4Steps Taken During Model Composition
- 1. Normalizing the UML-based Models
- Importing the Rational Rose repository
- Noting the subsystem definition, if any
- Resolving transitions with multiple events
- 2. Composing the Global Behavioral Model
- Applying an incremental composition and reduction
algorithm - Determining a composition order (based on
subsystem definition) - Scalability
- Algorithm complexity is better than exponential
5Example A Communication Protocol
- Focus on integration testing
- Generate test cases to validate component
interaction - Consider subsystem A
- External interfaces
- tuser
- timer
- txport
- Internal Interfaces
- timing
6Matching Send and Receive Events Between
Components
7Normalizing the UML-based Models...
8Composing a Global Behavioral Model...
9Test Case Generation
For integration testing all transitions between
components are covered
10Test Case Execution
- Executable test driver is created from the
generated test cases - We have specific support for reactive components
- This is achieved through an event pattern
matching mechanism - Supports automated regression testing during unit
and integration testing
11Implementation TnT TDE/UML TECS
Interface Test Language (ITL)
COM Interface TSL Test Design
Rational Rose Test
Generation Test Execution Modeling
Tool Tool (TDE/UML) Environment (TECS)
12Applying TnT in the Software Lifecycle
Development Process
Inception
Elaboration
Transition
Construction
Use Cases
Detailed Design
High-level Design
Artifacts
Unit Test
Integration Test
System Test
13Future Research and Development
- Modeling
- Support additional UML model elements (e.g.
nested states) - Examine the issues related to asynchronous
communication between components - Modeling real-time aspects (e.g. timing
constraints) - Develop a philosophy for an optimal composition
order - Test Generation
- Exploit the use of data variations within test
generation for integration testing purposes - Test Execution
- Focus on a distributed test execution environment
14Conclusions
- We provide a UML-based test generation and
execution environment using Statecharts - We focus on unit and integration testing for
components - We support the testing of middleware-based
components - We are starting to apply it within Siemens
- We are continuing to refine and improve TnT