1 / 70

Test des Machines de Mealy

Master 2 Recherche S&L « Méthodes de test ». Test des Machines de Mealy. Stavros Tripakis Laboratoire Verimag. Machine. Les machines à entrées/sorties synchrones (machines de Mealy). sorties. entrées. Entrées: e1 e2 e3 …. Fonctionnement:. Sorties: s1 s2 s3 …. a/0. s 1. b/1. b/1.

qiana
Download Presentation

Test des Machines de Mealy

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

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

  4. a/1 1 2 a/0 a/0 a/1 5 3 a/0 Machine B 4 a/1 Machine A Objectif : test de conformité Spécification Implémentation 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. Séquence de test a/0 a a b a b b s1 b/1 Observation attendue b/1 a/1 s2 ? 0 1 1 1 1 Un exemple un peu plus compliqué … Spécification Est-ce correct ?

  7. Séquence de test a/0 a a b a b b s1 b/1 Observation attendue b/1 a/1 s2 ? 0 1 1 1 1 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 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 • Ensemble d’états fini • Déterministe et complète M = (I, O, S, , )

  10. a/0 s1 b/1 b/1 a/1 s2 Machines de Mealy: formalisation et rappel de notions • Exemple : • Table des transitions • Notation M = (I, O, S, , )

  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. 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. a/0 s1 b/1 b/1 a/1 s2 « M1 » Exemple : séquences homing et synchronizing (1) La séquence « a » est homing. Elle est aussi synchronizing.

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

  16. a/0 s1 b/1 b/1 a/0 s2 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 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. a/0 (s1, s2, s3) a s1 b b/0 b/1 s3 s2 « M2 » b/1 a a/0 a/1 1 0 0 (s2) (s3) (s1) 0 1 1 0 (s2, s3) (s1, s3) (s2) (s1) 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 (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. a/0 s1 b/1 b/1 a/1 s2 « M1 » Exemple: synchronizing (s1, s2) a b (s1) (s1, s2)

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

  24. Exercice entrées é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. a/0 s1 b/1 b/1 a/1 s2 « M1 » 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. a/0 s1 b/1 b/1 a/0 s2 Exemple: pas de séquence distinguishing (machine non-minimale) Une machine non-minimale ne peut avoir de séquence distinguishing (pourquoi ?)

  29. a/0 s1 a/0 b/1 b/0 s2 s3 b/0 a/0 « M4 » 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 (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. a/0 (s1, s2, s3) a s1 b b/0 b/1 s3 s2 « M2 » b/1 a a/0 a/1 1 0 0 (s2) (s3) (s1) 0 1 1 0 (s2, s3) (s1, s3) (s2) (s1) Exemple : distinguishing

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

  33. a/1 s2 s3 a/0 a/0 a 0 1 b/0 b/0 a b s1 s4 1 0 b/0 b/0 b b/0 b/0 a/1 0 s6 s5 a 0 a/1 1 a a/0 1 0 b S6 « M5 » S5 b 0 0 a a 0 Un test adaptatif : il est distinguishing ! 1 1 0 S3 S2 S1 S4 Des tests « adaptatifs » 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. a/0 s1 b/1 b/1 a/1 s2 « M1 » 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 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. a/0 s1 b/1 b/1 a/1 s2 « M1 » 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 L’adaptation influence-t-elle l’existence de séquence UIO ?

  38. a/0 s1 b/1 b/1 a/1 s2 « M1 » 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 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. a/1 1 2 a/0 a/0 a/1 5 3 a/0 Machine B 4 a/1 Machine A Objectif : test de conformité Spécification Implémentation Modèle Boite noire B conforme à A?

  46. a/1 1 2 a/0 a/0 a/1 5 3 a/0 Machine B 4 a/1 Machine A Objectif : test de conformité Spécification Implémentation Modèle Boite noire 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 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. a/1 1 2 a/0 a/0 a/1 5 3 a/0 Machine B 4 a/1 Machine A Objectif : test de conformité Spécification Implémentation Modèle Boite noire 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 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.

More Related