bebe9643d4e4529077deb1674c7dea51.ppt
- Количество слайдов: 16
Concurrent Signal and Procedure based Testing using TTCN-3 Satish GVKS Infrastructure System Division Motorola India Electronics Pvt Ltd. Bangalore, India Email: satish. k@motorola. com Mallikarjuna Rao GSVS Infrastructure System Division Motorola India Electronics Pvt Ltd. Bangalore, India Email: mallik@motorola. com
Agenda • • SUT Overview Motivation Proposed Test Solution Test System Details Results Benefits Challenges 2
SUT Overview • SUT is the call processing network element of CDMA cellular system, called Mobility Manager (MM) • MM communicates with different network elements like Mobile Switching Center (MSC) and Base Transceiver Station (BTS) via different messages • MM also interacts with a database component through a set of APIs • SUT is developed in UML 2. 0 using Telilogic TAUG 2 3
SUT Overview – Contd. . BTS Call Processing SS 7 Interface MSC Device Management Mobility Manager (MM) Proprietary Signaling Protocol BTS Database Retrieval API calls Database Component 4
Motivation • Repeatable, Automated testing of Any UML Model Simulation – repeatable for regression testing – automated so can be run without user intervention – any active class within a model • Reactive Testing – test behaviour depends upon model behaviour – e. g. data variation such as call ids, dynamic signalling variation • Not possible with Tau G 2 Model Verifier alone – requires user to drive simulation interactively – limited support for automated scripting – scripting does not support reactive testing 5
Proposed Test Solution Integrated Application Test System TTCN-3 ATS SUT Signal Procedure Signal Based Encoder/ Decoders Database Procedure Stubs MTC Handling Signals PTC for handling Procedure Calls 6
Test System Details • Test System Comprises of – TTCN-3 ATS – Encoders/Decoders – Socket Communication – Glue code for Tau G 2 kernel – Procedure Stubs 7
Test System Details • • TTCN-3 ATS – MTC of ATS handles all message based interfaces – MTC creates a PTC upon initialization – All procedure calls are handled by the PTC – Synchronization between MTC and PTC is achieved by using a signal Encoders/Decoders – Generic Encoder/Decoder for signals • Uses the leaf level atomic data types to encode/decode • Can be reused for any TTCN-3 test system – Specific encoders/decoders for procedures • A layer of codex implemented at procedure parameter level • Can be reused within our test system 8
Test System Details • Socket Communication – Separate sockets for signal and procedure based communications – Signal based communication uses two different sockets for sending and receiving • Purely asynchronous – Procedure based communication uses a single socket for sending and receiving • Procedure calls are blocking calls which makes the model to wait till response is received • Purely Synchronous 9
Test System Details • Tau. G 2 Kernel Glue code – Code changes to queue the messages into and retrieve back from Model • Procedure Stubs – Stubs on SUT side and TTCN-3 side are implemented – Stubs duplicate the actual procedure call signatures and use the codex system to encode/decode the data 10
Test System Overview Integrated Application Socket Transport for procedure based communication TS Stubs Application Code TTCN-3 Test Case TTCN-3 System Adaptation Layer Encoder/Decoder Encoder/ Decoder Glue code Socket Transport for message based communication 11
Results • TTCN-3 ATS MTC testcase Main. Test() runs on L_Component system L_System_Component { var verdicttype testcase. Verdict; …. var L_Proc_Ptc proc. Ptc; proc. Ptc : = L_Proc_Ptc. create; proc. Ptc. start(proc. Stubs()); MP_MTC. send(sig. MTCPTC: {1}); MP_MTC. receive(sig. MTCPTC_t(1)); C_PSignals. MTC. send(Shared__sig: Shared_Create_tmpl); C_MTC. receive(Application. Heartbeat: ? )-> value hb_resp; … C_MTC. send(HBR: hb_resp); } 12
Results • TTCN-3 ATS PTC function proc. Stubs() runs on Proc_Ptc { …. while(true) { alt { []MP_PTC. receive(? )-> value mtc. Signal{ test. Case. Number : = mtc. Signal. testcase. Num; MP_PTC. send(mtc. Signal); repeat; } []proc_port. PTC. getcall(TKMain: {? }) -> param (bool){ proc_port. PTC. reply(TKMain: {bool}); repeat; } [test. Case. Number == 2]OTo. F_test. Case 2(); } …. . } Altstep OTo. F_test. Case 2() runs on Proc_Ptc { …… [OTo. F_Count == 1] proc_port. PTC. getcall(OTo. F: {? , ? }) -> param(ol, dn){ … } 13
Results • Test Execution Trace 14
Benefits • Ease of testing the systems that require concurrent simulation of multiple components • Automation of Sub-system testing • Single test system solution for testing multiple interfaces 15
Challenges • Complex changes in System Adaptation layer – TTCN-3 Encoder/Decoders – UML 2. 0 side encoder/decoder are dependant on the tool internal representation of the data • TTCN-3 limitations – External file access need to go through only external C procedures – Takes more time for the implementation – Requires more changes in Adaptation layers 16
bebe9643d4e4529077deb1674c7dea51.ppt