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

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

Présentations similaires


Présentation au sujet: "1 Test des Machines de Mealy Stavros Tripakis Laboratoire Verimag Master 2 Recherche S&L « Méthodes de test »"— Transcription de la présentation:

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

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

3 3 Un exemple de machine s1s1 s2s2 b/1 a/1 a/0

4 4 Objectif : test de conformité Machine A a/1 a/0 a/1 a/0 Machine B Boite noire Est-elle conforme à A ? Spécification Modèle Implémentation Se comporte-t-elle comme A ?

5 5 Possibilités et impossibilités s1s1 b/1 a/0 Comment tester la conformité pour cette spécification ? Conformité = Isomorphisme

6 6 Un exemple un peu plus compliqué … s1s1 s2s2 b/1 a/1 a/0 Spécification Séquence de test a a b a b b Observation attendue ? Est-ce correct ?

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

8 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 9 Machines de Mealy: formalisation et rappel de notions Ensemble détats fini Déterministe et complète M = (I, O, S,, )

10 10 Machines de Mealy: formalisation et rappel de notions Exemple : Table des transitions Notation M = (I, O, S,, ) s1s1 s2s2 b/1 a/1 a/0

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

12 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 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 14 Exemple : séquences homing et synchronizing (1) s1s1 s2s2 b/1 a/1 a/0 « M 1 » La séquence « a » est homing. Elle est aussi synchronizing.

15 15 Exemple : séquences homing et synchronizing (2) « M 2 » a/0 s1s1 s3s3 b/1 b/0 a/1 s2s2 b/1 a/0 Homing : a b(dautres ?) Pas de synchronizing (pourquoi ?) Cette machine est minimale (pourquoi ?)

16 16 Exemple : séquences homing et synchronizing (3) s1s1 s2s2 a/1 s1s1 s2s2 b/1 a/0 Pas de homing/synchronizingHoming/synchronizing : a Ces machines ne sont pas minimales (pourquoi ?)

17 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 18 Comment trouver des séquences homing: le « successor tree » (pour machines minimales) « M 2 » a/0 s1s1 s3s3 b/1 b/0 a/1 s2s2 b/1 a/0 (s1, s2, s3) a 01 (s1, s3)(s2) b 10 (s2, s3)(s1) a 10 (s2)(s1) 0 (s3)

19 19 Existence des séquences homing (pour machines minimales) Toute machine minimale avec n états a une séquence homing de longueur

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

21 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 22 Exemple: synchronizing (s1, s2) a (s1) b (s1, s2) s1s1 s2s2 b/1 a/1 a/0 « M 1 »

23 23 Exemple: pas de synchronizing (s1, s2, s3) a b « M 2 » a/0 s1s1 s3s3 b/1 b/0 a/1 s2s2 b/1 a/0

24 24 Exercice Trouver si la machine a une synchronizing 01 AB, 0D, 0 BA, 0B, 0 CD, 1A, 0 DD, 1C, 0 états entrées

25 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 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 27 Exemple : une séquence distinguishing s1s1 s2s2 b/1 a/1 a/0 « M 1 » 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 28 Exemple: pas de séquence distinguishing (machine non-minimale) s1s1 s2s2 b/1 a/0 Une machine non-minimale ne peut avoir de séquence distinguishing (pourquoi ?)

29 29 Exemple: pas de séquence distinguishing (machine minimale) Ca ne peut pas commencer par a, Ca ne peut pas commencer par b, M 4 est minimale (pourquoi ?) « M 4 » a/0 s1s1 s2s2 b/0 a/0 b/0 s3s3 b/1 a/0

30 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 31 Exemple : distinguishing « M 2 » a/0 s1s1 s3s3 b/1 b/0 a/1 s2s2 b/1 a/0 (s1, s2, s3) a 01 (s1, s3)(s2) b 10 (s2, s3)(s1) a 10 (s2)(s1) 0 (s3)

32 32 Exemple : pas de distinguishing (s1, s2, s3) a 0 (s1, s1, s2) b 01 (s3, s3)(s3) « M 4 » a/0 s1s1 s2s2 b/0 a/0 b/0 s3s3 b/1 a/0

33 33 Des tests « adaptatifs » s2s2 s6s6 b/0 a/1 a/0 « M 5 » s3s3 s5s5 a/1 s4s4 s1s1 b/0 a/0 b/0 a/1 b/0 a/0 b/0 M 5 est minimale (pourquoi?) M 5 na pas de séquence distinguishing (pourquoi?) S4S4 S1S1 S3S3 a b S5S5 a ab a S6S6 b a S2S2 a b Un test adaptatif : il est distinguishing !

34 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 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 36 Exemple : séquence UIO s1s1 s2s2 b/1 a/1 a/0 « M 1 » 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 37 Exemple : séquence UIO s1s1 s2s2 b/1 a/1 a/0 « M 1 » 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 38 Exemple : séquence UIO s1s1 s2s2 b/1 a/1 a/0 « M 1 » 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 39 Complexité Les algorithmes basés sur le « successor tree » sont chers : exponentiels. Peut-on faire mieux ?

40 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 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 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 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 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 45 Objectif : test de conformité Machine A a/1 a/0 a/1 a/0 Machine B Boite noire B conforme à A? Spécification Modèle Implémentation

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

47 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 48 Objectif : test de conformité Machine A a/1 a/0 a/1 a/0 Machine B Boite noire B isomorphe à A ? Spécification Modèle Implémentation

49 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 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 51 Première phase : exemple 1 s1s1 s2s2 b/1 a/1 a/0 Machine ASéquence synchronizing pour l'état s1 : a Et pour l'état s2 ?

52 52 Première phase : exemple 2 Pas de séquence synchronizing Machine A « M 2 » a/0 s1s1 s3s3 b/1 b/0 a/1 s2s2 b/1 a/0 Séquence homing : a b s10 s3 1 s2 0 1s1 Etat finalSortieEtat initial

53 53 Première phase : exemple 2 Machine A « M 2 » a/0 s1s1 s3s3 b/1 b/0 a/1 s2s2 b/1 a/0 Selon l'état final, appliquer : s1 bs3 s1s2 Nouvel étatSéquence de transfert Etat final b Le test de la première phase est en général adaptatif

54 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 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 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 –s 1 : l'état initial de A (après la première phase) –t i = (s i, x) Séquence (I) :

57 57 Exemple (I) s1s1 s2s2 b/1 a/1 a/0 Séquence distinguishing : a Spécification t 1 = (s 1, a) = s 1 t 2 = (s 2, a) = s 1 (t 1,s 2 ) = b (t 2,s 1 ) = vide Séquence (I) : a b a a

58 58 Construction dune séquence checking à partir dune séquence distinguishing (II) Objectif : vérifier toute transition de B –Pour chaque transition 1.Mener la machine à l'état s i 2.Appliquer lentrée a et observer la sortie o 3.Vérifier que l'état destination est bien s j –Pour ce faire, appliquer la séquence (II) : (t est l'état de départ, après la séquence précédente)

59 59 Exemple (II) s1s1 s2s2 b/1 a/1 a/0 Spécification Séquence distinguishing : a t 1 = (s 1, a) = s 1 t 2 = (s 2, a) = s 1 (t 1,s 2 ) = b (t 2,s 1 ) = vide Séquence (II) pour : a b b a

60 60 Et sil ny a que de tests distinguishing adaptatifs ? S4S4 S1S1 S3S3 a b S5S5 a ab a S6S6 b a S2S2 a b Pour chaque état s i, définir une séquence x i : le chemin de larbre x 1 = a a b a b a x 6 = a b a Les séquences (I) et (II) deviennent :

61 61 Longueur de la séquence checking l t = longueur de séquence de transfert < n l d = longueur de séquence distinguishing

62 62 Exercice Trouver un test de conformité pour la machine : « M 2 » a/0 s1s1 s3s3 b/1 b/0 a/1 s2s2 b/1 a/0

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

64 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) s1s1 s2s2 b/1 a/1 a/0

65 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 -> s2 –Pour s1 : r a –Pour s2 : r b a –Puis : r b b –(entrée « r » vers s1 implicite) s1s1 s2s2 b/1 a/1 a/0

66 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 : Machine A (presque) q1q1 q2q2 q3q3 ququ s x0x0 x1x1 x2x2 x u-1 x u / faute La machine B est un « combination lock » Machine B

67 67 Questions ?

68 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 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 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 –…


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

Présentations similaires


Annonces Google