La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

1 Test de logiciels synchrones avec la PLC Besnik Seljimi 2 juillet 2009 Sous la direction de Ioannis Parissis et Laurent Trilling Thèse.

Présentations similaires


Présentation au sujet: "1 Test de logiciels synchrones avec la PLC Besnik Seljimi 2 juillet 2009 Sous la direction de Ioannis Parissis et Laurent Trilling Thèse."— Transcription de la présentation:

1 1 Test de logiciels synchrones avec la PLC Besnik Seljimi 2 juillet 2009 Sous la direction de Ioannis Parissis et Laurent Trilling Thèse

2 2 Contexte scientifique Qualité du logiciel –Aptitude à réaliser les services pour lesquels il est conçu –Vérification & Validation Le test est une activité dynamique: exécution dun programme –pour vérifier quil répond à ses spécifications –ou pour identifier ses défauts Test exhaustif impraticable –Sélection de données de test Domaine : Logiciels « critiques » –Défaillance = catastrophe humaine ou financière –Plus de vérification et de validation nécessaire –Logiciels réactifs synchrones 2 juillet 2009Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC

3 3 Objectif de la thèse Loutil Lutess –Test des logiciel synchrones –Limité aux logiciels à entrées/sorties booléennes Dans la réalité : logiciels à entrées/sorties numériques Contribution de la thèse –Prise en compte des logiciels numériques –Plus dexpressivité / tests plus évolués Probabilités conditionnelles étendues –Les entrées booléennes / Expression quelconque Introduction dhypothèses –Test en « boîte noire » / « Boîte grise » Utilisation simultanée de plusieurs techniques 2 juillet 2009Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC

4 4 Sommaire Test de logiciels synchrones –Lapproche Lutess Problématique et motivations Test de logiciels synchrones: Lutess V2 –Langage de spécification –Génération de données de test –Travaux connexes Réalisations et expérimentations Conclusions et perspectives 2 juillet 2009Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC

5 5 Sommaire Test de logiciels synchrones –Lapproche Lutess Problématique et motivations Test de logiciels synchrones: Lutess V2 –Langage de spécification –Génération de données de test –Travaux connexes Réalisations et expérimentations Conclusions et perspectives 2 juillet 2009Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC

6 6 Contexte scientifique Logiciels synchrones Interaction continue avec un environnement externe Hypothèse de synchronisme: réaction instantanée –En pratique: suffisamment rapide 2 juillet 2009Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC Programme Synchrone Environnement i0i0 i1i1 i2i2 i3i3 ° ° ° o0o0 o1o1 o2o2 o3o3

7 7 Contexte scientifique Le langage Lustre Synchrone, flot de données, déclaratif Très répandu dans les domaines de lavionique, de lénergie, des transports… Version commerciale : SCADE (Esterel Technologies) 2 juillet 2009 node edge(X: bool) returns (edgeX: bool); let edgeX = false -> not(pre X) and X; tel;

8 8 Test de logiciels synchrones Test à partir de spécifications Plusieurs modèles –Modèles de comportement du programme Test = conformité entre spécification et programme LOFT, BZ-Testing Tools –Modèles de comportement de lenvironnement ou de lutilisateur Profils opérationnels Profils dusage –Lutess Test de logiciels synchrones en « boite noire » 2 juillet 2009Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC

9 9 Test de logiciels synchrones Approche Lutess 2 juillet 2009Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC Programme Synchrone Environnement Modélisation Environnement Modélisation Environnement Construction automatique de générateurs de test Programme Synchrone Boîte noire Simulateur Environnement Simulateur Environnement Oracle OK

10 10 Test de logiciels synchrones Approche Lutess 2 juillet 2009Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC Logiciel exécutable Logiciel exécutable Développement Spécifications informelles Modèle de test Générateur de données Interaction Langage de spécification de Lutess (Lustre enrichi) Booléen

11 11 Sommaire Test de logiciels synchrones –Lapproche Lutess Problématique et motivations Test de logiciels synchrones: Lutess V2 –Langage de spécification –Génération de données de test –Travaux connexes Réalisations et expérimentations Conclusions et perspectives 2 juillet 2009Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC

12 12 Problématique et motivations Un contrôleur simple 2 juillet 2009Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC Programme synchrone Environnement

13 13 Problématique et motivations Exemple numérique du climatiseur 2 juillet 2009Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC node Program_AC(Bouton: bool; Tamb, Tutil: int) returns (En_marche: bool ; Tsort: int) ; let En_marche = Bouton -> ((pre En_marche) and not Bouton) or (not(pre En_marche) and Bouton); Tsort = Tutil + (Tutil - Tamb) / 3; tel;

14 14 Problématique et motivations Problématique et contributions 2 juillet 2009Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC Spécifications informelles Modèle de test Générateur de données Logiciel exécutable Logiciel exécutable Développement Interaction Langage de spécification Lutess Booléen BDD PLC Lutess V2 Numérique + Enrichissement techniques de génération

15 15 Sommaire Test de logiciels synchrones –Lapproche Lutess Problématique et motivations Test de logiciels synchrones : Lutess V2 –Langage de spécification –Génération de données de test –Travaux connexes Réalisations et expérimentations Conclusions et perspectives 2 juillet 2009Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC

16 16 Langage de spécification Un contrôleur simple 2 juillet 2009Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC Programme synchrone Environnement

17 17 Langage de spécification Invariants de lenvironnement 2 juillet 2009Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC testnode Env_clim(En_marche: bool; Tsort: int) returns (Bouton : bool; Tamb, Tutil: int); var dTamb: int; let dTamb = 0 -> Tamb - pre Tamb; environment( Tamb >= -20 and Tamb <= 60, Tutil >= 10 and Tutil <= 40, dTamb >= -1 and dTamb <= 1 ); tel

18 18 Langage de spécification Invariants de lenvironnement 2 juillet 2009Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC Tamb >= -20 and Tamb <= 60, Tutil >= 10 and Tutil <= 40, dTamb >= -1 and dTamb <= 1 Appui aléatoire sur Bouton ?

19 19 Langage de spécification Probabilités conditionnelles 2 juillet 2009Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC testnode Env_clim(En_marche: bool; Tsort: int) returns (Bouton : bool; Tamb, Tutil: int); var dTamb: int; let dTamb = 0 -> Tamb - pre Tamb; environment( Tamb >= -20 and Tamb <= 60, Tutil >= 10 and Tutil <= 40, dTamb >= -1 and dTamb <= 1 ); prob(false -> pre En_marche, Bouton, 0.1); tel prob(C,E,P) –C : Condition dobservabilité de E –E : Expression sur laquelle porte la probabilité P –P : Probabilité de E avec la condition C

20 20 Langage de spécification Probabilités conditionnelles 2 juillet 2009Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC prob(false -> pre En_marche, Bouton, 0.1); Version booléenne

21 21 Langage de spécification Probabilités conditionnelles 2 juillet 2009Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC testnode Env_clim(En_marche: bool; Tsort: int) returns (Bouton : bool; Tamb, Tutil: int); var dTamb: int; let dTamb = 0 -> Tamb - pre Tamb; environment( Tamb >= -20 and Tamb <= 60, Tutil >= 10 and Tutil <= 40, dTamb >= -1 and dTamb <= 1 ); prob(false -> pre En_marche, Bouton, 0.1); prob(false -> pre(En_marche and Tsort > Tamb), true -> (Tamb > pre Tamb), 0.8); tel

22 22 Langage de spécification Probabilités conditionnelles 2 juillet 2009Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC prob(false -> pre(En_marche and Tsort > Tamb), true -> (Tamb > pre Tamb), 0.8);

23 23 Langage de spécification Propriétés de sûreté Vérification de propriétés –Nouveau : Expression numérique comme propriété –Exemple Quand il fait froid => climatiseur chauffe Et inversement 2 juillet 2009Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC

24 24 Langage de spécification Propriétés de sûreté 2 juillet 2009Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC testnode Env_clim(En_marche: bool; Tsort: int) returns (Bouton : bool; Tamb, Tutil: int); var dTamb: int; let dTamb = 0 -> Tamb - pre Tamb; environment( Tamb >= -20 and Tamb <= 60, Tutil >= 10 and Tutil <= 40, dTamb >= -1 and dTamb <= 1 ); safeprop(implies(En_marche and Tamb Tutil)); tel

25 25 Langage de spécification Propriétés de sûreté Guidage: –Générer les entrées correspondantes –Toutes les valeurs sont considérées pour les sorties 2 juillet 2009Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC

26 26 Hypothèses Introduction de connaissances partielles sur le programme Nouveau / version booléenne Exemple –Bouton met en marche / éteint le climatiseur 2 juillet 2009Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC

27 27 Hypothèses 2 juillet 2009Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC testnode Env_clim(En_marche: bool; Tsort: int) returns (Bouton : bool; Tamb, Tutil: int); var dTamb: int; let dTamb = 0 -> Tamb - pre Tamb; environment( Tamb >= -20 and Tamb <= 60, Tutil >= 10 and Tutil <= 40, dTamb >= -1 and dTamb <= 1 ); safeprop(implies(En_marche and TambTutil)); hypothesis(true -> (Bouton = En_marche<>pre(En_marche))); tel

28 28 Hypothèses 2 juillet 2009Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC

29 29 Hypothèses Améliore le guidage / propriétés de sûreté –Certaines sorties deviennent impossibles 2 juillet 2009Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC Boîte noire Boîte grise Boîte blanche Hypothèses

30 30 Méthodologie de test Définition du domaine des variables entières –Invariants denvironnement: intervalles Dynamique de lenvironnement –Invariants denvironnement : contraintes temporelles Scénarios dexécution –Invariants denvironnement : situations particulières –Probabilités conditionnelles Test de propriétés –Propriétés de sûreté –Hypothèses 2 juillet 2009Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC

31 31 Sommaire Test de logiciels synchrones –Lapproche Lutess Problématique et motivations Test de logiciels synchrones : Lutess V2 –Langage de spécification –Génération de données de test –Travaux connexes Réalisations et expérimentations Conclusions et perspectives 2 juillet 2009Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC

32 32 Génération de données de test 2 juillet 2009Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC Générateur Modèle de testMachine à états finis Contraintes Algorithmes de résolution

33 33 Génération de données de test Machine à états finis Une variable détat pour chaque expression pre E 2 juillet 2009Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC testnode Env_clim(En_marche: bool; Tsort: int) returns (Bouton : bool; Tamb, Tutil: int); var dTamb: int; let dTamb = 0 -> Tamb - pre Tamb; environment( …); safeprop( … ); hypothesis( true -> Bouton = En_marche<>pre(En_marche) ); prob(false -> pre(Tsort>Tamb), true -> (Tamb>pre Tamb), 0.8); tel Une variable détat (q 0 ) pour distinguer létat initial

34 34 Génération de données de test Machine à états finis 2 juillet 2009Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC testnode Env_clim(En_marche: bool; Tsort: int) returns (Bouton : bool; Tamb, Tutil: int); var dTamb: int; q0: bool; q1: int; q2,q3: bool; let q0 = true -> false; q1 = pre Tamb; q2 = pre En_marche; q3 = pre(Tsort>Tamb); dTamb = if q0 then 0 else Tamb – q1; environment( … ); safeprop( … ); hypothesis(if q0 then true else (Bouton = En_marche <> q2)); prob(if q0 then false else q3, if q0 then true else (Tamb>q1), 0.8); tel

35 35 Génération de données de test Machine génératrice 2 juillet 2009Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC : lensemble des états : létat initial : lensemble des entrées : lensemble des sorties : la fonction de transition : invariants de lenvironnement : la propriété de sûreté : les hypothèses : les probabilités

36 36 Génération de données de test 2 juillet 2009Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC Générateur Modèle de testMachine à états finis Contraintes Algorithmes de résolution

37 37 Génération de données de test Représentation en contraintes 2 juillet 2009Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC inputs Bouton: bool; Tamb, Tutil: int; outputs … state …

38 38 Génération de données de test Représentation en contraintes 2 juillet 2009Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC transition q0' = false; q1' = Tamb; q2' = En_marche; q3' = Tsort>Tamb;

39 39 Génération de données de test Représentation en contraintes 2 juillet 2009Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC var dTamb: int; local dTamb = if q0 then 0 else Tamb – q1; environment Tamb>=-20 and Tamb<=60 and Tutil>=10 and Tutil<=40 and dTamb>=-1 and dTamb<=1;

40 40 Génération de données de test Représentation en contraintes 2 juillet 2009Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC probabilities (c1,e1,p1) = (if q0 then false else q3, if q0 then true else Tamb>q1, 0.8); (c2,e2,p2) = (if q0 then false else q3, if q0 then true else Tamb

41 41 Génération de données de test Machine génératrice 2 juillet 2009Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC

42 42 Génération de données de test Séquence de test = chemin dans la machine 2 juillet 2009Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC Générateur Modèle de testMachine à états finis Contraintes Algorithmes Contraintes Algorithmes de génération Algorithmes de génération

43 43 Algorithme de génération 2 juillet 2009Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC Les entrées respectant lenvironnement Les entrées respectant les probabilités Vecteurs pouvant violer la PS Choix dune entrée Emission des entrées / Récupération sorties Calcul état suivant Démarrer dans létat initial Générer une séquence de longueur n

44 44 Algorithme de génération 2 juillet 2009Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC Vecteurs pouvant violer la PS

45 45 Génération de données de test Vecteurs pertinents / PS 2 juillet 2009Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC Vecteur dentrées pertinent – safeprop( i => o ); –i=true Une propriété de sûreté peut faire référence aux valeurs passées – safeprop( pre i => o ); –Violation à linstant t –i=true à linstant t-1 Généralisation: k instants, pour anticiper linstant t+k

46 46 Génération de données de test Vecteurs pertinents / PS 2 juillet 2009Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC Etat suspect (sous hypothèse) Sous-chemin faisable (sous hypothèse) de longueur k Recherche sur les sous-chemins de longueur k Sous-chemin faisable (sous hypothèse) –Entrées permises par lenvironnement –Sorties permises par lhypothèse : Signature / PS

47 47 Génération de données de test Vecteurs pertinents / PS 2 juillet 2009Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC Les entrées qui sont susceptibles de mener à un état suspect Vecteur pertinent dentrées:

48 48 Génération de données de test Hypothèses 2 juillet 2009Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC Hypothèses de test: –Du test « boîte noire » vers le test « boîte blanche » –Introduction du programme entier en hypothèse Preuve locale de propriétés Boîte noireBoîte grise Boîte blanche Hypothèses TestPreuve

49 49 Algorithme de génération 2 juillet 2009Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC Choix dune entrée

50 50 Génération de données de test choose 2 juillet 2009Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC Trouver une solution au système de contraintes Génération aléatoire –Enumération : Variable de plus petit domaine la plus contrainte –Considère dabord les variables booléennes Génération aux bornes

51 51 Sommaire Test de logiciels synchrones –Lapproche Lutess Problématique et motivations Test de logiciels synchrones : Lutess V2 –Langage de spécification –Génération de données de test –Travaux connexes Réalisations et expérimentations Conclusions et perspectives 2 juillet 2009Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC

52 52 Travaux connexes GATeL (CEA-LIST) Test interactif de programmes Lustre Programmation Logique avec Contraintes Recherche « en arrière » dun chemin menant à lobjectif de test 2 juillet 2009Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC GATeL Programme Objectif Séquence dentrées

53 53 Travaux connexes Lutess vs. Gatel 2 juillet 2009Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC Spécifications informelles Modèle de test Générateur de données environment prob safeprop hypothesis assert Objectif de test Code source Exécutable Similitudes Safeprop + hypothesis (programme complet)

54 54 Travaux connexes Lutess vs. Lurette (VERIMAG) 2 juillet 2009Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC Spécifications informelles Modèle de test Générateur de données environment prob safeprop hypothesis Scenarios Automates PLCPolyèdres + BDD Linéaire

55 55 Sommaire Test de logiciels synchrones –Lapproche Lutess Problématique et motivations Test de logiciels synchrones : Lutess V2 –Langage de spécification –Génération de données de test –Travaux connexes Réalisations et expérimentations Conclusions et perspectives 2 juillet 2009Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC

56 56 Réalisations et expérimentations Réalisations Lutess V2 ECLiPSe Prolog 2 juillet 2009Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC

57 57 Réalisations et expérimentations Expérimentations Lutess V2 appliqué au « contrôleur de chaudière » [EWDC2009] –[Abrial95] Steam-boiler control specification problem. –[Cattel&Duval96] The steam-boiler problem in Lustre. Interface: –34 entrées, dont 7 entiers –38 sorties, dont 8 entiers Taille : 686 lignes de code Lustre Objectifs: –Evaluer lapplicabilité sur un logiciel plus réaliste –Etudier les performances de la génération –Valider la méthodologie 2 juillet 2009Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC

58 58 Réalisations et expérimentations Experimentations Complexité des spécifications –Testnodes: 20 invariants + propriétés de sûreté Temps dexécution: –< 30 sec, longueur 100 pas –Linéaire / nombre de pas Construction générateur plus rapide / booléen Complexité pendant la génération –Dépend fortement du type des spécifications 2 juillet 2009Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC

59 59 Sommaire Test de logiciels synchrones –Lapproche Lutess Problématique et motivations Test de logiciels synchrones : Lutess V2 –Langage de spécification –Génération de données de test –Travaux connexes Réalisations et expérimentations Conclusions et perspectives 2 juillet 2009Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC

60 60 Conclusions et perspectives Contributions Lutess V2 –Probabilités conditionnelles sur expressions quelconques –Introduction dhypothèses pour le test guidée par les propriétés –Un nouveau moteur de génération de données de test Programmation par contraintes Utilisation conjointe de lensemble des techniques de test –Proposition dune méthodologie de test –Expérimentations 2 juillet 2009Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC

61 61 Conclusions et perspectives Perspectives Prise en compte des variables réelles –Choix aléatoire ? –Quelle propagation ? Génération interactive de données de test –Affiner les séquences de test 2 juillet 2009Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC

62 62 Conclusions et perspectives Génération interactive Ne considérer que les états qui nous intéressent interactive( ); –Génération interactive seulement lorsque = true 2 juillet 2009Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC

63 63 Questions 2 juillet 2009Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC ?

64 64 Algorithme en ECLiPSe Prolog 2 juillet 2009Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC

65 65 2 juillet 2009Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC

66 66 2 juillet 2009Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC


Télécharger ppt "1 Test de logiciels synchrones avec la PLC Besnik Seljimi 2 juillet 2009 Sous la direction de Ioannis Parissis et Laurent Trilling Thèse."

Présentations similaires


Annonces Google