Méthodes pour la validation de modèles formels pour la ... - ISAE
Méthodes pour la validation de modèles formels pour la ... - ISAE
Méthodes pour la validation de modèles formels pour la ... - ISAE
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
4.3 Vocabu<strong>la</strong>ire du test 109<br />
par le modèle considéré lors <strong>de</strong> <strong>la</strong> simu<strong>la</strong>tion. Cette activité est donc une activité indispensable et<br />
complémentaire <strong>de</strong> celle présentée au chapitre 3.<br />
Selon [43], le but <strong>de</strong> l’activité <strong>de</strong> test n’est cependant pas <strong>de</strong> démontrer l’absence d’erreur<br />
dans le programme ou <strong>de</strong> démontrer que le programme satisfait certaines propriétés attendues.<br />
Ainsi une définition préférée serait plutôt celle définissant le test comme une activité visant à<br />
détecter <strong>de</strong>s erreurs dans un logiciel (ou dans notre cas, dans un modèle). Ainsi, « tester » un<br />
modèle peut être aperçu comme une « mise à l’épreuve » <strong>de</strong> ce modèle dans le but <strong>de</strong> détecter<br />
le plus grand nombre d’erreurs possibles. Remarquons alors que <strong>de</strong>ux principaux types d’erreurs<br />
peuvent être présents dans un modèle : lorsque le modèle ne fait pas (ou fait <strong>de</strong> manière erronée)<br />
ce qu’il est supposé faire ; lorsque le modèle fait ce qu’il n’est pas censé faire. L’activité <strong>de</strong> test<br />
aura <strong>pour</strong> vocation <strong>de</strong> détecter ces erreurs <strong>pour</strong> permettre leurs corrections.<br />
4.3.2 Test et jeu <strong>de</strong> tests<br />
De façon re<strong>la</strong>tivement intuitive, un test est un couple (entrée, sortie) où l’entrée est un<br />
ensemble d’évènements à simuler sur le modèle et où <strong>la</strong> sortie est le résultat attendu. Ainsi, un<br />
test peut être décrit simplement par une phrase du type « si on joue un évènement donné sur le<br />
modèle, alors <strong>la</strong> sortie <strong>de</strong>vra être égale à une valeur v ».<br />
De manière formelle, nous définirons un test comme un 4-uplet t = (M, v, Φ, o) où :<br />
– M est le modèle étudié, i.e. le modèle sur lequel on va effectuer les tests ;<br />
– v = (e i ) i≥0 un vecteur d’évènements ;<br />
– Φ un observateur du modèle, i.e. une sortie du modèle ;<br />
– o ∈ dom(Φ) <strong>la</strong> valeur attendue <strong>de</strong> Φ.<br />
De manière spécifique aux automates <strong>de</strong> mo<strong>de</strong>s, on peut définir un test comme un 5-uplet<br />
t A = (A, v, s, Φ, o) où :<br />
– A = (D, dom, S, F in , F out , Σ, δ, σ, I) est un automate <strong>de</strong> mo<strong>de</strong> (Cf. section 2.3) ;<br />
– v = (e i ) i≥0 un vecteur d’évènements où ∀i, e i ∈ Σ ;<br />
– s une évaluation <strong>de</strong>s variables <strong>de</strong> S (s ∈ dom(S)) représentant l’état attendu <strong>de</strong> A à <strong>la</strong><br />
suite <strong>de</strong> v ;<br />
– Φ un observateur du modèle : Φ ∈ F out ;<br />
– o ∈ dom(Φ) <strong>la</strong> valeur attendue <strong>de</strong> Φ à <strong>la</strong> suite <strong>de</strong> v.<br />
On se donne également <strong>la</strong> possibilité <strong>de</strong> définir <strong>de</strong>s tests spécifiant l’impossibilité <strong>de</strong> réaliser<br />
un vecteur d’évènements. Un tel test sera défini <strong>de</strong> façon analogue à <strong>la</strong> définition précé<strong>de</strong>nte en<br />
fixant s = ∅, Φ = ∅ et o = ∅. Un tel test sera ainsi <strong>de</strong> <strong>la</strong> forme t A = (A, v, ∅, ∅, ∅).<br />
Remarque : La définition <strong>de</strong> test proposée ne précise les valeurs <strong>de</strong> sortie attendues qu’après <strong>la</strong><br />
séquence d’évènements. C’est un choix. Dans d’autres contextes (protocoles <strong>de</strong> télécommunication,<br />
systèmes temps réel), on peut aussi préciser les valeurs attendues<br />
en sortie après chaque action <strong>de</strong> <strong>la</strong> séquence.<br />
Remarque : Dans les <strong>de</strong>ux définitions ci-<strong>de</strong>ssus, on suppose que les <strong>modèles</strong> testés sont déterministes.<br />
Un même scénario <strong>de</strong> test conduira donc toujours à <strong>la</strong> même valeur <strong>de</strong>s<br />
variables <strong>de</strong> sortie.<br />
On définira ensuite, <strong>pour</strong> ces automates <strong>de</strong> mo<strong>de</strong>s un ensemble <strong>de</strong> tests (un jeu <strong>de</strong> tests) T<br />
= (t i A ) i≥1 où chaque t i A est un 5-uplet (A, v i, s i , Φ i , o i ).