Test de spcifications de logiciels synchrones - PowerPoint PPT Presentation

1 / 26
About This Presentation
Title:

Test de spcifications de logiciels synchrones

Description:

La PLC dans Lutess. Le test la PLC. Conclusions. Vision synchrone. Logiciel. synchrone ... c = a ? b abstrait par c = b. a = pre(a) and b abstrait par implies(a,b) boite noire vs. ... – PowerPoint PPT presentation

Number of Views:34
Avg rating:3.0/5.0
Slides: 27
Provided by: BES119
Category:

less

Transcript and Presenter's Notes

Title: Test de spcifications de logiciels synchrones


1
Test de spécifications de logiciels synchrones
  • Besnik Seljimi
  • Laboratoire LSR-IMAG

Réunion DANOCOPS Grenoble 22/03/2005
2
Plan
  • La vision synchrone
  • Vérification formelle
  • Tests - Approche Lutess
  • La PLC dans Lutess
  • Le test à la PLC
  • Conclusions

3
Vision synchrone
Logicielsynchrone
Environnement
i0
i1
i2
i3

o0
o1
o2
o3
  • Caractéristiques
  • Interaction continue avec lenvironnement
  • Temps de calcul nul

4
Exemple Contrôleur de climatiseur
Climatiseur
T1 - temp basseT2 - temp normaleT3 - temp
haute Bouton on/off
Logiciel( étatt , entreet , sortiet )
état mémoire du programme
5
Climatiseur en Lustre
  • node clim(Bouton bool T int)
  • returns (En_marche, Froid, Inactif, Chaud
    bool)
  • let
  • En_marche Bouton -gt(pre En_marche and not
    Bouton)
  • or ( not(pre En_marche) and Bouton)
  • Froid En_marche and T1
  • Inactif En_marche and T2
  • Chaud En_marche and T3
  • tel

Y y0 -gt pre(X) t0 Y y0 ti Y xi-1
6
Validation
Logicielsynchrone
Environnement
7
Validation
Climatiseur
Environnement
UtilisateurEnvironnement physique La
température ne fait pas de sauts chaud-froid
Propriété
Le climatiseur émet-il du chaud quand il fait
froid ?
8
Exemple
Climatiseur
Environnement
La température ne fait pas de sauts chaud-froid
implies ( T3, not(pre T1) ) and implies (
T1, not(pre T3) )
9
Vérification formelle
Logiciels synchrone
Environnement
Logiciel ( étatct , entréest, sortiest )
Env ( étatet , entréest )
i1
prop ?
i0
prop ?
BOOM!
i1
i0
prop ?
prop ?
10
Approche Lutess
i0
i1
Logicielssynchrone
Environnement
Logicielssynchrone
o0
o1
oracle
Code exécutable
oracle?
i0
oracle?
i0
11
Approche Lutess
Logicielssynchrone
Environnement
node Oracle(bouton bool T int en_marche,
froid, inactif, chaud bool) returns (ok
bool)let ok implies(en_marche and T1,
chaud)tel
testnode Env (en_marche, froid, inactif, chaud
bool) returns (bouton bool T int)let
environment( T gt 1 and T lt 3 and implies (
T3, not(pre T1) ) and implies ( T1, not(pre
T3) ) ) tel
12
PLC et Lutess
  • Lutess actuellement
  • Contraintes sous forme de formules booléennes
  • Représentation dans des BDD (Binary Decision
    Diagram)
  • Stratégies de sélection des entrées
  • Aléatoire a gt b, choisir un couple parmi
    (0,0), (0,1), (1,1)
  • Probabiliste P(a gt b) 0.6, P(a V b) 0.4,
  • Scénario
  • Propriétés de sûreté

13
PLC et Lutess
  • PLC dans Lutess
  • Pouvoir exprimer des contraintes numériques
  • X gt Y Z
  • Peut-on facilement adapter les stratégies de
    sélection ?
  • Exemple du choix aléatoire

14
PLC
Logicielssynchrone
Environnement
entrées
sorties
E entrées U sorties
Propriété à vérifier P définie sur les séquences
de E
  • Pour vérifier la propriété P sur un chemin de
    longueur n
  • Vérifier quaucune séquence dentrées-sorties,
  • E1, E2, , En-1, En
  • ne vérifie
  • P1, P2, , Pn-1, Pn

15
Prolog
sequence(L,N) - N size(L), L E_S,
etat_initial(E), chemin(L).
chemin(E) - propriete(E,0). chemin(E1,E2S)
- propriete(E1,1), transition(E1,E2),
chemin(E2S).
etat_initial(E) - environnement_initial(E),
programme_initial(E). transition(E1,E2) -
environnement(E1, Etemp), programme(Etemp, E2).
16
Exemple Climatiseur
testnode environnement(en_marche, froid, chaud,
inactif bool) returns (bouton bool T
int) let environment( Tgt1 and Tlt3 and
true -gt (T lt pre(T) 1 and T gt pre(T) -
1) ) tel
environnement_initial(E) - E _Bouton, T,
_En_marche, _Froid, _Inactif, _Chaud,
ge(T,1), le(T,3).
environnement(E1, E2) - E1 Pre_Bouton,
Pre_T, _, _, _, _, E2 Bouton, T, En_marche,
Froid, Inactif, Chaud, band(bge(T,1),
ble(T,3)) and band(ble(T, Pre_T1), bge(T,
Pre_T-1)).
17
PLC
  • Boite blanche
  • On connaît la totalité du système
  • 3 cas de figure
  • Échec La propriété ne peut pas être violée sur
    un chemin de longueur n
  • Réussite mais pas dénumération possible même
    conclusion
  • Une énumération possible on obtient une
    séquence de test qui mène le système à violer la
    propriété

18
PLC
  • Boite noire
  • Le nombre de séquences est très grand, néanmoins
  • Permet de choisir des données dentrée qui
    respectent lenvironnement
  • Éliminer des chemins a priori non permis par
    lenvironnement (seul)
  • Exemple
  • X gt pre(X), X dans 1,100

19
PLC
  • Boite grise
  • Si on connaît une partie du programme
  • Le nombre de chemins diminue
  • Les chemins qui restent sont plus susceptibles de
    mener à une violation de la propriété
  • Dans quelle mesure le nombre de chemin est réduit
    ?
  • Comment déduire des propriétés à partir du
    programme ?
  • Propriétés bien testés
  • Exemple
  • Tester En_marche ? T3 gt Froid
  • Sous hypothèse que En_marche ? T1 gt Chaud
  • Propriétés instantanées - sans tenir compte
    de létat du programme

20
PLC
Propriétés instantanées - ne dépendant que de
Et
node climatiseur(bouton bool T int)
returns (en_marche, froid, chaud, inactif
bool) let en_marche bouton -gt(pre en_marche
and not bouton) or (not(pre en_marche) and
bouton) froid en_marche and T3 inactif
en_marche and T2 chaud en_marche and
T1 tel
programme(E) - E Interrupteur, T, En_marche,
Froid, Inactif, Chaud, band(Froid, En_marche,
beq(T,3)), band(Inactif, En_marche,
beq(T,2)), band(Chaud, En_marche, beq(T,1)).
21
PLC
  • Élimination des variables détat
  • Abstraction des variables en logique
  • c a ? b abstrait par c gt b
  • a pre(a) and b abstrait par implies(a,b)

22
boite noire vs. boite grise
Nombre de séquences après énumération
log(nb séq)
23
Conclusions et perspectives
  • Lutess avec des contraintes numériques
  • Adaptation des stratégies existantes
  • Lot 4.3
  • Test en boite grise
  • De quelles types de contraintes a-t-on besoin ?
  • Logiciel sous test ? C/C ? contraintes
  • Lot 4.2
  • Test en boite blanche
  • Preuve !
  • Dautres travaux
  • Lot 4.4 Recherche statique
  • Dautres idées
  • Quand peut-on parler de périodicité ?

24
Questions ?
25
BDD
  • F(x0,x1,,xn) x0 . Fx0 x0 . Fx0

x0
0
1
x1
x1
x2
x2
x2
x2
26
Logiciels synchrone
Environnement
Logiciel ( étatct , entréest, sortiest )
Env ( étatet , entréest )
Prop ( étatpt , entréest , sortiest )
Write a Comment
User Comments (0)
About PowerShow.com