1 Test de logiciels synchrones avec la PLC Besnik Seljimi 2 juillet 2009 Sous la direction de...

Post on 03-Apr-2015

106 views 0 download

Transcript of 1 Test de logiciels synchrones avec la PLC Besnik Seljimi 2 juillet 2009 Sous la direction de...

1

Test de logiciels synchrones avec la PLC

Besnik Seljimi2 juillet 2009

Sous la direction de Ioannis Parissis et Laurent Trilling

Thèse

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

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

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

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

Interaction continue avec un environnement externe Hypothèse de synchronisme: réaction instantanée

– En pratique: suffisamment rapide

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

Programme Synchrone

Environnement

i0 i1 i2 i3 ° ° °

o0 o1 o2 o3 ° ° °

7

Contexte scientifique

Le langage Lustre

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

node edge(X: bool) returns (edgeX: bool);let edgeX = false -> not(pre X) and X;tel;

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 »

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

9

Test de logiciels synchrones

Approche Lutess

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

Programme Synchrone

Environnement

ModélisationEnvironnement

ModélisationEnvironnement

Construction automatique de générateursde test

Programme Synchrone

Programme Synchrone

Boîte noire

SimulateurEnvironnement

SimulateurEnvironnement

OracleOracle

OK

10

Test de logiciels synchrones

Approche Lutess

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

Logicielexécutable

DéveloppementSpécifications

informellesSpécifications

informelles

Modèle de test

Modèle de test

Générateur de donnéesGénérateur de données Interaction Interaction

Langage de spécification de Lutess(Lustre enrichi)

Booléen

11

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

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

Programme synchrone

Environnement Environnement

13

Problématique et motivations

Exemple numérique du climatiseur

2 juillet 2009 Thè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

Problématique et motivations

Problématique et contributions

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

Spécifications informelles

Spécifications informelles

Modèle de test

Modèle de test

Générateur de donnéesGénérateur de données

Logicielexécutable

Développement

Interaction Interaction

Langage de spécification

Lutess

Booléen

BDD PLCPLC

Lutess V2Lutess V2

NumériqueNumérique

+ Enrichissement techniques de génération+ Enrichissement techniques de génération

15

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

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

Programme synchrone

Environnement Environnement

17

Langage de spécification

Invariants de l’environnement

2 juillet 2009 Thè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

Langage de spécification

Invariants de l’environnement

2 juillet 2009 Thè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

Langage de spécification

Probabilités conditionnelles

2 juillet 2009 Thè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 d’observabilité de E– E : Expression sur laquelle porte la probabilité P– P : Probabilité de E avec la condition C

20

Langage de spécification

Probabilités conditionnelles

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

prob(false -> pre En_marche, Bouton, 0.1);

Version booléenne

21

Langage de spécification

Probabilités conditionnelles

2 juillet 2009 Thè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

Langage de spécification

Probabilités conditionnelles

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

prob(false -> pre(En_marche and Tsort > Tamb),true -> (Tamb > pre Tamb), 0.8);

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é

2 juillet 2009 Thè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,

Tsort>Tutil));tel

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

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

Hypothèses

2 juillet 2009 Thè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,

Tsort>Tutil));hypothesis(true -> (Bouton =

En_marche<>pre(En_marche)));tel

28

Hypothèses

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

29

Hypothèses

Améliore le guidage / propriétés de sûreté– Certaines sorties deviennent impossibles

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

Boîte noire Boîte grise Boîte blanche

Hypothèses

30

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

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

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

GénérateurGénérateurModèle de test Machine à états finis

Contraintes

Algorithmesde résolution

33

Génération de données de test

Machine à états finis

Une variable d’état pour chaque expression pre E

2 juillet 2009 Thè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 (q0) pour distinguer l’état initial

34

Génération de données de test

Machine à états finis

2 juillet 2009 Thè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;

letq0 = 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

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

: 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

36

Génération de données de test

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

GénérateurGénérateurModèle de test Machine à états finis

Contraintes

Algorithmesde résolution

37

Génération de données de test

Représentation en contraintes

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

inputsBouton: bool; Tamb, Tutil: int;

outputs…

state …

38

Génération de données de test

Représentation en contraintes

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

transitionq0' = false;q1' = Tamb;q2' = En_marche;q3' = Tsort>Tamb;

39

Génération de données de test

Représentation en contraintes

2 juillet 2009 Thè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<=60and

Tutil>=10 and Tutil<=40and

dTamb>=-1 and dTamb<=1;

40

Génération de données de test

Représentation en contraintes

2 juillet 2009 Thè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<q1, 0.8);

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

Séquence de test = chemin dans la machine

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

GénérateurGénérateurModèle de test Machine à états finis

Contraintes

AlgorithmesContraintesAlgorithmes

de générationAlgorithmes

de génération

43

Algorithme de génération

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

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

Démarrer dans l’état initialGénérer une séquence de longueur n

44

Algorithme de génération

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

Vecteurs pouvant violer la PS

45

Génération de données de test

Vecteurs pertinents / PS

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

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

46

Génération de données de test

Vecteurs pertinents / PS

2 juillet 2009 Thè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 l’environnement– Sorties permises par l’hypothèse

: Signature / PS

47

Génération de données de test

Vecteurs pertinents / PS

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

Les entrées qui sont susceptibles de mener à un état suspect

Vecteur pertinent d’entrées:

48

Génération de données de test

Hypothèses

2 juillet 2009 Thè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 noire Boîte grise Boîte blanche

Hypothèses

Test Preuve

49

Algorithme de génération

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

Choix d’une entrée

50

Génération de données de test

choose

2 juillet 2009 Thè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 d’abord les variables booléennes

Génération aux bornes

51

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

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

GATeL

Programme

Objectif

Séquence d’entrées

53

Travaux connexes

Lutess vs. Gatel

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

Spécifications informelles

Spécifications informelles

Modèle de test

Modèle de test

Générateur de donnéesGénérateur de données

environmentprobsafeprophypothesis

assertObjectif de test

Code sourceCode sourceExécutableExécutable

SimilitudesSafeprop + hypothesis (programme complet)

54

Travaux connexes

Lutess vs. Lurette (VERIMAG)

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

Spécifications informelles

Spécifications informelles

Modèle de test

Modèle de test

Générateur de donnéesGénérateur de données

environmentprobsafeprophypothesis

ScenariosAutomates

PLC Polyèdres + BDDLinéaire

55

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

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

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

59

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

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

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

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

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