Test des Machines de Mealy - PowerPoint PPT Presentation

About This Presentation
Title:

Test des Machines de Mealy

Description:

S quence de test. a a b a b b. Observation attendue ? 0 1 1 1 1. Est-ce correct ? 7 ... Observation attendue ? 0 1 1 1 1. t1. t2. a/0. a/1. b/1. Machine B. b/1. 8 ... – PowerPoint PPT presentation

Number of Views:134
Avg rating:3.0/5.0
Slides: 71
Provided by: wwwveri
Category:
Tags: attendue | des | machines | mealy | test

less

Transcript and Presenter's Notes

Title: Test des Machines de Mealy


1
Test des Machines de Mealy
Master 2 Recherche SL Méthodes de test 
  • Stavros Tripakis
  • Laboratoire Verimag

2
Les machines à entrées/sorties synchrones
(machines de Mealy)
sorties
entrées
Entrées e1 e2 e3
Fonctionnement
Sorties s1 s2 s3
3
Un exemple de machine
4
Objectif test de conformité
Spécification
Implémentation
Boite noire
Modèle
Est-elle conforme à A ?
Se comporte-t-elle comme A ?
5
Possibilités et impossibilités
a/0
s1
b/1
Comment tester la conformité pour cette
spécification ?
Conformité Isomorphisme
6
Un exemple un peu plus compliqué
Spécification
Est-ce correct ?
7
Pas tout à fait
Spécification
Machine B
b/1
t1
a/0
a/1
t2
b/1
8
Plan du cours
  • Rappel sur les machines de Mealy
  • Problèmes didentification détat
  • Séquences  homing  et  synchronizing 
  • Séquences  distinguishing 
  • Séquences  UIO 
  • Existence, construction, longueur, complexité
  • Test de conformité

9
Machines de Mealy formalisation et rappel de
notions
M (I, O, S, ?, ?)
  • Ensemble détats fini
  • Déterministe et complète

10
Machines de Mealy formalisation et rappel de
notions
M (I, O, S, ?, ?)
  • Exemple
  • Table des transitions
  • Notation

11
Machines de Mealy formalisation et rappel de
notions
M (I, O, S, ?, ?)
  • Équivalence des états, séquences  separating 
  • Machines minimales
  • Algorithme de minimisation
  • Machines équivalentes
  • Machines isomorphes
  • Machines fortement connexes

12
Plan du cours
  • Rappel sur les machines de Mealy
  • Problèmes didentification détat
  • Séquences  homing  et  synchronizing 
  • Séquences  distinguishing 
  • Séquences  UIO 
  • Existence, construction, longueur, complexité
  • Test de conformité

13
Problèmes didentification détat
  • La machine est connue, son état est inconnu
  • Plusieurs types de problèmes
  •  homing  identifier létat final
  •  synchronizing  mener vers un état donné
  •  distinguishing  identifier létat initial
  •  UIO  ( unique I/O ) vérifier létat
    initial
  • Ca va servir pour le test de conformité

14
Exemple séquences homing et synchronizing (1)
La séquence  a  est homing. Elle est aussi
synchronizing.
15
Exemple séquences homing et synchronizing (2)
Cette machine est minimale (pourquoi ?)
Homing a b (dautres ?)
Pas de synchronizing (pourquoi ?)
16
Exemple séquences homing et synchronizing (3)
Pas de homing/synchronizing
Homing/synchronizing a
s1
a/1
a/1
s2
Ces machines ne sont pas minimales (pourquoi ?)
17
Séquences homing et synchronizing des faits
  • Toute séquence synchronizing est aussi une
    séquence homing
  • mais pas linverse.
  • Machines non-minimales peuvent avoir ou ne pas
    avoir des séquences homing/synchronizing.
  • Toute machine minimale a une séquence homing
  • mais elle peut ne pas avoir de synchronizing.

18
Comment trouver des séquences homing le
 successor tree (pour machines minimales)
19
Existence des séquences homing(pour machines
minimales)
  • Toute machine minimale avec n états a une
    séquence homing de longueur

20
Longueur des séquences homing
  • Il existe des machines qui nécessitent une
    séquence de longueur
  • (exercice)

21
Comment trouver des séquences synchronizing (sil
en existe)
  • Utiliser le  successor tree 
  • Modifications
  • Ignorer les sorties
  • Arrêter lexploration quand on tombe sur une
    boucle
  • Arrêter quand on trouve un nœud singleton
    séquence synchronizing trouvée !

22
Exemple synchronizing
(s1, s2)
a
b
(s1)
(s1, s2)
23
Exemple pas de synchronizing
(s1, s2, s3)
a
b
(s1, s2, s3)
(s1, s2, s3)
24
Exercice
entrées
0 1
A B, 0 D, 0
B A, 0 B, 0
C D, 1 A, 0
D D, 1 C, 0
états
  • Trouver si la machine a une synchronizing

25
Longueur des séquences synchronizing
  • Si une séquence synchronizing existe, alors il
    existe une de longueur
  • Il existe des machines qui nécessitent une
    séquence de longueur
  • (exercices)

26
Plan du cours
  • Rappel sur les machines de Mealy
  • Problèmes didentification détat
  • Séquences  homing  et  synchronizing 
  • Séquences  distinguishing 
  • Séquences  UIO 
  • Existence, construction, longueur, complexité
  • Test de conformité

27
Exemple une séquence distinguishing
  • La séquence  a  est distinguishing
  • Si on observe  0 , on était à s1
  • Si on observe  1 , on était à s2

Toute séquence distinguishing est aussi une
séquence homing (pourquoi ?)
28
Exemple pas de séquence distinguishing (machine
non-minimale)
Une machine non-minimale ne peut avoir de
séquence distinguishing (pourquoi ?)
29
Exemple pas de séquence distinguishing (machine
minimale)
  • Ca ne peut pas commencer par a,
  • Ca ne peut pas commencer par b,
  • M4 est minimale (pourquoi ?)

30
Comment trouver des séquences distinguishing
(sil en existe)
  • Utiliser le  successor tree  pour homing
  • Modifications
  • Arrêter lexploration quand on tombe sur une
    boucle
  • Arrêter lexploration quand on tombe sur un nœud
    avec deux mêmes états dans un block
  • Arrêter quand on trouve un nœud avec que des
    singletons séquence distinguishing trouvée !

31
Exemple distinguishing
32
Exemple pas de distinguishing
33
Des tests  adaptatifs 
M5 est minimale (pourquoi?)
M5 na pas de séquence distinguishing (pourquoi?)
34
Tests adaptatifs des faits
  • Tout test non-adaptatif peut être vu comme
    adaptatif.
  • Il existe des machines qui ont un distinguishing
    adaptatif mais pas de distinguishing
    non-adaptatif.
  • La longueur des adaptatifs est inférieure (dans
    le pire cas polynomiale vs. exponentielle pour
    les non-adaptatifs).
  • Ladaptation ninfluence pas lexistence de
    séquences synchronizing (pourquoi ?)

35
Plan du cours
  • Rappel sur les machines de Mealy
  • Problèmes didentification détat
  • Séquences  homing  et  synchronizing 
  • Séquences  distinguishing 
  • Séquences  UIO 
  • Existence, construction, longueur, complexité
  • Test de conformité

36
Exemple séquence UIO
  • La séquence  a  est UIO pour s1
  • Si on observe  0 , on était à s1
  • Si on observe  1 , on nétait pas à s1

Sil existe un test distinguishing alors il
existe une séquence UIO pour tout état (pourquoi
?)
Une séquence UIO peut ne pas exister pour un ou
plusieurs états (pourquoi ?)
37
Exemple séquence UIO
  • La séquence  a  est UIO pour s1
  • Si on observe  0 , on était à s1
  • Si on observe  1 , on nétait pas à s1

Ladaptation influence-t-elle lexistence de
séquence UIO ?
38
Exemple séquence UIO
  • La séquence  a  est UIO pour s1
  • Si on observe  0 , on était à s1
  • Si on observe  1 , on nétait pas à s1

Exercice proposer une méthode pour chercher des
séquences UIO
39
Complexité
  • Les algorithmes basés sur le  successor tree 
    sont chers exponentiels.
  • Peut-on faire mieux ?

40
Complexité homing/synchronizing
  • Les problèmes dexistence et construction sont
    polynomiaux.
  • Idée utiliser la preuve sur la longueur de
    homing pour nexplorer quun seul chemin dans le
    successor tree.

41
Complexité homing/synchronizing
  • Trouver les séquences les plus courtes est un
    problème difficile NP-dur.
  • Réduction du problème 3SAT au tableau !

Est-ce que jai triché ?
42
Complexité distinguishing
  • Trouver une séquence non-adaptative (sil y en a)
    est difficile PSPACE-dur.
  • Réduction du problème  Intersection dAutomates
    Finis .
  • Trouver des séquences adaptatifs est  facile 
    polynomial.

43
Complexité UIO
  • Les problèmes suivants sont PSPACE-complets
  • Est-ce quun état s de M a une séquence UIO ?
  • Est-ce que tout état de M a une séquence UIO ?
  • Y a-t-il des états de M qui possèdent une
    séquence UIO ?

44
Plan du cours
  • Rappel sur les machines de Mealy
  • Problèmes didentification détat
  • Séquences  homing  et  synchronizing 
  • Séquences  distinguishing 
  • Séquences  UIO 
  • Existence, construction, longueur, complexité
  • Test de conformité

45
Objectif test de conformité
Spécification
Implémentation
Boite noire
Modèle
B conforme à A?
46
Objectif test de conformité
Spécification
Implémentation
Boite noire
Modèle
B équivalente à A ?
47
Hypothèses
  • Le nombre d'états de B est ? k
  • pour commencer, k nombre d'états de A
  • A est minimale
  • si elle ne lest pas, on peut toujours la
    minimiser sans changer la spécification
  • A est fortement connexe
  • sinon, on ne peut pas tout tester - pourquoi ?

48
Objectif test de conformité
Spécification
Implémentation
Boite noire
Modèle
B isomorphe à A ?
49
Méthode
  • Deux phases
  • Mener B vers un état donné
  • Pour cela on va utiliser des séquences homing ou
    synchronizing
  • Parcourir toutes les transitions de B et vérifier
    quelles produisent les bonnes sorties
  • Pour cela on va utiliser des séquences
     checking 
  • Pour produire des séquences checking, on peut
    utiliser des séquences distinguishing, UIO, ou
    dautres
  • Le test final est la concaténation de ces tests.

50
Première phase mener B vers un état donné s
  • Si A a une séquence synchronizing vers s,
    utiliser cette séquence.
  • Si A na pas de séquence synchronizing
  • utiliser une séquence homing pour aller vers un
    état connu
  • utiliser une séquence de transfert pour aller
    vers s (pourquoi cest toujours possible ?)
  • Séquence de transfert ?(s1,s2) une séquence qui
    mène de l'état s1 à l'état s2.

51
Première phase exemple 1
Machine A
Et pour l'état s2 ?
52
Première phase exemple 2
Pas de séquence synchronizing
53
Première phase exemple 2
Le test de la première phase est en général
adaptatif
54
Séquences  checking 
  • Étant donnés une machine A avec n états et un
    état s de A,
  • Une séquence dentrées x est une séquence
    checking pour (A, s) ssi
  • Pour toute machine B avec n états, si B nest
    pas isomorphe à A, alors pour tout état s de B

55
Séquences checking quelques faits
  • On peut toujours construire une séquence checking
    pour une machine minimale
  • En utilisant des séquences  identifying 
  • Problème longueur peut être exponentielle
  • Sil en existent, on peut aussi utiliser des
    tests distinguishing (adaptatifs ou pas)
  • Longueur de la séquence checking polynomiale
    sur la longueur du test distinguishing et la
    taille de A

56
Construction dune séquence checking à partir
dune séquence distinguishing (I)
  • Objectif vérifier que B a n états distincts
  • Supposons
  • x une séquence distinguishing pour A
  • s1 l'état initial de A (après la première
    phase)
  • ti ?(si, x)
  • Séquence (I)

57
Exemple (I)
Spécification
Séquence distinguishing a
58
Construction dune séquence checking à partir
dune séquence distinguishing (II)
  • Objectif vérifier toute transition de B
  • Pour chaque transition
  • Mener la machine à l'état si
  • Appliquer lentrée a et observer la sortie o
  • Vérifier que l'état destination est bien sj
  • Pour ce faire, appliquer la séquence (II)

(t est l'état de départ, après la séquence
précédente)
59
Exemple (II)
Spécification
Séquence distinguishing a
Séquence (II) pour
a b b a
60
Et sil ny a que de tests distinguishing
adaptatifs ?
Pour chaque état si, définir une séquence xi le
chemin de larbre
x1 a a b a b a
x6 a b a
61
Longueur de la séquence checking
lt longueur de séquence de transfert lt n
ld longueur de séquence distinguishing
62
Exercice
  • Trouver un test de conformité pour la machine

63
La vie plus facile les machines avec  status 
ou  reset 
  • Status dévoile l'état de la machine
  • Un  self-loop  à chaque état  si  de A avec
    une entrée  status  qui donne une sortie
     si .
  • Reset amène la machine dans un état donné
  • Une transition de chaque état de A vers un état
     s1  avec entrée  reset  (peu importe la
    sortie).
  • Hypothèse  status  et  reset  fonctionnent
    correctement dans la machine B ( reliable ).

64
Les machines avec  status 
  • Pour construire une séquence checking
  • Trouver un chemin qui parcourt toutes les
    transitions de la machine A.
  • Appliquer lentrée  status  entre chaque deux
    autres entrées.
  • Exemple
  • Chemin (à partir de s1) a b a b b
  • Checking s a s b s a s b s b s
  • (entrée  s  implicite)

65
Les machines avec  reset 
  • Pour construire une séquence checking
  • Trouver un  spanning tree  T
  • Pour chaque état
  • Appliquer  reset , puis le chemin de T qui mène
    vers cet etat
  • Vérifier l'état à laide dune séquence
    distinguishing
  • (ça vérifie aussi les transitions de T)
  • Vérifier les transitions restantes
  • Exemple
  • T s1 -gt s2
  • Pour s1 r a
  • Pour s2 r b a
  • Puis r b b
  • (entrée  r  vers s1 implicite)

66
La vie plus difficile k n u(k borne sur
le nombre d'états de B)
  • Le test devient beaucoup plus  cher 
  • Si le nombre d'entrées est p, alors la longueur
    du test est
  • Exemple

La machine B est un  combination lock 
Machine B
67
Questions ?
68
Conclusions
  • Modèle machines de Mealy
  • Simple, bon pour les circuits
  • Entrées/sorties  synchrones 
  • Théorie bien développée
  • Algorithmes, propriétés, complexité

69
Bibliographie
  • Zvi Kohavi,  Switching and finite automata
    theory , 2nd edition, 1978, McGraw-Hill, Chapter
    13.
  • David Lee and Mihalis Yannakakis,  Principles
    and methods of testing finite-state machines A
    survey , Proceedings of the IEEE, vol.84, no.8,
    August 1996.

70
Pour aller plus loin
  • Dautres modèles
  • Machines non-déterministes
  • Machines avec entrées/sorties  asynchrones 
  • Machines étendues avec variables
  • Automates temporisés
  • Machines probabilistes
  • Dautres relations de conformité
  • Dautres techniques de génération et sélection
    des tests
  • Algorithmes randomisés
  • Couverture
Write a Comment
User Comments (0)
About PowerShow.com