garden of eatin\' nov \'09
Embed Size (px)
DESCRIPTION
Pics taken in the Garden from October and NovemberTRANSCRIPT
- 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 [email protected]()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 (ou messages) - de vrifier lordre dapparition des vnements - de matriser labsence dvnement au travers dun timeout AIRBUS FRANCE S.A.S. All rights reserved. Confidential and proprietary document. - dapprhender les vnements inopportuns Exemple : DEF_MESSAGE Evt1, EV={type =>ACK } DEF_MESSAGE data, EV={type =>DATA,user=>"TOTO"} WAITTIL ( MATCHED(Evt1) && MATCHING(data) , WTIME>timeout || MATCHED(Evt3) ) Page 33 34. Envoi dun message/vnement par SEND SEND ( , ) Envoi dun message complet sur un canal de communication Affichage des caractristiques du message envoydans le rapport de test Le message doit pralablement tre dclar par MESSAGEet initialis par DEF_MESSAGE AIRBUS FRANCE S.A.S. All rights reserved. Confidential and proprietary document. Permet denvoyer un message sur plusieurs canaux decommunication au travers des couches dadaptation (PROCSEND)Page 34 35. Rcupration dun vnement par WAITTILWAITTIL ( , ) Attend deux expressions boolennes composes dvnementssi est VRAI => le scnario est KO (exception)si est VRAI => le scnario est OK Permet dattendre une combinaison de plusieurs vnements(chacun dclar par MESSAGE et initialis dans DEF_MESSAGE) Une expression boolnne (ou un vnement) peut tre encapsule parMATCHING, NOTMATCHING, MATCHED, NOTMATCHED AIRBUS FRANCE S.A.S. All rights reserved. Confidential and proprietary document.La variable WTIME est un timeout (incrmente chaque dblocage d'attente vnementielle) pour viter les bloquagesPage 35 36. Encapsulation dvnement par MATCHING MATCHING( {[, )]} ) Retourne VRAI si le dernier message reu durant le WAITTILcorrespond au message attendu. Si on spcifie un canal,retourne vrai seulement si le message a t reu sur ce canalde communication Exemple :CHANNEL ux_socket: chSCENARIO Main AIRBUS FRANCE S.A.S. All rights reserved. Confidential and proprietary document.DEF_MESSAGE msg_1, EV={100,10}DEF_MESSAGE msg_2, EV={200,20}...WAITTIL(MATCHING(msg_1) || MATCHING(msg_2,ch),WTIME==10)Page 36 37. Encapsulation dvnement par MATCHED MATCHED ( {[, )]} ) Retourne VRAI si un des messages reus durant le WAITTILcorrespond au message attendu. Si on spcifie un canal,retourne vrai seulement si le message a t reu sur ce canalde communicationExemple : CHANNEL ux_socket: ch AIRBUS FRANCE S.A.S. All rights reserved. Confidential and proprietary document. SCENARIO Main DEF_MESSAGE msg_1, EV={100,10} DEF_MESSAGE msg_2, EV={200,20} ... WAITTIL(MATCHED(msg_1) || MATCHED(msg_2,ch),WTIME==10)Page 37 38. Encapsulation dvnement par NOTMATCHING NOTMATCHING ( {[, )]} ) Retourne VRAI si le dernier message reu durant le WAITTIL ne correspond pas au message attendu. Si on spcifie un canal, retourne vrai seulement si le dernier message na pas t reu sur ce canal de communicationExemple :CHANNEL ux_socket: chSCENARIO MainDEF_MESSAGE msg_1, EV={100,10} AIRBUS FRANCE S.A.S. All rights reserved. Confidential and proprietary document.DEF_MESSAGE msg_2, EV={200,20}...WAITTIL(WTIME==10, NOTMATCHING(msg_2,ch))...IF (NOTMATCHING(msg_2,ch)) THEN Page 38 39. Encapsulation dvnement par NOTMATCHED NOTMATCHED ( {[, )]} ) Retourne VRAI si un des messages reus durant le WAITTIL ne correspond pas au message attendu. Si on spcifie un canal, retourne vrai seulement si le message na pas t reu sur ce canal de communication Exemple : CHANNEL ux_socket: ch SCENARIO Main DEF_MESSAGE msg_1, EV={100,10} AIRBUS FRANCE S.A.S. All rights reserved. Confidential and proprietary document. DEF_MESSAGE msg_2, EV={200,20} ... WAITTIL(WTIME==10, NOTMATCHED(msg_1)) ... IF (NOTMATCHED(msg_1,ch)) THEN ... Page 39 40. Gestion des (NOT)MATCH(ING/ED) TempsEvnement E1E2E3 MATCHING(E2)FAUXVRAIFAUXNOTMATCHING(E2) VRAIFAUXVRAIMATCHED(E2) FAUXVRAIVRAI AIRBUS FRANCE S.A.S. All rights reserved. Confidential and proprietary document.NOTMATCHED(E2)VRAIVRAIVRAINOTMATCHED(E1)FAUXVRAIVRAI Page 40 41. Initialisation des messages par DEF_MESSAGEDEF_MESSAGE , EV = Initialise les champs du message Le message doit tre dclar par MESSAGE Utilisation de VAR , EV =expression est possibleExemple : AIRBUS FRANCE S.A.S. All rights reserved. Confidential and proprietary document. ... DEF_MESSAGE Request, EV={code=>'R'} DEF_MESSAGE Ack, EV={code=>['A..Y]} DEF_MESSAGE Request, EV={code=>'R', nom=>"ALL"}Page 41 42. Dclaration des messages par MESSAGEMESSAGE : [, FlightReport } char flight_name[8]; WAITTIL(MATCHING(air_msg), unsigned char class_name; WTIME == 100) } data;... } aircraft_data_t;IF (air_msg.flight_number == 321)THEN...Page 42 43. Formation Outils de VrificationRTRT System Testing Couche dadaptation des scnariosRTRT System Testing AIRBUS FRANCE S.A.S. All rights reserved. Confidential and proprietary document. Page 43 44. Objectif : simplification des changes par ladfinition dune couche dadaptation lapi La couche dadaptation permet : ladaptation linterface de communication (API) entre le testeuret lapplication sous test Lassociation chaque couple[type de message - type de canal de communication]via deux procdures (PROCSEND et CALLBACK)pour envoyer et recevoir des messages vers lAPI AIRBUS FRANCE S.A.S. All rights reserved. Confidential and proprietary document. La dfinition et la communalisation de procdures gnriques etsimples utiliser dans les scnarios Elle permet avant tout de rendre indpendants les scnarios vis- -vis de lAPI de communicationPage 44 45. Dfinition de la procdure PROCSENDPROCSEND : ON : END PROCSEND Une procdure PROCSEND fournit le mcanisme denvoi de message ou dvnement dun certain type au travers dune interface spcifique Une procdure PROCSEND est dfinie par couple[] AIRBUS FRANCE S.A.S. All rights reserved. Confidential and proprietary document. Les donnes transmises doivent au pralable avoir t dclares par linstruction MESSAGE Le type de communication doit avoir t dclar par linstruction COMMTYPE Page 45 46. Exemple de PROCSEND typedef enum { e_name, e_id, e_balance } client_kind_t ; typdef struct {int id ;float balance} client_info_t; COMMTYPE socket IS socket_id_t CHANNEL socket: ch MESSAGE client_info_t: msg #socket_id_t id;PROCSEND message_t: msg ON appl_comm: id CALL socket (sock_type, SOCK_DGRAM, 0) @ 0 END PROCSEND AIRBUS FRANCE S.A.S. All rights reserved. Confidential and proprietary document. SCENARIO Principal ADD_ID(ch,id) SEND (msg,ch) END SCENARIOPage 46 47. Dfinition de la procdure CALLBACKCALLBACK : ON : END CALLBACK Une procdure CALLBACK fournit le mcanisme derception de message ou dvnement dun certain typede communication au travers dune interface spcifique Une procdure CALLBACK est definie par couple[ , ] AIRBUS FRANCE S.A.S. All rights reserved. Confidential and proprietary document. Les donnes transmises doivent au pralable avoir t dclarespar linstruction MESSAGE Le type de communication doit avoir t dclarpar linstruction COMMTYPEPage 47 48. Particularits de la procdure CALLBACKCALLBACK : ON : END CALLBACK La procdure CALLBACK ne doit pas tre bloquante ! Soit elle retourne un mesage dans identifiant_msg Soit elle signale quaucun message valable nest parvenu par linstruction NO_MESSAGE AIRBUS FRANCE S.A.S. All rights reserved. Confidential and proprietary document. Il est possible de marquer dans le temps la rception du message par linstruction MESSAGE_DATE Page 48 49. Exemple dutilisation de CALLBACK CALLBACK MySocketMsg:msg ON ux_socket:id ... VAR timeout, INIT=0 or ATL_TIMEOUT CALL FD_SET(id,&readfds) CALL select(FD_SETSIZE,&readfds,NULL,NULL,&timeout)@@retIF (ret == 0) THENNO_MESSAGE END IFCALL read (id[i], &msg, sizeof(MySocketApi)) MESSAGE_DATE END CALLBACK AIRBUS FRANCE S.A.S. All rights reserved. Confidential and proprietary document.PROCSEND MySocketMsg:msg ON ux_socket:idCALL write (id, &msg, sizeof(msg)) END PROCSEND Page 49 50. Dclaration de communication par COMMTYPE COMMTYPE IS Dclare un type de communication pour une interfacelogicielle est un typedef C qui dfinit rellement letype de communication AIRBUS FRANCE S.A.S. All rights reserved. Confidential and proprietary document. Page 50 51. Dclaration de canal de com. par CHANNELCHANNEL : [, canal_2, ... ,canal_n ] Dclare un canal logique de communication associ un type de communication (dclar par COMMTYPE) Un canal logique de communication peut multiplexer plusieurs connexions de mme type AIRBUS FRANCE S.A.S. All rights reserved. Confidential and proprietary document.Page 51 52. Contrle dynamique de connexion par ADD_IDADD_ID ( , )CLEAR_ID ( ) ADD_ID associe un canal logique une connexion physique Le doit avoir t dclar au pralablepar linstruction CHANNEL L doit tre une variablereprsentant la connexion physique dclare AIRBUS FRANCE S.A.S. All rights reserved. Confidential and proprietary document.par linstruction COMMTYPE CLEAR_ID supprime lassociation canal logique/connexionPage 52 53. Exemple de couche dadaptation (1) Exemple : les SOCKETS Exemple du fichier dinterface (interface.h)intsocket(int af, int type,int protocol);intconnect (int s, void *addr, int addrlen);size_t write (int fd, void *buf, size_t n_byte);size_t read(int fd, void *buf, size_t n_byte);intclose (int fd); AIRBUS FRANCE S.A.S. All rights reserved. Confidential and proprietary document./* Types de donnes changes */ typedef struct{ int code;char *nom;char *numero; } MySocketMsg; Page 53 54. Exemple de couche dadaptation (2)Exemple de plan de test existant (client.pts)COMMTYPE ux_socket IS integer_tCHANNEL ux_socket : main_server, second_server SCENARIO send_message ... #integer_t id; CALL socket(AF_UNIX, SOCK_STREAM, 0) @@ id -- Phase de connexion : connect socket ... ..... ADD_ID (main_server, id) -- Prt attendre les vnements du canal main_server AIRBUS FRANCE S.A.S. All rights reserved. Confidential and proprietary document. -- associ lidentifiant de connexion id de la socket ... CLEAR_ID (main_server) END SCENARIO Page 54 55. Exemple de couche dadaptation (3) Chaque API est dfinie par : Sous-Systme1 des services: API1api1_msgsend(id, msg)api1_msgrecv(id, &msg)API1 ASystme un type de communication : Autre P I 3 sous testtypedef struct { } api1_comm;API2 AIRBUS FRANCE S.A.S. All rights reserved. Confidential and proprietary document. un type dinformation (messsage) :typedef struct { }api1_msg;Sous-Systme2Page 55 56. Exemple de couche dadaptation (4)-- ZONE DE DECLARATION-- Declaration du type de communicationCOMMTYPE ct1 IS api1_comm-- Declaration des cannaux utiliss pourlenvoi/rceptionCHANNEL ct1 : ch1, ch2 -- Declaration de tous les messages utiliss dans lescript de testMESSAGE api1_msg : msg1, msg2 -- Liste es identifiants de communication#api1_comm id1, id2; -- Procedures pour lire ou crire un message AIRBUS FRANCE S.A.S. All rights reserved. Confidential and proprietary document.spcifique pour yn type de communicationCALLBACK api1_msg:msg ON ct1: id CALL api1_msgrecv(id, &msg)END CALLBACK PROCSEND api1_msg: msg ON ct1:idCALL api1_msgsend(id, msg)END PROCSEND Page 56 57. Exemple de couche dadaptation (5)--SCRIPT DE TESTSCENARIO main -- Utilisation de lAPI pour obtenir lesidentifiants de communication CALL api1_create_comm()@@id1 CALL api1_create_comm()@@id2 -- Association de chaque identifiantavec un canal de communicationADD_ID (ch1, id1)ADD_ID (ch2, id2) -- Description du scnario de test(envoi et rception de message) AIRBUS FRANCE S.A.S. All rights reserved. Confidential and proprietary document. VAR msg1, INIT= { } SEND ( msg1, ch1 ) DEF_MESSAGE msg2, EV= { } WAITTIL ( MATCHING( msg2 ),& WTIME>=100 )END SCENARIO Page 57 58. Avantages de la couche dadaptation Le mme script de test fonctionnel peut sappuyer sur unemultitude de couches de communication (ex: ARINC 429,AFDX, ) pour envoyer et recevoir des messages sanssurcharger les scripts de test fonctionnelsSimplification du script de test AIRBUS FRANCE S.A.S. All rights reserved. Confidential and proprietary document.Page 58 59. Formation Outils de VrificationRTRT System Testing Instructions de gestion du scnarioRTRT System Testing AIRBUS FRANCE S.A.S. All rights reserved. Confidential and proprietary document. Page 59 60. Gestion des instructionsIF ( ) THEN ELSE END IFWHILE ( ) END WHILE CASE ( ) ISWHEN => WHEN => ... AIRBUS FRANCE S.A.S. All rights reserved. Confidential and proprietary document.WHEN OTHERS => END CASE Page 60 61. Gestion du temps par PAUSE PAUSE (Time) PAUSE suspend lexcution pour un temps de cycles donn (par default lunit de temps de cycle est de 10 ms) Le temps peut tre prsent en ms si besoin AIRBUS FRANCE S.A.S. All rights reserved. Confidential and proprietary document. Page 61 62. Gestion du temps par TIMERTIMER RESET TIME () Linstruction TIMER fait dmarrer un timer Timer_id est fourni par lutilisateur Le timer dmarre immdiatement RESET met zero la valeur du Timer_id TIME() fournit le temps CPU consomm depuis le dernier RESET AIRBUS FRANCE S.A.S. All rights reserved. Confidential and proprietary document. Ces informations sont uniquement utilises par le postprocessor atsload Page 62 63. Gestion des traces PRINT "exp_Id", PRINT imprime dans le rapport une rfrence de donne et sa valeur(exemple : PRINT imprime dans le rapport la valeur du Timer) Ces informations sont uniquement utilises par le postprocessor atsload AIRBUS FRANCE S.A.S. All rights reserved. Confidential and proprietary document. Page 63 64. Exemple de rapport de donnes spcifiques Exemple :#int hp = 3; #int ds = 5;PROC init (int sock_type)...PRINT SockTypeValue, sock_type... END PROCSCENARIO PrincipalTIMER time AIRBUS FRANCE S.A.S. All rights reserved. Confidential and proprietary document....PRINT elapsedTime, TIME (time)CALL init( AF_UNIX )...PRINT HpDs, (hp+ds)*10PRINT elapsedTime, TIME (time)... END SCENARIO Page 64 65. Gestion de contrle dexcution ERROREXIT ERROR met le scnario en erreur et passe au suivant EXIT fait arrter le script de test AIRBUS FRANCE S.A.S. All rights reserved. Confidential and proprietary document.Page 65 66. Gestion de la synchronisationRENDEZVOUS RENDEZVOUS dfinit un point de rendez-vous nomm Permet de synchroniser plusieurs scripts de test entre-eux Ne peut tre utilis que si la gestion des diffrents scripts de test AIRBUS FRANCE S.A.S. All rights reserved. Confidential and proprietary document.est confie au superviseur RTRT System Test Le nombre de participants au rendez-vous doit tre dclar dans lescript de supervision par linstruction MEMBER Page 66 67. Formation Outils de VrificationRTRT System TestingSupervision des testeursRTRT System Testing AIRBUS FRANCE S.A.S. All rights reserved. Confidential and proprietary document. Page 67 68. Principe dutilisation Script de supervision1. Assure les connexions Moniteur2. Assure le dispatch des testeurs 3. Assure le lancement des excutionsRendezVous AgentAgent TESTEURTESTEUR Agent TESTEUR AIRBUS FRANCE S.A.S. All rights reserved. Confidential and proprietary document. Link - BUS API, Net....4. Assure la synchronisation entreles testeurs SUT5. Assure la remonte des tracesaprs excutionSystem under testPage 68 69. Possibilits de la supervision Architecture ouverte de tests distribus gestion de plusieurs agents sur diffrentes plates-formes Chaque agent gre un plusieurs testeurs ou tout autre outilspcifique Tests de tests asynchrones Synchronisationentre tous les intervenants du test Suivi dynamique de lexcution des test Squence dexcution des tests avec rapport AIRBUS FRANCE S.A.S. All rights reserved. Confidential and proprietary document. Page 69 70. Architecture distribu des tests atsspv