Méthodes symboliques pour la génération de tests de systèmes réactifs comportant des données Eléna Zinovieva Leroux 2004 22 novembre 2004 Membres du jury:

Slides:



Advertisements
Présentations similaires
Yassine Lakhnech Prof. UJF Verimag
Advertisements

Mustapha EL FEDDI Tests Mustapha EL FEDDI
Analyse et définition des besoins
Ne laissez aucune perturbation vous échapper
Les Systèmes d’Information Financière Atelier conjoint ACBF / Banque Mondiale / AFRITAC de l’Ouest Gérer l’application dans le temps, sur les plans fonctionnel,
Tests et Validation du logiciel
2002 Exploratoire ASTRÉE : Analyse Statique de logiciels Temps-RÉel Embarqués 1)Le problème considéré est de démontrer statiquement (à la compilation)
Projet FIACRE 1 ACI Sécurité InformatiqueToulouse, novembre 2004 FIACRE Fiabilité des Assemblages de Composants Répartis Modèles et outils pour lanalyse.
Spécification et qualité du logiciel
Test de logiciels synchrones avec la PLC
Politiques de sécurité
Atelier régional des Nations Unies sur le traitement des données de recensement: les technologies modernes pour la saisie et la correction des données.
J. Paul Gibson Bureau A 207, Le département LOgiciels-Réseaux
Approches formelles en syntaxe et sémantique Alain Lecomte UMR 7023 Structures Formelles de la Langue.
Analyses préliminaires des risques (APR)
Quoi ? Un tampon.
Test de logiciel GLG101 AP.TELLE & S.MILOVANOVIC MAI 2007.
Rational Unified Process (RUP)
Plate-forme pour l’étude et la conception de systèmes automatisés
Application à la méthode des
Sélection automatique d’index et de vues matérialisées
Tests Programmation par contrats
Thierry Jéron Habilitation à diriger des recherches 16 mars 2004
Cycle de vie dun logiciel Origine des erreurs La spécification 50% 40% 10% Le design Le codage.
Structures de données et algorithmes – TP2
Tests unitaires et fonctionnels
Cours #8 Flot de conception d’un circuit numérique
TESTS D’UTILISABILITE DANS LES SERVICES PUBLICS
Techniques de test Boulanger Jean-Louis.
OIL & UPML DREVET - HUMBERT Introduction OIL : un langage de description dontologies UPML : un langage de description de systèmes à base.
Universté de la Manouba
Vincent Thomas Christine Bourjot Vincent Chevrier
© Petko ValtchevUniversité de Montréal Janvier IFT 2251 Génie Logiciel Notions de Base Hiver 2002 Petko Valtchev.
Cours #7 Vérification d’un modèle VHDL
Les verbes réflexifs… ou pas?
NORMALISATION DES LANGAGES DE PROGRAMMATION des Automates Programmables Industriels CEI Jean-Jacques DUMÉRY -1-
La méthode de la droite baladeuse
Sensibilisation a la modelisation
NORMALISATION DES LANGAGES DE PROGRAMMATION des Automates Programmables Industriels CEI
Masters IIGLI et IGLII – Programmation générique et conception objet – – Claude Montacié 1 Cours n° 3 Polymorphisme I.
Aide à la conception de systèmes distribués
Banc d’essai pour un circuit combinatoire
Objectifs de vérification logiciels GEF492A 2014 Référence: [HvV §14.1] Capt Vincent Roberge Collège Militaire Royal du Canada Génie électrique et génie.
Test de l’unité d’exécution d’une instruction par application d’instructions de test Projet du cours ELE6306 : Tests des systèmes électroniques. Nicolas.
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Vérification de circuits.
Vérification dans le cycle de vie GEF492A 2014 Référence: [HvV §14.2, 14.9] Capt Vincent Roberge Collège Militaire Royal du Canada Génie électrique et.
2003 (revisé 2008)SEG Chapitre 11 Chapitre 1 “The Systems Engineering Context” Le contexte du génie de systèmes.
Un outil d’estimation du temps d’exécution au pire-cas par analyse statique de programmes IRISA - Projet Solidor Antoine COLIN.
Requêtes homme-agent sur le fonctionnement Etudiantes: Anne DARME & Céline GIRARD Encadrant: Nicolas SABOURET Rapporteur: Vincent CORRUBLE Responsable:
« Validation Formelle de Systèmes Interactifs »
Introduction au Génie Logiciel
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Banc d’essai pour un.
VALIDATION VÉRIFICATION & TESTS
Évaluations de solutions d’exercices d’algorithmique « à la main » versus « automatiques par jeux d’essai » Denis Bouhineau, François Puitg Laboratoire.
Initiation à la conception des systèmes d'informations
François CARCENAC,Frédéric BONIOL ONERA-DTIM Zoubir MAMMERI IRIT
CORTIER Alexandre Directeur : Bruno d’AUSBOURG (ONERA)
UVSQ EDF R&D Procédés de réutilisation pour les lignes de produits logiciels Yuanyuan XU, Bruno TRAVERSON - INFORSID Mai 2008.
Les adjectifs possessifs
1 Méthode de “Fast Marching” générique pour “Shape From Shading” E. Prados & S. Soatto RFIA 2006 janvier 2006, Tours.
(ref : Bray section pages 259 à 266)
1 Vers la gestion de la cohérence dans les processus multi-modèles métier Wolfgang THEURER Ecole Nationale Supérieure d’Ingénieurs des Etudes et Techniques.
Verification approchée Michel de Rougemont, University Paris II et LRI.
Tache 1 Construction d’un simulateur. Objectifs Disposer d’un simulateur d’une population présentant un déséquilibre de liaison historique, afin d’évaluer.
© Petko ValtchevUniversité de Montréal Janvier IFT 2251 Génie Logiciel Le Processus Hiver 2002 Petko Valtchev.
Vers l’exploitation de grandes masses de données Encadré par : Mme L.Lamarini Présenté par: Rhaz Yassine Smiri Safae Un article de: Raphaeil Féraud,Maroc.
Planification de missions multi-satellites par système multi-agent coopératif  Jonathan Bonnet a,b Marie-Pierre Gleizes a Elsy Kaddoum a Serge Rainjonneau.
Dániel Darvas (CERN BE-ICS-PCS) Spécification formelle pour les API CERN-ESTEREL séminaire 21/01/2016, CERN Travail conjoint avec B. Fernández, E. Blanco,
PRÉSENTATION AGL LES TESTS LOGICIELS LES TEST LOGICIELS 1 Mickael BETTINELLI Brandon OZIOL Gaétan PHILIPPE Simon LUAIRE.
Planning Process « t’as un plan pour ce soir ? » Tony Carnal Altran.
Transcription de la présentation:

Méthodes symboliques pour la génération de tests de systèmes réactifs comportant des données Eléna Zinovieva Leroux novembre 2004 Membres du jury: Prof. Bruno Legeard Prof. Jan Tretmans Dr. Bruno Marre Prof. Olivier Ridoux Prof. Claude Jard Dr. Vlad Rusu (rapporteur)(rapporteur)(examinateur)(examinateur) (directeur de thèse) (encadrant)

2 Systèmes Réactifs Environnement Environnement complexes, critiques. Doivent être fiables et sans erreur importante. test, vérification, analyse statique, …

3 Test Exécution dune implémentation sous test avec lintention dy trouver des erreurs. « Program testing can be a very effective way to show the presence of bugs, but it is hopelessly inadequate for showing their absence. » E.W. Dijkstra CoffeeButton ? Coffee !Tea ! PassFail Cas de test CoffeeButton ? Coffee !Tea ! PassFail bouton de café thé café

4 Pourquoi sintéresser au test? Le test est largement utilisé dans lindustrie, mais il est coûteux. La détection derreurs graves dans les systèmes réactifs est très importante. « Testing often consume 50% of software effort. » B. Boehm Mars Climate Orbiter de la NASA (Octobre 1999) [Isbell & Savage] Désastre: écrasé sur la planète au lieu datteindre une orbite sécurisé. Pourquoi: erreur logicielle – erreur lors de la conversion des unités de mesure américaines en valeurs métriques. automatisation du test Diminution du coût. Identification plus facile des erreurs.

5 Plan 1.Test de conformité boîte noire. 2.Cadre formel du test de conformité. 3.Génération symbolique de cas de test. 4.Exécution dun cas de test. 5.Outil : STG. 6.Conclusion et perspectives.

6 Test de conformité boîte noire Spécification (et objectif de test) Cas de test Implémentation du système Génération de cas de test automatique Exécution du test ? Fail Inconclusive Pass conforme à ?

7 Des techniques énumératives aux techniques symboliques Explosion combinatoire de lespace détats; Les cas de test ne sont pas génériques. Motivations : Utiliser un nouveau modèle et des techniques symboliques pour produire un cas de test! Solution :

8 Notre approche Modèle symbolique : IOSTS. Génération symbolique de cas de test : Spec, TP IOSTS TC IOSTS. Exécution de cas de test : instanciation des entrées par la résolution de contraintes.

9 Plan 1.Test de conformité boîte noire. 2.Cadre formel du test de conformité : système symbolique de transitions à entrée/sortie (IOSTS), relation de conformité, cas de test & implémentation sous test, propriétés attendues des cas de test. 3.Génération symbolique de cas de test. 4.Exécution dun cas de test. 5.Outil : STG. 6.Conclusion et perspectives.

10 Système symbolique de transitions à entrée/sortie (IOSTS) Machine à café Spécification (vBev = pBev) Deliver ! (pBev) Return Delivery (pRemVal=vPaid) Return ! (pRemVal) Cancel ? ChooseBeverage ? (pBev) vBev := pBev Begin Idle Pay Choose vPaid:=0 (vPaid cPrice) & (pRemVal=vPaid-cPrice) Return ! (pRemVal) vPaid:=cPrice (vPaid<cPrice) & (pRemVal=cPrice-vPaid) Return ! (pRemVal) pCoinVal > 0 Coin ? (pCoinVal) vPaid:=vPaid+pCoinVal cPrice>0 Empty ! Objectif de test Accept Begin (vPaid<cPrice) Return ! (pRemVal tp ) Reject (pBev tp = COFFEE) Deliver ! (pBev tp ) Cancel ? Exemple de comportement :. Coin ? (5). Return ! (2). ChooseBererage ? (COFFEE). Deliver ! (COFFEE) visible Traces(Spec)

11 Relation de conformité ioc (version faible dioco [Tretmans96]) : après un comportement visible de la spécification Spec, limplémentation sous test IUT nest autorisée à produire que les sorties spécifiées. Formellement : IUT Spécification partielle Comportements visibles dune Spec IUT ioc Spec = Traces(Spec). [ Out(IUT after ) Out(Spec after ) ] Sorties non spécifiées ! ¬ (IUT ioc Spec) ? Entrées non spécifiées (IUT ioc Spec)

12 Cas de test & IUT …………… BeverageType ChooseBeverage (BeverageType pBeverage) { cerr << "ChooseBeverage("; if(pBeverage == COFFEE) { cerr << TEA)"; return TEA; } if(pBeverage == TEA) { cerr << "TEA)"; return TEA; } …………… Machine à café cPrice>0 (vPaid = cPrice) & (vPaid > 0) Empty ? (pCoinVal>0) & (pCpinVal cPrice) Coin ! (pCoinVal) vPaid:=0+pCoinVal Inconclusive (pRemVal = vPaid-cPrice) & (vPaid > 0) & (vPaid cPrice) Return ? (pRemVal) vPaid:=cPrice (pBev=COFFEE) & (vPaid = cPrice) & (vPaid > 0) ChooseBeverage ! (pBev) vBev := pBev (pBev=COFFEE) & (vBev=pBev) & (vPaid > 0) & (vPaid=cPrice) Deliver ? (pBev) PassFail ( (pBev=COFFEE) & (vBev=pBev) & (vPaid > 0) & (vPaid=cPrice) ) Deliver ? (pBev)

13 Propriétés des cas de test TC est non biaisé sil ne rejette pas les IUT conformes. TC est précis sil produit le verdict Pass lorsque la trace observée de lIUT est une trace de la Spec sélectionnée par lobjectif de test TP. TC est concluant sil produit le verdict Inconclusive quand la trace observée de lIUT est une trace de la Spec qui finit par une action de sortie mais aucun prolongement de cette trace ne peut produire le verdict Pass.

14 Plan 1.Test de conformité boîte noire. 2.Cadre formel du test de conformité. 3.Génération symbolique de cas de test. 4.Exécution dun cas de test. 5.Outil : STG. 6.Conclusion et perspectives.

15 Génération symbolique de cas de test Objectif de test TP Cas de test TC Spécification Spec Génération symbolique de cas de test : Calcul du produit SP = Spec TP; Construction des comportements visibles SP vis ; Sélection et simplification du graphe de test TG; Complétion de TG en entrée.

16 Exemple : calcul du produit Spec (vBev = pBev) Deliver ! (pBev) Return Delivery (pRemVal=vPaid) Return ! (pRemVal) Cancel ? ChooseBeverage ? (pBev) vBev := pBev Choose (vPaid cPrice) & (pRemVal=vPaid-cPrice) Return ! (pRemVal) vPaid:=cPrice (vPaid<cPrice) & (pRemVal=cPrice-vPaid) Return ! (pRemVal) pCoinVal > 0 Coin ? (pCoinVal) vPaid:=vPaid+pCoinVal cPrice>0 Begin tau vPaid:=0 Empty ! Pay Idle TP Accept Begin Reject Cancel ? (pBev tp = COFFEE) Deliver ! (pBev tp ) (vPaid<cPrice) Return ! (pRemVal tp ) (pBev tp COFFEE) Deliver ! (pBev tp ) otherwise (vPaid<cPrice) & (pRemVal=cPrice-vPaid) Return ! (pRemVal) (vBev=pBev) & (pBev=COFFEE) Deliver ! (pBev) (vPaid cPrice) & (pRemVal=vPaid-cPrice) Return ! (pRemVal) vPaid:=cPrice ChooseBeverage ? (pBev) vBev := pBev pCoinVal > 0 Coin ? (pCoinVal) vPaid:=vPaid+pCoinVal cPrice>0 & true (vBev=pBev) & (pBev COFFEE) Deliver ! (pBev) tau vPaid:=0 SP = Spec TP Cancel ? Cancel ? (vPaid<cPrice) & (vPaid cPrice) & (pRemVal=cPrice-vPaid) Return ! (pRemVal) (vPaid<cPrice) & (vPaid cPrice) & (pRemVal=vPaid-cPrice) Return ! (pRemVal) vPaid:=cPrice Empty ! true

17 Génération symbolique de cas de test Objectif de test TP Cas de test TC Spécification Spec Génération symbolique de cas de test : Calcul du produit SP = Spec TP; Construction des comportements visibles SP vis : clôture, déterminisation. Sélection et simplification du graphe de test TG; Complétion de TG en entrée. Résultat après le produit : Traces(SP) = Traces(Spec) ATraces(SP) Traces(Spec) ATraces(TP)

18 Construction des comportements visibles (1/2) l a l n+1 l1l1 l2l2 lnln G 1 1 A 1 G n n A n G a a( ) A a G 1 & (G 2A 1 ) & … & (G n A n-1 …A 1 ) & (G a A n A n-1 …A 1 ) a( ) A a A n A n-1 … A 1 l1l1 l a Clôture : Exemple : (pCoinVal>0) & (vPaid < max) Coin ? (pCoinVal) vPaid:=vPaid+pCoinVal cPrice>0 vPaid:=0 SP Cancel ? vPaid:=vPaid (pCoinVal>0) & (0<max) Coin ? (pCoinVal) vPaid:=0+pCoinVal cPrice>0 clôture(SP) Cancel ? vPaid:=0 pas de cycle dactions internes.

19 Construction des comportements visibles (2/2) l G 1 a( ) A 1 Déterminisation : l1l1 l2l2 G 2 a( ) A 2 lblb lclc G b b( b ) A b G c c( c ) A c l (G 1 & ¬ G 2 ) a( ) A 1 l1l1 l2l2 lblb lclc G b b( b ) A b G c c( c ) A c ( ¬ G 1 & G 2 ) a( ) A 2 l 1,2 (G 1 & G 2 ) a( ) (G b A 1 ) b( b ) (A b A 1 ) (G c A 2 ) c( c ) (A c A 2 ) Begin pCoinVal > 0 Coin ? (pCoinVal) vPaid := pCoinVal WaitMilk clôture(SP) Exemple : Pay vPaid 3 Coffee ! v := 1 vPaid 3 Coffee ! v := 2 Coffee&Milk vPaid + v > 10 Milk ! vPaid := vPaid + v v := v Begin pCoinVal > 0 Coin ? (pCoinVal) vPaid := pCoinVal Wait 1,2 SP vis = det(clôture(SP)) Pay vPaid = 3 Coffee ! vPaid > 3 Coffee ! v := 2 WaitMilk vPaid < 3 Coffee ! v := 1 WaitSugar termine sous une condition syntaxique. WaitSugar Coffee&Sugar vPaid – v > 0 Sugar ! vPaid := vPaid v := v Coffee&Milk vPaid + v > 10 Milk ! vPaid := vPaid + v v := v vPaid + 2 > 10 Milk ! vPaid := vPaid + 2 v := 2 Coffee&Sugar vPaid – v > 0 Sugar ! vPaid := vPaid v := v vPaid – 1 > 0 Sugar ! vPaid := vPaid v := 1

20 Génération symbolique de cas de test Objectif de test TP Cas de test TC Spécification Spec Génération symbolique de cas de test : Calcul du produit SP = Spec TP; Construction des comportements visibles SP vis ; Sélection et simplification du graphe de test TG; Complétion de TG en entrée. Résultat après construction de SP vis : Traces(SP vis ) = Traces(SP) = Traces(Spec) ATraces(SP vis ) = ATraces(SP)

21 Sélection du graphe de test SP vis avec S – ensemble des états, S 0 – ensemble des états initiaux, S but – ensemble des états buts. coreach(SP vis,S but ) Solution : S S0S0 non calculables de manière exacte sur-approximation coreach (SP vis,S but ) calcul exact sur-approximation Problème : Sélectionner un sous graphe de SP vis menant à la satisfaction de lobjectif de test TP. TG S but Coin ? (5) Return ! (2) ChooseBeverage ? (COFFEE) Empty ! Deliver ? (COFFEE) inconclusive Cancel ?

22 Exemple : sélection du graphe de test (vPaid > 0) & (cPrice > 0) & (vPaid<cPrice) & (pRemVal=cPrice-vPaid) Return ! (pRemVal) Deliver ! (pBev) Return ! (pRemVal) vPaid:=cPrice ChooseBeverage ? (pBev) vBev := pBev Coin ? (pCoinVal) vPaid:=0+pCoinVal cPrice>0 (vPaid = cPrice) & (vPaid > 0) & (cPrice > 0) & (vBev=pBev) & (pBev COFFEE) Deliver ! (pBev) TG = coreach(SP vis,S acc ) (cPrice > 0) Cancel ? vPaid := 0 (vPaid = cPrice) & (vPaid > 0) & (cPrice > 0) Cancel ? (vPaid = cPrice) & (vPaid > 0) & (cPrice > 0) Empty ! SP vis analyse de co- accessibilité avec NBac pRemVal=vPaid-cPrice (pBev=COFFEE) & (pBev=vBev) (cPrice>0) (cPrice>0) & (vPaid cPrice) (cPrice>0) & (vPaid=cPrice) (cPrice>0) & (vPaid=cPrice) & (vBev=COFFEE) (cPrice>0) & (vPaid=cPrice) & (vBev=COFFEE) pCoinVal>0 true Résultat de lanalyse de la co-accessibilité (cPrice > 0) & (pCoinVal > 0) & pCoinVal>0 & (cPrice>0) & (vPaid cPrice)(0+pCoinVal cPrice) Inconclusive (vPaid > 0) & (cPrice > 0) & (vPaid cPrice) & (pRemVal=vPaid-cPrice) & (pRemVal=vPaid-cPrice) & (cPrice>0) & (vPaid=cPrice)(cPrice=cPrice) (pRemVal = vPaid-cPrice) & ¬[ (cPrice>0) & (cPrice = cPrice) ] Return ! (pRemVal) vPaid:=cPrice (vPaid = cPrice) & (vPaid > 0) & (cPrice > 0) (cPrice > 0) & (vPaid = cPrice) & (vBev = COFFEE) (pBev = COFFEE) (vPaid = cPrice) & (vPaid > 0) & (cPrice > 0) & (vBev=pBev) & (pBev=COFFEE) & (pBev=COFFEE) & (vBev=pBev) & (cPrice > 0) & (vPaid=cPrice) & (vBev=COFFEE) (pBev=COFFEE) & (vBev=pBev) & ¬[ (cPrice > 0) & (vPaid=cPrice) & (vBev=COFFEE) ] Deliver ! (pBev) Pass analyse daccessibilité avec NBac + miroir TG = miroir(reach(TG,S 0 )) cPrice>0 (vPaid = cPrice) & (vPaid > 0) & (cPrice > 0) Empty ? (pCoinVal>0) & (cPrice>0) & (pCpinVal cPrice) Coin ! (pCoinVal) vPaid:=0+pCoinVal Inconclusive (pRemVal=vPaid-cPrice) & (vPaid > 0) & (cPrice > 0) & (vPaid cPrice) Return ? (pRemVal) vPaid:=cPrice (pBev=COFFEE) & (vPaid = cPrice) & (vPaid > 0) & (cPrice > 0) ChooseBeverage ! (pBev) vBev := pBev (pBev=COFFEE) & (vBev=pBev) & (vBev=COFFEE) (cPrice > 0) & (vPaid > 0) & (vPaid=cPrice) Deliver ? (pBev) Pass et simplification

23 Génération symbolique de cas de test Objectif de test TP Cas de test TC Spécification Spec Génération symbolique de cas de test : Calcul du produit SP = Spec TP; Construction des comportements visibles SP vis ; Sélection et simplification du graphe de test TG. Complétion de TG en entrée. Résultat après sélection de TG : Traces(TG) Traces(SP vis ) = Traces(SP) = Traces(Spec) Traces pass (TG) = ATraces(Spec TP) Traces inconc (TG) (Traces(Spec) Traces(Spec). ! Spec ) \ pref(ATraces(Spec TP))

24 Exemple : complétion de TG en entrée TG vers TC cPrice>0 (vPaid = cPrice) & (vPaid > 0) & (cPrice > 0) Empty ? (pCoinVal>0) & (cPrice>0) & (pCpinVal cPrice) Coin ! (pCoinVal) vPaid:=0+pCoinVal Inconclusive (pRemVal=vPaid-cPrice) & (vPaid > 0) & (cPrice > 0) & (vPaid cPrice) Return ? (pRemVal) vPaid:=cPrice (pBev=COFFEE) & (vPaid = cPrice) & (vPaid > 0) & (cPrice > 0) ChooseBeverage ! (pBev) vBev := pBev (pBev=COFFEE) & (vBev=pBev) & (vBev=COFFEE) (cPrice > 0) & (vPaid > 0) & (vPaid=cPrice) Deliver ? (pBev) Pass Fail otherwise ? Traces(TC) = Traces(TG) Traces fail (TC) Traces fail (TC) Traces(Spec). ! Spec \ Traces(Spec) Traces pass (TC) = Traces pass (TG) = ATraces(Spec TP) Traces inconc (TC) = Traces inconc (TG) (Traces(Spec) Traces(Spec). ! Spec ) \ pref(ATraces(Spec TP)) TC est non biaiséTC est précisTC est concluant

25 Plan 1.Test de conformité boîte noire. 2.Des techniques énumératives aux techniques symboliques. 3.Génération symbolique de cas de test. 4.Exécution dun cas de test. 5.Outil : STG. 6.Conclusion et perspectives.

26 Exécution dun cas de test TC cPrice>0 (vPaid = cPrice) & (vPaid > 0) & (cPrice > 0) Coin ! (pCoinVal) vPaid:=0+pCoinVal Inconclusive (pRemVal=vPaid-cPrice) & (vPaid > 0) & (cPrice > 0) & (vPaid cPrice) (pBev=COFFEE) & (vPaid = cPrice) & (vPaid > 0) & (cPrice > 0) (pBev=COFFEE) & (vBev=pBev) & (vBev=COFFEE) (cPrice > 0) & (vPaid > 0) & (vPaid=cPrice) Pass Fail otherwise ? instanciation des constantes symboliques, résolution des gardes. IUT dune machine à café cPrice IUT = 3 Coin ? (5) Return ! (2) ChooseBeverage ? (COFFEE) Deliver ! (COFFEE) Empty ! Pass Inconclusive Fail otherwise ! (pCoinVal>0) & (cPrice>0) & (pCoinVal cPrice) Return ? (pRemVal) vPaid:=cPrice ChooseBeverage ! (pBev) vBev := pBev Deliver ? (pBev) Empty ?

27 Plan 1.Test de conformité boîte noire. 2.Cadre formel du test de conformité. 3.Génération symbolique de cas de test. 4.Exécution dun cas de test. 5.Outil : STG. 6.Conclusion et perspectives.

28 Outil : STG en collaboration avec D. Clarke et F.-X. Ponscarme IUT (C++/Java) Spécification & Objectif de test Cas de test abstrait Génération de cas de test Compilation Cas de test (C++/Java) STG Dotty Omega NBac Pass, Inconclusive, Fail Génération opérations symboliques, analyse approchée par interprétation abstraite (NBac). Exécution compilation (C++/Java), résolution de contraintes (Omega). Expérimentations BRP, CEPS [CJRZ-Esmart01] : ~30 variables et constantes symboliques, 30 localités et 91 transitions syntaxiques.

29 Plan 1.Test de conformité boîte noire. 2.Cadre formel du test de conformité. 3.Génération symbolique de cas de test. 4.Exécution dun cas de test. 5.Outil : STG. 6.Conclusion et perspectives.

30 Contributions [ CJRZ-Esec01, CJRZ-Esmart01, CJRZ-Tacas02, Z-Movep02, JJRZ-RR04 ] Originalité : Génération de cas de test génériques. Traitement de systèmes non déterministes. Sélection symbolique de cas de test basée sur lanalyse approchée et indépendante de lapproximation. Implémentation : La génération symbolique de tests est complètement automatisée (STG).

31 Perspectives Améliorer les critères de sélection : génération automatique dobjectifs de test, génération de cas de test à partir de spécifications et de critères de couverture, … Combiner des méthodes de validation dans le processus de développement. Réaliser plus détudes de cas.

Merci Thank you Спасибо

33 Déterminisme à lhorizon k IOSTS déterministe a lhorizon k : il nexiste pas deux transitions t 1 et t 2, impliquées dans un même choix non déterministe, telles que une même séquence dactions de longueur supérieure ou égale à k est exécutable à la fois après t 1 et t 2. Exemples : Begin pCoinVal > 0 Coin ? (pCoinVal) vPaid:=vPaid+pCoinVal WaitCoffee Pay vPaid 3 Coffee ! v:=0 vPaid 3 Coffee ! v:=1 WaitMilk v = 1 Milk ! déterministe à lhorizon 2 Begin End il nexiste pas de k tel que cet IOSTS est déterministe à lhorizon k a ? x := x+1 x = 0 a ? x := x+2 p = x b ! (p)

34 Construction des comportements visibles (2/2) l G 1 a( ) A 1 Déterminisation : l1l1 l2l2 G 2 a( ) A 2 lblb lclc G b b( b ) A b G c c( c ) A c l (G 1 & ¬ G 2 ) a( ) A 1 l1l1 l2l2 lblb lclc G b b( b ) A b G c c( c ) A c ( ¬ G 1 & G 2 ) a( ) A 2 l 1,2 (G 1 & G 2 ) a( ) (G b A 1 ) b( b ) (A b A 1 ) (G c A 2 ) c( c ) (A c A 2 ) Begin pCoinVal > 0 Coin ? (pCoinVal) vPaid:=vPaid+pCoinVal WaitCoffee clôture(SP) Exemple : Pay vPaid 3 Coffee ! v:=0 vPaid 3 Coffee ! v:=1 WaitMilk v = 1 Milk ! Begin pCoinVal > 0 Coin ? (pCoinVal) vPaid:=vPaid+pCoinVal WaitMilk WaitCoffee 1,2 SP vis = det(clôture(SP)) Pay vPaid = 3 Coffee ! v:=v vPaid > 3 Coffee ! v:=1 1 = 1 Milk ! WaitCoffee 1 vPaid < 3 Coffee ! v:=0 WaitCoffee 2 0 = 1 Milk ! v = 1 Milk ! v = 1 Milk ! termine sous une condition syntaxique.

35 Clôture Begin p = 0 Input ? (p) x := p Idle 2 Idle 1 x := x+1 End p = x Output ! (p) IOSTS avec un cycle dactions internes x := x+1

36 ioc vers ioco G a ( a ) a ! a IOSTS G G b ( b ) b ? b a :sig(a).[ G a ( a ) ] & [ G ] ! suspendu

37 Notre approche Modèle symbolique : IOSTS. Génération symbolique de cas de test : Spec, TP IOSTS TC IOSTS, sélection symbolique de cas de test basée sur lanalyse approchée. Exécution de cas de test : instanciation des entrées par la résolution de contraintes.