La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Test des Machines de Mealy

Présentations similaires


Présentation au sujet: "Test des Machines de Mealy"— Transcription de la présentation:

1 Test des Machines de Mealy
Master 2 Recherche S&L « Méthodes de test » Test des Machines de Mealy Stavros Tripakis Laboratoire Verimag

2 Les machines à entrées/sorties synchrones (machines de Mealy)
Entrées: e1 e2 e3 … Fonctionnement: Sorties: s1 s2 s3 …

3 Un exemple de machine s1 s2 b/1 a/1 a/0

4 Objectif : test de conformité
Spécification Implémentation Machine A Machine B 1 2 3 4 5 a/1 a/0 Modèle Boite noire 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 Séquence de test a a b a b b s1 s2 b/1 a/1 a/0 Observation attendue ? Est-ce correct ?

7 Pas tout à fait … Spécification Machine B Séquence de test a a b a b b
Observation attendue ? a/0 a/1 t2 b/1

8 Plan du cours Rappel sur les machines de Mealy
Problèmes d’identification 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 s1 s2 b/1 a/1 a/0

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 d’identification d’état: Séquences « homing » et « synchronizing » Séquences « distinguishing » Séquences « UIO » Existence, construction, longueur, complexité Test de conformité

13 Problèmes d’identification 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)
b/1 a/1 a/0 « M1 » La séquence « a » est homing. Elle est aussi synchronizing.

15 Exemple : séquences homing et synchronizing (2)
a/0 s1 s3 b/1 b/0 a/1 s2 Cette machine est minimale (pourquoi ?) Homing : a b (d’autres ?) Pas de synchronizing (pourquoi ?)

16 Exemple : séquences homing et synchronizing (3)
Pas de homing/synchronizing Homing/synchronizing : a s1 s2 b/1 a/0 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 l’inverse. 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)
(s1, s2, s3) « M2 » a/0 s1 s3 b/1 b/0 a/1 s2 a 1 (s1, s3) (s2) b 1 (s2, s3) (s1) a 1 (s2) (s1) (s3)

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 (s’il en existe)
Utiliser le « successor tree » Modifications: Ignorer les sorties Arrêter l’exploration quand on tombe sur une boucle Arrêter quand on trouve un nœud singleton: séquence synchronizing trouvée !

22 Exemple: synchronizing
b/1 a/1 a/0 « M1 » (s1, s2) a b (s1) (s1, s2)

23 Exemple: pas de synchronizing
b/1 b/0 a/1 s2 (s1, s2, s3) a b (s1, s2, s3) (s1, s2, s3)

24 Exercice Trouver si la machine a une synchronizing entrées états 1 A
1 A B, 0 D, 0 B A, 0 C D, 1 D 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 d’identification 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
b/1 a/1 a/0 « M1 » 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)
b/1 a/0 Une machine non-minimale ne peut avoir de séquence distinguishing (pourquoi ?)

29 Exemple: pas de séquence distinguishing (machine minimale)
b/0 s3 b/1 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 (s’il en existe)
Utiliser le « successor tree » pour homing Modifications: Arrêter l’exploration quand on tombe sur une boucle Arrêter l’exploration 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
(s1, s2, s3) « M2 » a/0 s1 s3 b/1 b/0 a/1 s2 a 1 (s1, s3) (s2) b 1 (s2, s3) (s1) a 1 (s2) (s1) (s3)

32 Exemple : pas de distinguishing
(s1, s2, s3) « M4 » a/0 s1 s2 b/0 s3 b/1 a (s1, s1, s2) b 1 (s3, s3) (s3)

33 Des tests « adaptatifs »
b/0 a/1 a/0 « M5 » s3 s5 s4 s1 S4 S1 S3 a b S5 S6 S2 1 Un test adaptatif : il est distinguishing ! M5 est minimale (pourquoi?) M5 n’a 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). L’adaptation n’influence pas l’existence de séquences synchronizing (pourquoi ?)

35 Plan du cours Rappel sur les machines de Mealy
Problèmes d’identification 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:
b/1 a/1 a/0 « M1 » La séquence « a » est UIO pour s1: Si on observe « 0 », on était à s1 Si on observe « 1 », on n’était pas à s1 S’il 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:
b/1 a/1 a/0 « M1 » La séquence « a » est UIO pour s1: Si on observe « 0 », on était à s1 Si on observe « 1 », on n’était pas à s1 L’adaptation influence-t-elle l’existence de séquence UIO ?

38 Exemple : séquence UIO La séquence « a » est UIO pour s1:
b/1 a/1 a/0 « M1 » 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 d’existence et construction sont polynomiaux. Idée : utiliser la preuve sur la longueur de homing pour n’explorer qu’un 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 j’ai triché ?

42 Complexité : distinguishing
Trouver une séquence non-adaptative (s’il y en a) est difficile : PSPACE-dur. Réduction du problème « Intersection d’Automates Finis ». Trouver des séquences adaptatifs est « facile » : polynomial.

43 Complexité : UIO Les problèmes suivants sont PSPACE-complets :
Est-ce qu’un é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 d’identification 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 Machine A Machine B 1 2 3 4 5 a/1 a/0 Modèle Boite noire B conforme à A?

46 Objectif : test de conformité
Spécification Implémentation Machine A Machine B 1 2 3 4 5 a/1 a/0 Modèle Boite noire B équivalente à A ?

47 Hypothèses Le nombre d'états de B est  k A est minimale
pour commencer, k = nombre d'états de A A est minimale si elle ne l’est 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 Machine A Machine B 1 2 3 4 5 a/1 a/0 Modèle Boite noire B isomorphe à A ?

49 Méthode Deux phases : Le test final est la concaténation de ces tests.
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 qu’elles 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 d’autres 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 n’a 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 c’est 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 Séquence synchronizing pour l'état s1 : a s1 s2 b/1 a/1 a/0 Et pour l'état s2 ?

52 Première phase : exemple 2
Machine A « M2 » a/0 s1 s3 b/1 b/0 a/1 s2 Pas de séquence synchronizing Séquence homing : a b s1 0 0 s3 1 1 s2 0 1 Etat final Sortie Etat initial

53 Première phase : exemple 2
Selon l'état final, appliquer : s1 b s3 s2 Nouvel état Séquence de transfert Etat final b b Machine A « M2 » a/0 s1 s3 b/1 b/0 a/1 s2 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 d’entrées x est une séquence checking pour (A, s) ssi : Pour toute machine B avec ≤ n états, si B n’est 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 S’il 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 d’une séquence checking à partir d’une 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) t1 = (s1, a) = s1 t2 = (s2, a) = s1 (t1,s2) = b
Spécification Séquence distinguishing : a t1 = (s1, a) = s1 t2 = (s2, a) = s1 s1 s2 b/1 a/1 a/0 (t1,s2) = b (t2,s1) = vide Séquence (I) : a b a a

58 Construction d’une séquence checking à partir d’une séquence distinguishing (II)
Objectif : vérifier toute transition de B Pour chaque transition Mener la machine à l'état si Appliquer l’entré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) t1 = (s1, a) = s1 t2 = (s2, a) = s1 (t1,s2) = b
Spécification Séquence distinguishing : a t1 = (s1, a) = s1 t2 = (s2, a) = s1 s1 s2 b/1 a/1 a/0 (t1,s2) = b (t2,s1) = vide Séquence (II) pour : a b b a

60 Et s’il n’y a que de tests distinguishing adaptatifs ?
b S5 S6 S2 1 Pour chaque état si, définir une séquence xi : le chemin de l’arbre x1 = a a b a b a x6 = a b a Les séquences (I) et (II) deviennent :

61 Longueur de la séquence checking
lt = longueur de séquence de transfert < n ld = longueur de séquence distinguishing

62 Exercice Trouver un test de conformité pour la machine : « M2 » a/0 s1
b/1 b/0 a/1 s2

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 l’entré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) s1 s2 b/1 a/1 a/0

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 à l’aide d’une séquence distinguishing (ça vérifie aussi les transitions de T) Vérifier les transitions restantes Exemple : T : s1 -> s2 Pour s1 : r a Pour s2 : r b a Puis : r b b (entrée « r » vers s1 implicite) s1 s2 b/1 a/1 a/0

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 A (presque) q1 q2 q3 qu s x0 x1 x2 xu-1 xu/faute Machine B

67 Questions ?

68 Conclusions Modèle : machines de Mealy Théorie bien développée :
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 D’autres modèles :
Machines non-déterministes Machines avec entrées/sorties « asynchrones » Machines étendues avec variables Automates temporisés Machines probabilistes D’autres relations de conformité D’autres techniques de génération et sélection des tests Algorithmes randomisés Couverture


Télécharger ppt "Test des Machines de Mealy"

Présentations similaires


Annonces Google