220 likes | 360 Views
Test-controlled Development of Communication Services Ralf Tönjes 1 , Marten Fischer 1 , Patrick Wacht 2. Contact: r.toenjes@hs-osnabrueck.de 1 2. University of Applied Science Osnabrück, Germany. University of Applied Science Frankfurt, Germany. TTCN-3 User Conference 2011
E N D
Test-controlled Developmentof Communication Services Ralf Tönjes1, Marten Fischer1, Patrick Wacht2 Contact: r.toenjes@hs-osnabrueck.de 1 2 University of Applied Science Osnabrück, Germany University of Applied ScienceFrankfurt, Germany TTCN-3 User Conference 2011 7 – 9 June 2011 - Bled, Slovenia
Agenda • Motivation • Architecture • Service Description • Service Behaviour Model • Test Code Generation • Test Execution
Motivation • Testing of communication services is becoming increasingly important • growing complexity of logic • short time to market desired • manual testing is time and cost consuming test automation required • current service creation environments (SCE) do not support test automation Error
How can Test Automation be Realised? • Model-Based Testing • Model describes how a system should behave in response to an action (behaviour model) • Supply the action and see if the system responds as expected is a partial description of Model System are derived from can be run against Abstract tests Executable tests are abstract versions of
Architecture Step 4 Step 2 Step 3 Step 1
Step1: Formal Recording of Service Description 5 Stages Procedure • Adopted from telecom software development process OTES (Objects Through Essential Services) • Short textual description of use cases • Identification of roles of communication participants(e.g. browser, SIP-phone, Database) • Requirement specification (including pre- and post-conditions, i.e. states, andtarget action, i.e. messages sequence, for users) • Enhanced requirements specification(including technical details, such as value ranges, names of databases, tables and fields) • Identification of the communication interfaces(5-tuple of source and destination IP-address, port and protocol)
TTCN-3 requirements: message flow description derived from FSM (test cases) test environment/SUT description using connectivity concept (ports, component, Test Adapter, …) test data (type definitions, templates) Behaviour Model Editor with 3 specialised perspectives Step2: Creation of Service Behaviour Model Editors FSM Editor Connectivity Editor Test Data Editor
Composition of FSM (Finite State Machine) • sFSM (sub Finite State Machine) • Reusable templates, which represent predefined message flows from standards • internal transitions are fixed, external transitions used to realise composition • usually protocol specific (e.g., SIP, TCP, HTTP) • Composition of sFSM with Transaction User sFSM-M2 sFSM-M1
The FSM Connector: Transaction User (TU) • interfaces of the sub finite state machines have the TU as sender or receiver • acts as mediator between possible client and server roles • does not contain information about the service implementation
Connectivity Concept: Composition of SUT/Test Environment Description
Connectivity Concept: Mapping to TTCN-3
Test Data Editor • create and edit message templates • message structure reflected in tree view • specific for one port and its protocol Example
ConnectivityEditor (TTCN-3 ports, timer, …) Abstract Test Case Generator Behaviour Model Editors TTCN-3 Test DataEditor Step 3: Abstract Test Case Generation FSM Editor FSM & Connectivity Parser FSM Path- finder TTCN-3 Code Generator Behaviour Model Analyser
Test Case Generation: FSM Pathfinder Path • set of states and transitions between start- and end-state of FSM Pathfinder • finds all possible paths in FSM between start and end state • FSM considered as deterministic • branching = new test case • employs depth-first-search
Test Case Generation: FSM Parser Each path converted into test case by FSM Parser • state converted into a TTCN-3 function body • content of function specified by outgoing transition • FSM written from the service’s point of view message based actions must be inverted s1 s2 p1.msg/p1.msg2 • function s1_1() runs on c1 { • p1.send(msg); • alt { • p1.receive(msg2) -> …. { s2_1(); } • } • }
Test Case Generation: Connectivity Parser • generates component using parameter from Connectivity Editor ComponentDefinition Name ofComponent Parameter Ports Type of Port Name of Port own block in editor; connectedwithcomp. Timer Primitive Variables automatically generated for each message template Message Variables + system component (only ports and static name)
Test Case Generation: Connectivity Parser • generates port using parameter from Connectivity Editor • generates configuration file for Test Adapter (parameter provided in Ports) Test Adapter configurationfile Name of Port Protocol (TCP/UDP) Remote IP / Port Role (Server/Client) Local IP / Port Parameter/Port Port Definition Parameter Name Type reference in model send/receivable Message Types
Test Case Generation: TTCN-3 Code Generator • Writes the acquired / generated data as TTCN-3 code using Velocity* • * Java basedTemplate Engine (http://velocity.apache.org)
Step 4: Test Execution • TTCN-3 code will be executed after the code generation has been completed by the Test Case Generator • Execution realised within a Test Environment (e.g. TTWorkbench) • Test results are stored in a database to measure the development progress • Iterative delta testing: only new or modified test cases executed • Test Framework for synchronisation of test developer and service developer
Conclusion • Novelty: New approach eases the generation of test cases by • composing predefined finite state machines (FSM) for protocol sequences to a behaviour model (BM) of a service. • From the BM a TTCN-3 test suite is automatically derived. • The new concept of Transaction User (TU) enables testing of value added services • Benefits: Integration of Service Creation and Testing • Development of functional tests in parallel to service development ensuring automated TTCN-3 based testing of services • Testing is integrated in a service creation environment allowing for regression tests • Re-Use by Others: General Applicability • test generation can be used for any SCE • generic configurable test adapter based on Java for TTCN-3 (e.g. for TCP, UDP ,…) • universal codec for generation of test patterns has been implemented
References • P. Wacht et al.: A New Approach to Design Graphically Functional Tests for Communication Services, IEEE NTMS, Paris, 7-10 February 2011. • P. Wacht et. al.: ComGeneration: die Dienstebeschreibung als Basis für automatisiertes Testen, VDE/ITG Fachtagung Mobilkommunikation, Osnabrück, 18-19 May 2011. • A. Lehmann et al.: “TeamCom: A Service Creation Platform for Next Generation Networks”, IEEE ICIW 2009, Venice/Mestre, Italy, 24-28 May 2009.