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

Test de logiciels synchrones avec la PLC

Présentations similaires


Présentation au sujet: "Test de logiciels synchrones avec la PLC"— Transcription de la présentation:

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

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 d’un programme pour vérifier qu’il 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 2009 Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC

3 Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC
Objectif de la thèse L’outil 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 d’expressivité / tests plus évolués Probabilités conditionnelles étendues Les entrées booléennes / Expression quelconque Introduction d’hypothèses Test en « boîte noire » / « Boîte grise » Utilisation simultanée de plusieurs techniques 2 juillet 2009 Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC

4 Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC
Sommaire Test de logiciels synchrones L’approche 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 2009 Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC

5 Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC
Sommaire Test de logiciels synchrones L’approche 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 2009 Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC

6 Contexte scientifique Logiciels synchrones
Programme Synchrone Environnement i0 i1 i2 i3 ° ° ° o0 o1 o2 o3 Interaction continue avec un environnement externe Hypothèse de synchronisme: réaction instantanée En pratique: suffisamment rapide C’EST UN RAPPEL 2 juillet 2009 Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC

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

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 l’environnement ou de l’utilisateur Profils opérationnels Profils d’usage Lutess Test de logiciels synchrones en « boite noire » Outils : ajouter des outils qui utilisent des modèles du programme Spécs algébrique, BZ-testing tools 2 juillet 2009 Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC

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

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

11 Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC
Sommaire Test de logiciels synchrones L’approche 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 2009 Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC

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

13 Problématique et motivations Exemple numérique du climatiseur
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; 2 juillet 2009 Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC

14 Problématique et motivations Problématique et contributions
Spécifications informelles Modèle de test Générateur de données Logiciel exécutable Développement Interaction Langage de spécification Lutess Booléen BDD Numérique Lutess V2 Les logiciels de la vie réelle contiennent des entrées/sorties numériques Description de l’environnement Valeurs entières Opérateurs algébriques, de comparaison, … Objectif de ce travail Logiciels synchrones numériques Adaptation des techniques de test PLC + Enrichissement techniques de génération 2 juillet 2009 Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC

15 Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC
Sommaire Test de logiciels synchrones L’approche 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 2009 Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC

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

17 Langage de spécification Invariants de l’environnement
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 DIRE CE QUI EST NOUVEAU 2 juillet 2009 Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC

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

19 Langage de spécification Probabilités conditionnelles
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 d’observabilité de E E : Expression sur laquelle porte la probabilité P P : Probabilité de E avec la condition C 2 juillet 2009 Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC

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

21 Langage de spécification Probabilités conditionnelles
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 Pourquoi c’est intéressant Pourquoi pas avant ! 2 juillet 2009 Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC

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

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 2009 Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC

24 Langage de spécification Propriétés de sûreté
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, Tsort>Tutil)); tel 2 juillet 2009 Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC

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 2009 Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC

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

27 Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC
Hypothèses 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, Tsort>Tutil)); hypothesis(true -> (Bouton = En_marche<>pre(En_marche))); tel 2 juillet 2009 Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC

28 Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC
Hypothèses Mettre des boîtes rouges 2 juillet 2009 Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC

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

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

31 Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC
Sommaire Test de logiciels synchrones L’approche 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 2009 Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC

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

33 Génération de données de test Machine à états finis
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 (q0) pour distinguer l’état initial Une variable d’état pour chaque expression pre E 2 juillet 2009 Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC

34 Génération de données de test Machine à états finis
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 2 juillet 2009 Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC

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

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

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

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

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

40 Génération de données de test Représentation en contraintes
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<q1, 0.8); 2 juillet 2009 Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC

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

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

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

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

45 Génération de données de test Vecteurs pertinents / PS
Vecteur d’entré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 à l’instant t i=true à l’instant t-1 Généralisation: k instants, pour anticiper l’instant t+k 2 juillet 2009 Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC

46 Génération de données de test Vecteurs pertinents / PS
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 l’environnement Sorties permises par l’hypothèse : Signature / PS 2 juillet 2009 Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC

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

48 Génération de données de test Hypothèses
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 Hypothèses Boîte noire Boîte grise Boîte blanche Test Preuve 2 juillet 2009 Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC

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

50 Génération de données de test choose
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 d’abord les variables booléennes Génération aux bornes 2 juillet 2009 Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC

51 Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC
Sommaire Test de logiciels synchrones L’approche 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 2009 Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC

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

53 Travaux connexes Lutess vs. Gatel
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) 2 juillet 2009 Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC

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

55 Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC
Sommaire Test de logiciels synchrones L’approche 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 2009 Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC

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

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 l’applicabilité sur un logiciel plus réaliste Etudier les performances de la génération Valider la méthodologie Dire que la taille est importante 2 juillet 2009 Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC

58 Réalisations et expérimentations Experimentations
Complexité des spécifications Testnodes: 20 invariants + propriétés de sûreté Temps d’exé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 Fautes détectées maintenant / pas avant 2 juillet 2009 Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC

59 Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC
Sommaire Test de logiciels synchrones L’approche 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 2009 Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC

60 Conclusions et perspectives Contributions
Lutess V2 Probabilités conditionnelles sur expressions quelconques Introduction d’hypothè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 l’ensemble des techniques de test Proposition d’une méthodologie de test Expérimentations CAS D’INCOHERENCES : Commentaires 2 juillet 2009 Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC

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 2009 Thèse Besnik Seljimi Test de logiciels synchrones avecla PLC

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

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

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

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

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


Télécharger ppt "Test de logiciels synchrones avec la PLC"

Présentations similaires


Annonces Google