Title: Test des Machines de Mealy
1Test des Machines de Mealy
Master 2 Recherche SL Méthodes de test
- Stavros Tripakis
- Laboratoire Verimag
2Les machines à entrées/sorties synchrones
(machines de Mealy)
sorties
entrées
Entrées e1 e2 e3
Fonctionnement
Sorties s1 s2 s3
3Un exemple de machine
4Objectif test de conformité
Spécification
Implémentation
Boite noire
Modèle
Est-elle conforme à A ?
Se comporte-t-elle comme A ?
5Possibilités et impossibilités
a/0
s1
b/1
Comment tester la conformité pour cette
spécification ?
Conformité Isomorphisme
6Un exemple un peu plus compliqué
Spécification
Est-ce correct ?
7Pas tout à fait
Spécification
Machine B
b/1
t1
a/0
a/1
t2
b/1
8Plan 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é
9Machines de Mealy formalisation et rappel de
notions
M (I, O, S, ?, ?)
- Ensemble détats fini
- Déterministe et complète
10Machines de Mealy formalisation et rappel de
notions
M (I, O, S, ?, ?)
- Exemple
- Table des transitions
- Notation
11Machines 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
12Plan 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é
13Problè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é
14Exemple séquences homing et synchronizing (1)
La séquence a est homing. Elle est aussi
synchronizing.
15Exemple séquences homing et synchronizing (2)
Cette machine est minimale (pourquoi ?)
Homing a b (dautres ?)
Pas de synchronizing (pourquoi ?)
16Exemple 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 ?)
17Sé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.
18Comment trouver des séquences homing le
successor tree (pour machines minimales)
19Existence des séquences homing(pour machines
minimales)
- Toute machine minimale avec n états a une
séquence homing de longueur
20Longueur des séquences homing
- Il existe des machines qui nécessitent une
séquence de longueur - (exercice)
21Comment 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 !
22Exemple synchronizing
(s1, s2)
a
b
(s1)
(s1, s2)
23Exemple pas de synchronizing
(s1, s2, s3)
a
b
(s1, s2, s3)
(s1, s2, s3)
24Exercice
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
25Longueur 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)
26Plan 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é
27Exemple 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 ?)
28Exemple pas de séquence distinguishing (machine
non-minimale)
Une machine non-minimale ne peut avoir de
séquence distinguishing (pourquoi ?)
29Exemple 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 ?)
30Comment 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 !
31Exemple distinguishing
32Exemple pas de distinguishing
33Des tests adaptatifs
M5 est minimale (pourquoi?)
M5 na pas de séquence distinguishing (pourquoi?)
34Tests 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 ?)
35Plan 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é
36Exemple 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 ?)
37Exemple 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 ?
38Exemple 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
39Complexité
- Les algorithmes basés sur le successor tree
sont chers exponentiels. - Peut-on faire mieux ?
40Complexité 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.
41Complexité 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é ?
42Complexité 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.
43Complexité 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 ?
44Plan 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é
45Objectif test de conformité
Spécification
Implémentation
Boite noire
Modèle
B conforme à A?
46Objectif test de conformité
Spécification
Implémentation
Boite noire
Modèle
B équivalente à A ?
47Hypothè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 ?
48Objectif test de conformité
Spécification
Implémentation
Boite noire
Modèle
B isomorphe à A ?
49Mé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.
50Premiè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.
51Première phase exemple 1
Machine A
Et pour l'état s2 ?
52Première phase exemple 2
Pas de séquence synchronizing
53Première phase exemple 2
Le test de la première phase est en général
adaptatif
54Sé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
55Sé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
56Construction 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)
57Exemple (I)
Spécification
Séquence distinguishing a
58Construction 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)
59Exemple (II)
Spécification
Séquence distinguishing a
Séquence (II) pour
a b b a
60Et 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
61Longueur de la séquence checking
lt longueur de séquence de transfert lt n
ld longueur de séquence distinguishing
62Exercice
- Trouver un test de conformité pour la machine
63La 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 ).
64Les 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)
65Les 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)
66La 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
67Questions ?
68Conclusions
- 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é
69Bibliographie
- 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.
70Pour 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
-