140 likes | 411 Views
UML-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@scr.siemens.com. Objectives. Growing Importance of Domain-specific Frameworks
E N D
UML-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@scr.siemens.com UML-based Integration Testing ISSTA 2000
Objectives • Growing Importance of Domain-specific Frameworks • Modeling of Software Components and their Interfaces • Using a standardized design notation => 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 UML-based Integration Testing ISSTA 2000
Modeling 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 UML-based Integration Testing ISSTA 2000
Steps 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 UML-based Integration Testing ISSTA 2000
A Example: 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 UML-based Integration Testing ISSTA 2000
Send_user Com_channel Timeout_control timing Timer Transmitter Matching Send and Receive Events Between Components UML-based Integration Testing ISSTA 2000
Original Transmitter Transmitter (expanded) Normalizing the UML-based Models... UML-based Integration Testing ISSTA 2000
user channel Transmitter(expanded) compose timing Timer(expanded) timer Transmitter_Timer (composed) Composing a Global Behavioral Model... UML-based Integration Testing ISSTA 2000
TEST CASE #1 * IN user.message(); * OUT channel.send * IN channel.ack(); * IN user.message(); * OUT channel.send * IN channel.ack(); TEST CASE #2 * IN user.message(); * OUT channel.send * IN timer.interrupt(); * OUT channel.send * IN channel.ack(); * IN user.message(); * OUT channel.send * IN channel.ack(); Test Cases for Subcomponent Transmitter_Timer (composed) Test Case Generation • For integration testing: all transitions between components are covered UML-based Integration Testing ISSTA 2000
Test 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 UML-based Integration Testing ISSTA 2000
Implementation : 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) UML-based Integration Testing ISSTA 2000
TnT Applying TnT in the Software Lifecycle Development Process Inception Elaboration Construction Transition Use Cases Detailed Design High-level Design Artifacts Unit Test Integration Test System Test UML-based Integration Testing ISSTA 2000
Future 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 UML-based Integration Testing ISSTA 2000
Conclusions • 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 UML-based Integration Testing ISSTA 2000