23.11.2014 Views

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

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

118 Chapitre 4. Processus <strong>pour</strong> <strong>la</strong> <strong>validation</strong> <strong>de</strong> modèle AltaRica<br />

spécification, elle ne remettent pas en causes l’utilisation et l’application <strong>de</strong> critère <strong>de</strong> couverture<br />

sur le modèle AltaRica obtenu.<br />

4.4.2 Génération <strong>de</strong> cas <strong>de</strong> test <strong>pour</strong> <strong>la</strong> <strong>validation</strong> <strong>de</strong> l’intégration<br />

La <strong>validation</strong> <strong>de</strong> l’intégration est <strong>la</strong> phase <strong>de</strong> <strong>validation</strong> dans <strong>la</strong>quelle les composants unitaires<br />

sont connectés (définition 4.5) et testés en tant qu’ensemble <strong>de</strong> composants. Brièvement,<br />

on rappelle que connecter différents composants entre eux peut être vu comme un ajout d’un<br />

certain nombre <strong>de</strong> contraintes dont il faudra tenir compte. Ainsi, après intégration, les possibilités<br />

d’évolutions <strong>de</strong>s composants sont réduites (par rapport à leurs évolutions possibles lorsqu’ils sont<br />

considérés seuls) et avec elles le nombre <strong>de</strong> comportements possibles du composant. Sans développer<br />

ici un processus <strong>pour</strong> cette phase <strong>de</strong> <strong>validation</strong>, nous nous permettons cependant quelques<br />

mots à son sujet.<br />

F out<br />

A<br />

Nous prendrons l’exemple <strong>de</strong> <strong>de</strong>ux composants (<strong>de</strong>ux automates <strong>de</strong> mo<strong>de</strong>) A (FA<br />

in = {i A},<br />

= {o A}) et B (FB<br />

in = {i B}, FB<br />

out = {o B}) connectés <strong>de</strong> telle sorte que <strong>la</strong> sortie o A <strong>de</strong> A<br />

soit reliée à l’entrée i B <strong>de</strong> B. On nomme C (noté C = A ↔ B) l’automate <strong>de</strong> mo<strong>de</strong> résultat <strong>de</strong><br />

<strong>la</strong> connexion <strong>de</strong> A et B : FC<br />

in = {i A}, FC<br />

out = {o B}. On suppose <strong>la</strong> <strong>validation</strong> unitaire <strong>de</strong> A et<br />

B réalisée et on souhaite tester le lien entre les <strong>de</strong>ux composants.<br />

Idée N°1 : Processus <strong>de</strong> <strong>validation</strong> unitaire sur A ↔ B<br />

Cette première approche est fondée sur le fait que l’automate obtenu par composition <strong>de</strong><br />

<strong>de</strong>ux automates <strong>de</strong> mo<strong>de</strong> est un automate <strong>de</strong> mo<strong>de</strong> (section 2.3.2). Ainsi, <strong>pour</strong> vali<strong>de</strong>r l’intégration<br />

<strong>de</strong>s composants A et B, on vali<strong>de</strong>ra unitairement l’automate A ↔ B.<br />

Cette approche, bien qu’ayant l’avantage <strong>de</strong> ne pas introduire <strong>de</strong> notions supplémentaires,<br />

sera souvent difficilement applicable dans un cas réel. En particulier, l’automate A ↔ B <strong>de</strong>vient<br />

vite <strong>de</strong> taille importante et possé<strong>de</strong>r une spécification d’un tel automate n’est pas chose aisée. La<br />

génération <strong>de</strong> tests <strong>pour</strong>ra souvent être compliquée à obtenir.<br />

Idée N°2 : Faire du test fonctionnel<br />

Le principe général proposé ici sera « d’oublier » le comportement interne au profit d’une<br />

approche boîte noire (i.e. d’une approche fonctionnelle). Ce qui nous intéresse n’est alors pas<br />

d’activer toutes les portions du modèle mais seulement les différentes interfaces que le composant<br />

possè<strong>de</strong> avec son environnement (on suppose que l’activation <strong>de</strong>s parties internes a été obtenue<br />

grâce à <strong>la</strong> <strong>validation</strong> unitaire).<br />

Pour ce<strong>la</strong>, nous souhaitons étudier <strong>la</strong> génération <strong>de</strong> scénarios <strong>de</strong> test <strong>pour</strong> l’automate A ↔ B<br />

à partir <strong>de</strong>s tests générés sur A et <strong>de</strong> ceux générés sur B (lors <strong>de</strong> <strong>la</strong> phase <strong>de</strong> <strong>validation</strong> unitaire<br />

<strong>de</strong> A et B). Pour rappel et en commençant par considérer le composant A, un test est composé :<br />

– d’un vecteur d’évènement v = (e i ) i≥0 où chaque e i est soit un évènement <strong>de</strong> A, soit une<br />

déviation <strong>de</strong> <strong>la</strong> valeur d’entrée i A ;<br />

– s l’évaluation attendue <strong>de</strong>s variables d’état <strong>de</strong> A ;<br />

– Φ A <strong>la</strong> variable <strong>de</strong> sortie <strong>de</strong> A ;<br />

– ω A <strong>la</strong> valeur attendue <strong>de</strong> Φ A .<br />

En ne s’intéressant pas au comportement interne <strong>de</strong> A, on obtient, <strong>pour</strong> <strong>la</strong> variable <strong>de</strong> sortie<br />

Φ A , un ensemble <strong>de</strong> couples {scénario, valeur attendue} où les scénarios sont ceux obtenus <strong>de</strong> <strong>la</strong><br />

phase <strong>de</strong> génération <strong>de</strong> tests <strong>pour</strong> <strong>la</strong> <strong>validation</strong> unitaire (section 4.4.1). v Ai désigne le ième test<br />

unitaire <strong>de</strong> l’automate <strong>de</strong> mo<strong>de</strong> A.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!