140 likes | 288 Views
TTCN-3 for Large Systems Thomas Deiß. The Claim of TTCN-3. [http://www.etsi.org/ptcc/ptccttcn3.htm]: Applicable to telecom and datacom testing Typical areas of application for TTCN-3 are protocols, … It can be used in many areas, for example: Robustness testing Performance testing … etc.
E N D
TTCN-3 for Large SystemsThomas Deiß TTCN-3 for Large Systems
The Claim of TTCN-3 • [http://www.etsi.org/ptcc/ptccttcn3.htm]: • Applicable to telecom and datacom testingTypical areas of application for TTCN-3 are protocols, … It can be used in many areas, for example: • Robustness testing • Performance testing • … etc. • A modern programming Language … This general purpose, flexible and user friendly test language is easier to learn, easier to use, … • Does it hold? TTCN-3 for Large Systems
What is a Large Test System? • Different test components • 3G Network Element as SUT • 10 PTCs of 5 different types • 50-60 ports at the test system interface • Many instances of a test component • 2G Network Element as SUT • Test system acts as server • Up to 40 clients • Number of clients unknown in advance • 'Large' • Many parallel test components • Different component types TTCN-3 for Large Systems
Does the Claim of TTCN-3 hold? • Suitability of TTCN-3 for large test systems? • Focus on writing test cases? • Efficiency of using TTCN-3? • Evaluation • Without writing large test systems • To prepare decision about test language • Approach • Consider a test system as a concurrent system • Solve 'standard' problems in TTCN-3 • Synchronization, broadcast, data storage, unique identifiers TTCN-3 for Large Systems
Broadcast ( Problem ) • Distribute data to several test components • Example: (dynamic) access data • Symmetric: roles of sender and receivers change TTCN-3 for Large Systems
Broadcast ( Topology ) • Logical Topology • All test components are connected • Port array • Size of array fixed • Not scalable • Many-to-one connections, send to • Need to know references pt[2].send (...) pt.send (...) to C; TTCN-3 for Large Systems
Receiver Broadcast Server Sender Receiver Receiver Broadcast ( Solution ) • Single component • Replicates messages TTCN-3 for Large Systems
Broadcast Server • Server receives a message • Sends it to all known receivers • Iterate over sending a single message • Receivers must be registered at server • Only the server needs to know the clients • Server code is simple • Acknowledgements are possible TTCN-3 for Large Systems
Broadcast Server Code function f_idle () runs on BcComp { alt { [] alt_registerReq() { repeat }; [] alt_unregisterReq() { repeat }; [] alt_dataReq(syncKind) { repeat } } } altstep alt_dataReq (…) runs on BcComp { [] g_pt_bc.receive( { dataReq := ? } ) -> value msg sender g_v_sender { for ( i := 0; i < amount ; … ) { g_pt_bc.send(msg) to g_v_workers[i] } } } TTCN-3 for Large Systems
Type of Messages • What is the type of the broadcast messages? • Generic solution must not fix the type • Port definitions • typeport BcPort message { inoutanytype }; • typeport BcPort message { inoutall }; • typerecord DataReq { anytype data, … }; • Problem • anytpe is limited to known types in a module • Not a truly generic type • Use self-defined type TTCN-3 for Large Systems
UserData module userData { typeanytype UserData; typerecordof UserData RoUserData; } importfrom userData { type UserData }; typerecord DataReq { UserData data, … }; • Possible, …… but cumbersome to use TTCN-3 for Large Systems
Instantiate User Data module userData {importfrom Mod1 { type Msg1, Msg2 };importfrom Mod2 { typeall }; typeanytype UserData; //typerecordof UserData RoUserData;} TTCN-3 for Large Systems
Results • (Non) suitability of TTCN-3 for large systems • Technical results • Server-like components can be written • Open types are hard to use • Feedback to Standardization • Broadcast will become part of TTCN-3 • pt.send ( a_msg ) toall; • anytype will remain as is • Instantiation with specific types should be used • Synchronization, data storage, unique identifiers TTCN-3 for Large Systems
Test the Test Language TTCN-3 for Large Systems