Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parTelesphore Lagarde Modifié depuis plus de 11 années
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
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.