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.
110 Chapitre 4. Processus <strong>pour</strong> <strong>la</strong> <strong>validation</strong> <strong>de</strong> modèle AltaRica<br />
4.3.3 Test boîte noire - Test boîte b<strong>la</strong>nche<br />
4.3.3.1 Test boîte noire<br />
L’approche <strong>de</strong> test <strong>de</strong> type « boîte noire » (aussi nommé test fonctionnel) est une <strong>de</strong>s <strong>de</strong>ux<br />
principales approches <strong>de</strong> conception <strong>de</strong>s tests appliqués aux logiciels <strong>pour</strong> vérifier <strong>la</strong> conformité<br />
d’un logiciel par rapport à sa spécification. On cherche ainsi à détecter les différents cas où le<br />
comportement du modèle est différent <strong>de</strong> celui attendu, i.e. dans quelles circonstances le comportement<br />
du modèle est différent <strong>de</strong> celui prédit par sa spécification ?<br />
En suivant cette approche, les différents cas <strong>de</strong> test sont construits à partir <strong>de</strong> l’examen <strong>de</strong><br />
<strong>la</strong> spécification, sans se référer à <strong>la</strong> structure du co<strong>de</strong> testé. La spécification permet <strong>de</strong> déterminer<br />
à <strong>la</strong> fois les cas importants à considérer et les valeurs attendues dans les cas sélectionnés.<br />
Une préoccupation importante est alors celle <strong>de</strong> <strong>la</strong> complétu<strong>de</strong> <strong>de</strong>s cas <strong>de</strong> test considérés<br />
par rapport à <strong>la</strong> spécification. Dans l’idéal, un test exhaustif <strong>de</strong> toutes les entrées du modèle<br />
permettrait <strong>de</strong> s’assurer du bon comportement <strong>de</strong> celui-ci, quelles que soient les circonstances.<br />
Bien souvent cependant et à cause <strong>de</strong> <strong>la</strong> complexité <strong>de</strong>s <strong>modèles</strong> à éprouver, une telle exhaustivité<br />
sera impossible à satisfaire. Pour répondre à cette question, on <strong>pour</strong>ra établir <strong>de</strong>s critères <strong>de</strong><br />
couverture <strong>de</strong> <strong>la</strong> spécification utilisée <strong>pour</strong> construire les tests.<br />
La notion peut être facilement transposée aux tests <strong>de</strong> modèle si <strong>la</strong> spécification du modèle<br />
est connue. L’approche consiste alors à considérer le modèle comme une boîte noire dont on ne<br />
considère pas <strong>la</strong> structure interne : on soumet <strong>de</strong>s entrées choisies à partir <strong>de</strong> <strong>la</strong> spécification du<br />
modèle, on regar<strong>de</strong> <strong>la</strong> sortie (on ne sait pas comment celle-ci est obtenue) et <strong>la</strong> spécification du<br />
modèle est à nouveau utilisée <strong>pour</strong> déci<strong>de</strong>r <strong>de</strong> l’acceptabilité <strong>de</strong> <strong>la</strong> sortie obtenue.<br />
4.3.3.2 Test boîte b<strong>la</strong>nche<br />
L’autre approche <strong>de</strong> conception <strong>de</strong>s tests est le test « boîte b<strong>la</strong>nche » ou test structurel.<br />
Dans ce cas, on suppose <strong>la</strong> structure interne du modèle connue et <strong>la</strong> sélection <strong>de</strong>s jeux <strong>de</strong> tests<br />
tient compte <strong>de</strong> <strong>la</strong> logique implémentée dans le modèle.<br />
Cette approche permet, entre autre, d’affiner <strong>la</strong> définition <strong>de</strong>s tests fonctionnels en leur<br />
permettant d’explorer <strong>de</strong>s parties re<strong>la</strong>tivement distinctes du programme/modèle évalué. La complétu<strong>de</strong><br />
<strong>de</strong>s parties du programme/modèle exercées par les tests peut alors être mesurée à l’ai<strong>de</strong><br />
<strong>de</strong> critère <strong>de</strong> couverture structurelle <strong>de</strong> l’implémentation.<br />
Dans notre cas, le but sera, par exemple, <strong>de</strong> passer par tous les chemins du modèle et permettra<br />
par exemple, d’exécuter <strong>de</strong>s scénarios improbables voire non souhaités (scénarios auxquels<br />
potentiellement le programmeur ou l’utilisateur n’avait pas pensé). On parlera alors <strong>de</strong> critère <strong>de</strong><br />
couverture du modèle (Cf. section 4.3.4).<br />
4.3.3.3 Exemple<br />
En pratique, il est important <strong>de</strong> combiner les <strong>de</strong>ux types d’approche <strong>de</strong> conception <strong>de</strong>s<br />
tests comme le montre l’exemple ci-<strong>de</strong>ssous. Imaginons donc que l’on souhaite implémenter un<br />
programme calcu<strong>la</strong>nt <strong>la</strong> somme <strong>de</strong> <strong>de</strong>ux entiers modulo 10000 et que nous l’implémentions <strong>de</strong> <strong>la</strong><br />
façon, fausse, suivante :