1 Konformancia tesztelés Csöndes Tibor Ericsson Kft., R&D, BME-TMIT
2 Protokoll technológia (Protocol Engineering) Szöveges protokoll leírás Formális protokoll specifikáció Teszt készlet Protokoll implementáció Specifikálás Konformancia vizsgálatok Implementálás Verifikálás Tesztsorozat generálás Validálás
3 Kapcsolat a különböző leírónyelvek között TTCN SDL UML MSC ASN.1 Megvalósítás Tesztrendszer Követelmények definiálása Követelmények definiálása Követelmények definiálása Validáció Tesztgenerálás Újra felhasználás Kódgenerálás Konformancia teszt Újra felhasználás Validáció Kódgenerálás
4 Conformance Testing Methodology and Framework (CTMF) A szabványokat eredetileg OSI protokollok tesztelésére fejlesztették ki ISO/IECITU-TTitle X.290General Concepts X.291Abstract Test Suite Specification Multi-protocol Testing Multi-party Testing X.292TTCN Notation Concurrent TTCN Encoding and Modular TTCN X.293Test Realization X.294Requirements on Test Laboratories and Clients for the Conformance Assessment Process X.295Protocol Profile Test Specification X.296Implementation Conformance Statements
5 Terminológia ASPAbstract Service Primitive ATMAbstract Test Method CPCoordination Point IUTImplementation Under Test LTLower Tester PCOPoint of Control & Observation PCTRProtocol Conformance Test Report PICSProtocol Implementation Conformance Statement PIXITProtocol Implementation Extra Information for Testing PDUProtocol Data Unit SCSSystem Confomance Statement SCTRSystem Conformance Test Report SUTSystem Under Test TCPTest Coordination Procedure UTUpper Tester
6 Az IUT egy fekete doboz Látható viselkedés PCO-kon keresztül vezérelhető és megfigyelhető A PDU-k ASP-be beágyazva kerülnek küldésre és fogadásra a felső (UT) vagy az alsó (LT) teszter által A teszt koordináció többrésztvevős tesztelés esetén koordinációs pontokon (CP) keresztül történik IUT PCO m PCO n ASP1 PDU1 ASP2 PDU2 ASP4 PDU4 ASP3 PDU3 UT m LT n Conformance Testing Methodology and Framework - CTMF
7 Követelmények csoportosítása Kötelező (mandatory) –Mindenképp teljesíteni kell Feltételes (conditional) –Adott feltételektől függően kell teljesíteni Opcionális (options) –Gyártó által szabadon választható Pozitív vagy negatív Statikus vagy dinamikus
8 Konformancia tesztek típusai Basic Interconnection Tests –Alapvető konformancia követelményeket teljesíti-e a rendszer Capability Tests –Az alap képességek összhangban vannak-e a ICS-sel Behaviour Tests –Igazi tesztek melyekkel a megfigyelhető viselkedést teszteljük Conformance Resolution Tests –Nem szabványos tesztek, protokoll részleteibe menő tesztelés
9 Konformancia tesztelés módszertana A tesztelés lépései: 1.Tesztelés előkészítése (PICS, PIXIT, parametrizálás) 2.Teszt végrehajtás - test campaign (teszt kiválasztás) 3.Teszt jelentés elkészítése (PCTR, SCTR) Teszt cél (Test Purpose): egy vagy több követelmény megfogalmazása Teszt eset (Test Case): egy teszt cél megvalósítása (ETSI), ITU-nál nem minden esetben egyértelmű a megfeleltetés A teszt esetek teszt csoportokba gyűjthetők az absztrakt tesztsorozatban (ATS)
10 Conformance assessment process overview
11 Konformancia tesztelés dokumentumai Conformance Report (PCTR) Protocol Standards TSS&TP PICS PIXIT IUT ATS Tester equipment Static TestingDynamic Testing Abstract Test Suite Specification in TTCNTest RealisationConformance Assessment PICS:Protocol Implementation Conformance StatementATS:Abstract Test suite PIXIT: Protocol Implementation eXtra InformaTionPCTR:Protocol Conformance Test Report
12
13 Alsóbb réteg-szolgálat FELSŐ TESZTELŐ Absztrakt teszt módszerek egy résztvevős tesztelés esetén ALSÓ TESZTELŐ PCO n PCO m Teszt koordináció ATMs: Helyi, Távoli, Elosztott és Koordinált (X.290 vagy ISO9646-1) teszt architektúra IUT
14 Teszt módszerek csoportosítása Mind az alsó és mind a felső tesztelő PCO-ja elérhető: –Helyi (Local) Felső PCO egy szabványos hardver interfész –Elosztott (Distributed) Felső tesztelő az SUT része (akár szabványos TTCN nyelven) Csak az alsó tesztelő PCO-ja érhető el: –Koordinált (Coordinated) Felső tesztelő szabványos teszt menedzsment protokollal vezérelhető –Távoli (Remote) Nincs igazi felső tesztelő vagy nem érhető el, teszt koordináció is esetleges (helyette pl. implicit send lehet)
15
16
17
18
19 Teszt készlet felépítése
20 Protocol life cycle and testing Base specification of the protocol Protocol implementations Implementation Formal specification of the protocol Formal description verification Test Case gen. (auto- mated) Abstract Test Suite (ATS) Test Purposes Test Case implementation (manual) Test Purpose generation (manual) Implementation
21 A Test Case consists of... PREAMBLE: Place the IUT in a desired stable/idle state TEST BODY: Implements the test case purpose. May use test steps, defaults, pseudo- events, qualifiers, timers, variables, PCOs, CPs, PDUs, ASPs defined in the ATS Declarations and Constraints part. VERIFICATION: Try to determine if the IUT is in the correct end state following execution of the test case body (optional). POSTAMBLE: Return the IUT to a known stable/idle state Start-up State Typical Test Case Structure Stable/Idle State Test State End State VERIFICATION PREAMBLE TEST BODY POSTAMBLE +PREAMBLE +TEST_BODY +VERIFICATION +POSTAMBLE optional
22
23 PTCPTC PTCPTC Test architecture for Concurrent TTCN MAIN TEST COMPONENT UNDERLYING SERVICE PROVIDER PCOPCO PCOPCO CPCP CPCP PTCPTC PTCPTC PTCPTC PCOPCO PCOPCO PCOPCO CPCP CPCP CPCP CP PTC PTC:Parallel Test Component CP CP: Co-ordination Point IUT IUT: Implementation Under Test PCO PCO: Point of Control and Observation IUT
24 What is Model Based Testing Conventional Testing vs. Model Based Testing Manual Design Model TC#1 TC#2TC#N TestSuite Specification Manual Design TCP Connection establishment “The active open is performed by the client sending a SYN to the server. It sets the segment's sequence number to a random value A. In response, the server replies with a SYN-ACK. The acknowledgment number is set to one more than the received sequence number (A + 1), and the sequence number that the server chooses for the packet is another random number, B. Finally, the client sends an ACK back to the server. The sequence number is set to the received acknowledgement value, and the acknowledgement number is set to one more than the received sequence number i.e. B + 1. “ TCP Connection establishment “The active open is performed by the client sending a SYN to the server. It sets the segment's sequence number to a random value A. In response, the server replies with a SYN-ACK. The acknowledgment number is set to one more than the received sequence number (A + 1), and the sequence number that the server chooses for the packet is another random number, B. Finally, the client sends an ACK back to the server. The sequence number is set to the received acknowledgement value, and the acknowledgement number is set to one more than the received sequence number i.e. B + 1. “ Model Based Testing
25 Test Harness What is Model Based Testing Conventional Testing vs. Model Based Testing Model Algorithmically generated TC#1 TC#2TC#N Algorithmically generated TestSuites
26 The Model Model description Model Pure language based: C++; Java; C#; TTCN-3 Graphical based: FSM; Petri Net; Label Transition System Mixed: Graphical Solution extended by a language (c++; java; C#...etc.) Programming competence
27 The Algorithm Magic Algorithm: describes how to generate the Test cases Model TC#1TC#2 TC#N TestSuites Coverage: Traverse every state Traverse some state Traverse every link …etc
28 Model Based Testing on Field Pros and Cons of Model Based Testing –Reduces fault slip through Design phase Testing phase Development time Testing phase Model development of the Design and model development of the Testing could take place parallel model development for testing verifies the model of the design some faults could be found in the “development phase” Reduces development time Model Driven Engineering
29 Model Based Testing Why? Pros and Cons of Model Based Testing –Reduces fault slip through –Maintenance Model ›If the specification changes TC#1TC#2 TC#N TestSuites ›Change all the affected TestCases + TestHarenss ›Complicated !! ›Modify the Model ›Easier maintenance!! Test Harenss
30 INRES system (Initiator - Responder) Inres entity INRES protokoll Inres user Medium Service ISP MSP ISPInres Service Primitives MSPMedium Service Primitives
31 Kapcsolatépítés (1) IDISind (6’) ICONreq (1) ICONconf (6) ICONind (3) ICONresp (4) IDISreq (4’) CR (2) CC (5) DR (5’) ICONreqInres CONnection request ICONindInres CONnection indication ICONresInres CONnection response ICONconfInres CONnection confirmation IDISreqInres DISconnect request IDISindInres DISconnect indication CRConnection Request CCConnection Confirm DRDisconnect Request
32 Kapcsolatépítés (2) IDIS ind (6’) ICON req (1) ICON conf (6) ICON ind (3) ICON resp (4) IDIS req (4’) CR (2) CC (5) DR (5’) Ha <5 sec-on belül nem jön válasz, max. 4-szer kéri a kapcsolat felépítését ICON req (1) ICON ind (3) CR (2) Sikeres kapcsolat- felépítés Sikertelen kapcso- latfelépítés
33 Adatátvitel IDAT req (ISDU) IDAT ind (ISDU) DT (ISDU, sorszám) AK (sorszám) IDAT reqInres DATa request IDAT indInres DATa indication ISDUInres Service Data Unit DTDaTa AKAcKnowledgement
34 Bontás IDIS ind IDIS req DR IDIS reqInres DISconnect request IDIS indInres DISconnect indication DRDisconnect request
35 Formális nyelven történő leírás INITIATOR SYSTEM INRES - PROT BLOCK MEDIUM MDAT req MSAP1 MSAP2 ISAPISAP MDAT ind ISAPINI ICON conf IDIS ind ICON req IDAT req RESPONDER MDAT req ISAPISAP MDAT ind ISAPRES ICON ind IDAT ind ICON resp IDIS req CR, DT CC, AK DR