1 test de logiciels synchrones avec la plc besnik seljimi 2 juillet 2009 sous la direction de...

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

Upload: telesphore-lagarde

Post on 03-Apr-2015

106 views

Category:

Documents


0 download

TRANSCRIPT

Page 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

1

Test de logiciels synchrones avec la PLC

Besnik Seljimi2 juillet 2009

Sous la direction de Ioannis Parissis et Laurent Trilling

Thèse

Page 2: 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

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

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

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

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

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

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

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

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

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 ° ° °

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

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;

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

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

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

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

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

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

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

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

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

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

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

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;

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

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

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

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

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

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

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

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

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

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 ?

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

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

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

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

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

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

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

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);

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

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

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

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

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

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

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

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

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

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

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

28

Hypothèses

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 …

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

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;

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

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;

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

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);

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

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

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

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

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

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

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

44

Algorithme de génération

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

Vecteurs pouvant violer la PS

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

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

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

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

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

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:

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

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

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

49

Algorithme de génération

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

Choix d’une entrée

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

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

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

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

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

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

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

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)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

63

Questions

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

?

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

64

Algorithme en ECLiPSe Prolog

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

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

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

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

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