Garden Of Eatin\' Nov \'09

  • Published on
    31-Oct-2014

  • View
    8

  • Download
    0

Embed Size (px)

DESCRIPTION

Pics taken in the Garden from October and November

Transcript

  • 1. V&V EYYW Prsent parEYYWIFORMATION OUTILS DE VERIFICATION RATIONAL TEST REAL TIME SYSTEM TESTING Attention : cette formation est une prsentation gnrale du produit. Se reporter ladocumentation fournisseur pour obtenir des informations plus dtailles

2. Produit RTRT UN PRODUIT, UNE LICENCE, DES OUTILS IBM-RationalTest RealTime (30 licences) Component Testing => test unitaires de composant Coverage => analyse de couverture structurelle System Testing => tests dintgration client/serveur Tracer => fourniture de traces de flot de contrle Purify => dtection dbordement mmoire Quantify => mesure de temps CPU Rational Test RealTime Virtual Testers xxx(2 licences spcifiques) superviseur en interface avec RTRT System AIRBUS FRANCE S.A.S. All rights reserved. Confidential and proprietary document. Testing 3 LANGAGES : C, C++, ADA 3 PLATE-FORMES : SUN SOLARIS, PC NT et PC LINUX DES RUNTIMES STANDARD (adapts par EYYWI) Page 2 3. Situation des outils dans la gamme RTRT Place des outils dans le cycle de dveloppement et devrificationEchange de messagesAppel de fonction Intgration progressive Intgration de sous- de composants de sous- ensemble ensemble AIRBUS FRANCE S.A.S. All rights reserved. Confidential and proprietary document.Vrification unitaire deVrification dintgration Intgrationcomposant de sous-ensemble isol finale & Validation Component Testing System Testing CoverageTracerPage 3 4. Type de logiciel adapt lutilisation de RTRTSystem Test? ATC AOC AFN ADS ... ...STRUCTURE D'ACCUEILACEM GEST BITE .... INIT OPERATING SYSTEM (Unix Tps Rel) AIRBUS FRANCE S.A.S. All rights reserved. Confidential and proprietary document.Carte CPU ARINC Carte I/O RTRT System Test adapt la vrification de tout ou partiede logiciel communicant Page 4 5. A quoi a sert ? Simulation de processuscommunicants au sein dun systme Application sous testTesteur 1 (complte simulant une fonctionnalitde lapplication sous testou partielle)Type client serveur API de lapplicationsous test AIRBUS FRANCE S.A.S. All rights reserved. Confidential and proprietary document.Testeur 2 simulant une fonctionnalitde lapplication sous testAPI de lapplicationsous test Page 5 6. A quoi cela sert ? Simulation de systmes externescommunicants Supervisor EXECUTABLE DE TESTTester 1Tester 2Tester nTesteur ssens_xx__1.ptu System Under Test (SUT) sous-ensembles tester AIRBUS FRANCE S.A.S. All rights reserved. Confidential and proprietary document. MUXAPI AirbusOS Simulation Controlling Interface libraries libraries OS SimulationOSSCI ServerOS Simulation Connection MULTIPLEXEURExemple : Tests de sous-ensembles trs communicants sur lIMA A380 Page 6 7. Fabrication des testeursdescription scnario de test des messages (.h)Runtime spcifique APIRapports danomaliesPrprocesseur la cible Librairies AIRBUS FRANCE S.A.S. All rights reserved. Confidential and proprietary document. Compilation / LinkT1Tn Page 7 8. Excution des testeurs T1Application TnSous Test NatifSimulateurExcution Emulateur Cible spcifique Rsultats AIRBUS FRANCE S.A.S. All rights reserved. Confidential and proprietary document. PostprocesseurRapport des testsfonctionnels Page 8 9. Principe de communicationLes tests dcrits pat lelangage de RTRT System Language de test systemeTesting sont des testsdvelopps au dessusdinterfaces daccs Scnarios de tests(Application ProgrammeInterface) Send WaittilApplication sous testChaque test est compos Couche dadaptationprincipalement dunepartie appel de service AIRBUS FRANCE S.A.S. All rights reserved. Confidential and proprietary document.(SEND) et dune partie Application APIgestion vnementielle(WAITTIL) Couche de CommunicationPage 9 10. Formation Outils de VrificationRTRT System TestingLangage de description de scnarioRTRT System Testing AIRBUS FRANCE S.A.S. All rights reserved. Confidential and proprietary document. Page 10 11. Types dinstruction Les instructions commencent par un mot-cl en majuscule (CALL, SEND, WAITTIL, SCENARIO, INSTANCE, ) Des instructions en langage natif C4 Dclarations des paramtres des services, de variablesretour, des variables locales Elles commencent par #et sont analyses Autres instructions C (notamment appel des fonctionsde lapplication sans CALL) Elles commencent par @et ne sont pas analyses Des commentaires AIRBUS FRANCE S.A.S. All rights reserved. Confidential and proprietary document. commenant par les caractres aide la comprhension des scripts de tests scnarios commenant par le mot-cl COMMENT, aide lacomprhension des rsultats de test Page 11 12. Structuration dun script de test## include api.h INITIALIZATION init_proc() Dclarations des donnes et TERMINATION end_proc()des fonctions utilies au EXCEPTION recover_proc()sein du script de test DECLARE_INSTANCE simulator1 SCENARIO main [ LOOP n] FAMILY , ...Initialisation,terminaison etSCENARIO test_case1rcupration sur erreur parEND SCENARIO -- test_case1niveau de scnarioSCENARIO test_case2INSTANCE simulator1END INSTANCE -- simulator1 Dcomposition en INSTANCE simulator2SCENARIOsous SCENARIOS AIRBUS FRANCE S.A.S. All rights reserved. Confidential and proprietary document. END INSTANCE -- simulator2 END SCENARIO -- test_case2END SCENARIO -- main Un scenario peut tre divis enplusieurs INSTANCE pourdfinir des comportementsasynchrones (comme un filtre) Page 12 13. Structuration de scnario par les PROCduresPROC ( ) END PROCPour chaque paramtre : Chaque procdure doit tre dfinie en dbut de scnario Lappel de la procdure est ralis via linstruction CALL Les blocs dINSTANCE peuvent tre utiliss au sein des procdures AIRBUS FRANCE S.A.S. All rights reserved. Confidential and proprietary document. Page 13 14. Exemple dutilisation des PROCdures Exemple:PROC connection ( )CALL socket( AF_UNIX, SOCK_STREAM, 0) @@ idCALL connect(id, mailbox, len)END PROC PROC write ( t_string message )CALL write(id, message, strlen(message))END PROC...SCENARIO send_messageCALL connection( ) AIRBUS FRANCE S.A.S. All rights reserved. Confidential and proprietary document.CALL write( Hello" )... Page 14 15. Environnement dinitialisation Un environnement d'initialisation est dfini pour un niveaude scnario donn Il est excut avant chaque scnario de mme niveau Syntaxe 1 : INITIALIZATION Instructions en langage ATS END INITIALIZATION Syntaxe 2 : AIRBUS FRANCE S.A.S. All rights reserved. Confidential and proprietary document. PROC Fonction() Instructions en langage ATS END PROC INITIALIZATION Fonction()Page 15 16. Exemple dinitialisation Exemple : PROC connection( ) CALL socket( AF_UNIX, SOCK_STREAM, 0) @@ id CALL connect(id, mailbox, len) END PROC ... INITIALIZATION connection( )SCENARIO address_request INITIALIZATION connect2( ) SCENARIO my_request ... AIRBUS FRANCE S.A.S. All rights reserved. Confidential and proprietary document. END SCENARIO ... END SCENARIOSCENARIO name_request ... END SCENARIO Page 16 17. Environnement de terminaison Un environnement de terminaison est dfini pour un niveau descnario donn Il est excut la fin de chaque scnario de mme niveau Syntaxe 1 :TERMINAISONInstructions en langage ATSEND TERMINAISON AIRBUS FRANCE S.A.S. All rights reserved. Confidential and proprietary document. Syntaxe 2 :PROC Fonction()Instructions en langage ATSEND PROCTERMINAISON Fonction() Page 17 18. Exemple denvironnement de terminaisonExemple : TERMINATION CALL free( pointer ) CALL close(id) END TERMINATION ... SCENARIO address_request ... END SCENARIO AIRBUS FRANCE S.A.S. All rights reserved. Confidential and proprietary document. SCENARIO name_request ... END SCENARIOPage 18 19. Environnement dexception Un environnement d'exception est dfini pour un niveau descnario donn Il est excut aprs la fin de chaque scnario de mmeniveau dans le cas o chacun de ces scnarios se termine surerreur Il est excut aprs chaque squence ERROR Syntaxe 1 : AIRBUS FRANCE S.A.S. All rights reserved. Confidential and proprietary document. EXCEPTIONInstructions en langage ATS END EXCEPTION Syntaxe 2 : PROC Fonction() Instructions en langage ATS END PROC EXCEPTION Fonction()Page 19 20. Exemple denvironnement dexception Exemple :EXCEPTIONCALL close(id)END EXCEPTION...SCENARIO address_request...END SCENARIO AIRBUS FRANCE S.A.S. All rights reserved. Confidential and proprietary document.SCENARIO name_request...END SCENARIO Page 20 21. Environnement de nettoyage Un environnement de nettoyage permet de paramtrerles actions d'exception Possibilit d'armer ou de dsarmer l'appel de ces blocsde manire dynamique Syntaxe : ENABLE_CLEANUP L'appel de la procdure est arm : la procdureest appele en cas de sortie en erreur sur le AIRBUS FRANCE S.A.S. All rights reserved. Confidential and proprietary document.scnario courantDESABLE_CLEANUP L'appel de la procdure est dsarm : la procdure n'est plus appele en cas de sortie d'erreur sur le scnario courantPage 21 22. Exemple denvironnement de nettoyageExemple :SCENARIO send_message CALL memory_allocate( ) @ OKENABLE_CLEANUP free_memory( )CALL send( message ) @ OK...DISABLE_CLEANUP free_memory( )... END SCENARIO AIRBUS FRANCE S.A.S. All rights reserved. Confidential and proprietary document. Page 22 23. Gestion des instances (filtres) INSTANCE simulator1 INSTANCE simulator2INITIALIZATION init_proc() TERMINATION end_proc() EXCEPTION recover_proc()init_proc()init_proc()SCENARIO main RENDEZVOUS startRENDEZVOUS startRENDEZVOUS start INSTANCE simulator1SEND (msg1,ch1)END INSTANCE -- simulator1SEND (msg1,ch1) VAR x, init=56 VAR x, init=56 INSTANCE simulator2 VAR x, init=56 SEND (msg2,ch2)SEND (msg2,ch2)END INSTANCE -- simulator2 AIRBUS FRANCE S.A.S. All rights reserved. Confidential and proprietary document.RENDEZVOUS endRENDEZVOUS endRENDEZVOUS endEND SCENARIO -- mainend_proc() end_proc() Page 23 24. Instructions de contrleSCENARIO exemple WHILE (TIME(mytimer) < 100)BouclesRENDEZVOUS start_exemplePoint de synchronisationIF (sync == 0) THEN IF THEN ELSE bloc conditionnelVAR creq, INIT={send=> , neg=>{opt=>}}SEND (mylink, creq)Initialisation de donnes avec de multiples END IFpossibilitsTIMER mytimerEnvoi dvnement via un messagePRINT elapsed,TIME(mytimer)DEF_MESSAGE cresp, EV= { }Positionnement de timer et affichage AIRBUS FRANCE S.A.S. All rights reserved. Confidential and proprietary document.WAITTIL(MATCHED(cresp)||MATCHING(cack),WTIME>15)Definition de contraintes sur les vnementsattendusCALL myexternal_func()Attente dvnement via des combinaisons@func()de conditionsEND WHILE END SCENARIO -- exemple Appel de fonction externe particulire Page 24 25. Appel de fonctions ou de procdures CALL ( ) valeur dinit @ @ pour chaque paramtre : valeur dinit @ valeur attendue @ variable destockage La fonction CALL permet dappeler une fonction externe ou une procdure avec une trace dans le rapport de test Pour chaque paramtre et la variable de retour, il peut tre test la valeur dinitalisation et la valeur attendue AIRBUS FRANCE S.A.S. All rights reserved. Confidential and proprietary document.Rq : NIL et NONIL doivent tre utiliss pour les pointeurs Page 25 26. Interface dappel via le CALLExemple :...CALL malloc(100) @ NONIL @ bufCALL read ( id, @ Hello" @ buf, 100 ) @@ len...| INIT --------- | EXPECTED VAL - | OBTAINED VAL - |CALL malloc ----------------------------------------------- | ---[4 ms,3 ms] || 100|| 100|buf || NONIL| 0x4001B568 |CALL read ------------------------------------------------- | ---[7 ms,1 ms] || 4|| 4|buf || Hello"| Hello| AIRBUS FRANCE S.A.S. All rights reserved. Confidential and proprietary document.| 100|| 100|len ||| 5|Page 26 27. Manipulation de donnes par le VARVAR , INIT = VAR , EV = VAR , EV = [min..max] VAR , EV == VAR permet de raliser une initialisation une rcuparion de valeur obtenue une comparaison de valeur attendue avec la valeur obtenue sur une variable simple, un tableau ou une structure AIRBUS FRANCE S.A.S. All rights reserved. Confidential and proprietary document. Seules les lignes avec EV sont dans le rapport de test NIL et NONIL doivent tre utiliss pour les pointeurs OTHERS permet de complter un tableau ou une structure [min..max] permet de contler lappartenance dune valeur un interval de valeursPage 27 28. Exemple de VAR sur un tableauExemple :int tab[8];VAR tab, INIT= { 1, 8, 8, 8, 1, 1, 1, 1 }VAR tab, EV= 1VAR tab, EV= { 0 =>1, 1..3 =>8, 4..7 =>1 }VAR tab, EV= [ 1..3 =>8, OTHERS => 1 ]VAR tab ----------------------------- | EXPECTED VAL - | OBTAINED VAL --|tab[0]| 1| 1|==> tab[1..3] | 1| 8|tab[4..7] | 1| 1|VAR tab ------------------------------- | EXPECTED VAL - | OBTAINED VAL --| AIRBUS FRANCE S.A.S. All rights reserved. Confidential and proprietary document.tab[0]| 1| 1|tab[1..3] | 8| 8|tab[4..7] | 1| 1|Page 28 29. Exemple de VAR sur une structure Exemple : struct { int x,y,z } point; VAR point, EV= 0 VAR point, EV= { z=>1, OTHERS=>0 } VAR object_list, EV={current=>{name=>yellow", size=>3}, next=>NONIL}VAR point --------------------------------- | EXPECTED VAL - | OBTAINED VAL --|point.x | 0| 0|point.y | 0| 0|point.z | 0| 0|VAR point --------------------------------- | EXPECTED VAL - | OBTAINED VAL --|point.x | 0| 0|point.y | 0| 0| AIRBUS FRANCE S.A.S. All rights reserved. Confidential and proprietary document.point.z | 1| 1|VAR object_list --------------------------- | EXPECTED VAL - | OBTAINED VAL --|object_list.courant.name| yellow" | yellow" |object_list.courant.size| 3| 3|object_list.next| NONIL| 0x4e7f6820 | Page 29 30. Formatage des donnes avec FORMAT FORMAT = FORMAT = FORMAT = Modifie le format dimpression dune variable Permet dafficher tous les types de donnes(donnes de base champ de structure) Supporte les formats en binaire (#B), hexa (#H) et dcimal AIRBUS FRANCE S.A.S. All rights reserved. Confidential and proprietary document.(#D)Page 30 31. Exemple de formatage avec FORMAT Exemple : char buffer[100]; typedef struct { int ax; int bx; int cx; } 8088_reg_t;FORMAT buffer = unsigned char[32] FORMAT buffer = #HVAR buffer ---------------------------------| EXPECTED VAL -------------- |buffer[0..7] | 3132338AAB363738 123..678 |buffer[8..15]| 3132333435000038 12345..8 |buffer[16..23] | 0000003435363738 ...45678 |buffer[24..31] | 31323334357F8F9F 12345... | AIRBUS FRANCE S.A.S. All rights reserved. Confidential and proprietary document. Page 31 32. Autre exemple de formatage avec FORMAT Exemple :typedef struct { int ax; int bx; int cx; } 8088_reg_t;8088_reg_t cpu_01; FORMAT 8088_reg_t.ax = #BFORMAT 8088_reg_t.bx = #HVAR cpu_01 ----------------------------- | EXPECTED VAL ------------------- |cpu_01.ax | 00000000000000000000000011100100 |cpu_01.bx | 17 | AIRBUS FRANCE S.A.S. All rights reserved. Confidential and proprietary document.Page 32 33. Principe dchange de message SEND/WAITTIL Linstruction SEND permet : denvoyer un message (ou vnement) sur un canal decommunication de dcomposer lenvoi du message dans le rapport de test Exemple : VAR event, INIT={type =>DATA,user=>"TITI",value=>53} SEND (event, channel) Linstruction WAITTIL permet : - dattendre un ou plusieurs vnements (o...