200 likes | 394 Vues
Test Design Recovery through Reverse Engineering on TTCN-3. Chang Chuang-Ye, Wu Ji, Xu Luo, Liu Chao. Software Engineering Institute Beihang University. Outline. Introduction TTCN-3 U2TP Our Research Outlook. Introduction. Why Reverse Engineering?
E N D
Test Design Recovery through Reverse Engineering on TTCN-3 Chang Chuang-Ye, Wu Ji, Xu Luo, Liu Chao Software Engineering Institute Beihang University
Outline • Introduction • TTCN-3 • U2TP • Our Research • Outlook
Introduction • Why Reverse Engineering? • Software maintenance is ”modification of a software to correct faults, to improve performance or to adapt to a changed environment”. (ASNI/IEEE Std 729) • Software maintenance accounts for 50%~90% of total costs in software life-cycle. • Reverse engineering is part of maintenance process and can facilitate this practice. Through reverse engineering, cost can be reduced and value can be added. So we need reverse engineering!
Introduction • What is Reverse Engineering? • Two primary procedures • Analyzing the targeted system and extracting objects and their relationships • Creating high-level abstract model in multiple various views
Introduction • TTCN-3 has been developed at ETSI and also standardized at ITU-T. There are lots of free test suites implemented by TTCN-3, such as SIP and IPv6 etc. • Test suites based on TTCN-3 has become more complex, hard to reuse and maintain. • Reverse Engineering on TTCN-3 • Abstract high-level information • Test Configuration • Test Data • Invocation Hierarchy • Help tester to verify the test implement
TTCN-3 • Testing and Test Control Notation TTCN-3 is a specification and implementation language to define test procedures. • It is specifically used for black-box testing of distributed system. • Fixed and mobile telecommunication (ATM, GSM, etc) • Internet (SIP, IPv6) • Embedded system (automotive, avionics) • Middleware platform (CORBA, EJB, Web Service) • Current tools on TTCN-3 • Commercial IDE (Telelogic Tau, TTworkbench, etc) • Open source metrics and refactoring plug-in (TRex)
TTCN-3 • TTCN-3 test system TE:TTCN-3 Executable SA:System Adapter PA:Platform Adapter CD:Code/Decode TM:Test Management CH:Component Handling SUT:System Under Test
TTCN-3 • Some reflections modeling UML 2.0 Java/C++ U2TP modeling ? TTCN-3 What is U2TP?
U2TP • UML 2.0 Testing Profile is a graphical modeling language to develop test specification and testing issues. • Provide a standard to describe test procedure • Bridge the gap between designers and testers • By reusing the UML documents, testing can be integrated in an early system development phase • U2TP is a profile to UML 2.0 • A profile is a domain specific extension of UML using a standardized extensibility mechanism.
U2TP • U2TP introduces four logical groups to develop test specifications and models for black-box. • Test architecture: test structure, test components and test configuration • Test behavior: dynamic aspects of test procedures • Test data: data and template used in test procedures • Time: time qualified definition of test procedures • Together the four concepts define a language for visualizing, constructing, documenting, specifying and analyzing a test system.
Graphical Format Based on TTCN-3 concept Support dynamic test configuration Use well-established verdict handling Support all types available in TTCN-3 …… U2TP Based on OO paradigm of UML Define static test architecture Use user defined and the arbitration verdict Support primitive types and classes …… U2TP GFT and U2TP are on different levels of abstraction: GFT is on a test case specification level, while U2TP is used on a more abstract level by defining test purpose or test case without details.
Our Research • Framework for reverse engineering • Principles of mapping from U2TP to TTCN-3 • Modeling for TTCN-3 test system • Configuration model recovery • Data model recovery • Invocation model recovery
Our Research TTCN-3 Parser • Framework for reverse engineering Dynamic Trace Static Information Rational Rose
Our Research • Implements of mapping from U2TP to TTCN-3 Not support: Timezone, Test trace
Our Research • Modeling for TTCN-3 test system
Our Research • Configuration model recovery • Static • Identify all test components in the test system • Display the details of test component • MTC? TSI? PTC? • Instance of port • Direct • Test specific • Display all the possible configurations • Dynamic • Display the actual test configuration by executing a test case • Testers can identify the test implementation correct or not
Our Research • Data model recovery • Display all the templates in the test suites • Implement the data selector by template type • Implement the data partition by groups • Displayed by a tree structure, testers can get a good command of test data
Our Research • Invocation model recovery • Display all the functions and altstep activated direct and indirect in a test case • Testers can easily get a holistic view of the realization in a test behavior
Outlook • Improve overall comprehensibility for both maintenance and development on TTCN-3 • Help maintainers examine and learn about abstract test suites • Give a holistic view of the abstract test suites
Thank you! Any question?