• Aucun résultat trouvé

Augmentation du niveau de confiance

5.1 Construction de composants de transformation de modèles de

5.1.3 Augmentation du niveau de confiance

La confrontation entre ces trois sommets conduit à l’amélioration de chacune d’elle. L’amélioration de chaque sommet est effectuée dans un processus itératif qui fournit comme résultat un composant de confiance ainsi qu’une mesure de la cohérence globale.

Le processus pour construire la confiance dans un composant de transformation de modèles se compose de trois étapes, dont l’illustration de l’application nominale est présentée figure 5-4. Le niveau de confiance dans un sommet est représenté par un cercle de taille d’autant plus grande que le niveau de confiance est élevé. Le processus commence avec un composant initial qui comporte déjà ces trois sommets. Le but est alors d’améliorer chaque sommet et de vérifier

la cohérence globale entre chaque sommet. Sur le côté droit de la figure, l’évolution de la confiance que nous avons dans chaque sommet de la vue en triangle est mise en évidence.

Etape 3 Impl Contrats Tests Etape 2 Etape 1 Impl Contrats Tests Impl Contrats Tests Impl Contrats Tests

Figure 5-4 – Processus nominal de construction d’un composant de transformation de modèles de confiance

Étape 1- amélioration des cas de test. Le but est d’améliorer l’efficacité de l’ensemble de

cas de test en utilisant un critère de test approprié. Dans cette section, nous suggérons d’évaluer cette qualité en utilisant l’analyse de mutation. Nous exploitons l’adaptation que nous avons réalisée au chapitre 3. Elle va produire un ratio qui permet d’estimer la force de détection des erreurs de l’ensemble de modèles de test. Il s’agit du score de mutation que nous notons Qmt.

s

équivalent

non

mutants

de

nombre

tués

mutants

de

nombre

mutation

de

Score

Q

mt

=

=

Si ce ratio est insuffisant, cela signifie que l’ensemble de modèles de test doit être amélioré par la création de nouveaux modèles. Il s’agit d’appliquer le processus de l’analyse de mutation tel que nous l’avons proposé dans la section 3.3. L’étape 1 se termine quand la qualité des modèles de test atteint un niveau satisfaisant qui est fixé par un score de mutation à atteindre. Le niveau de satisfaction est fixé par le testeur en fonction du niveau de criticité de l’utilisation du composant.

Étape 2- Test et amélioration de l’implantation. Dans cette étape, l’implantation de la

transformation de modèles est testée grâce à l’ensemble optimisé de cas de test puis corrigée. Les cas de test mis au point à l’étape précédente ont un score de mutation élevé et sont donc capable de détecter des erreurs dans les programmes de transformations de modèles. Ces cas de test sont exécutés et si des erreurs sont détectées, elles doivent être diagnostiquées et corrigées. A la fin de cette seconde étape, la confiance du sommet implantation est satisfaisante puisqu’elle a été validée par des cas de test efficaces.

Étape 3- Amélioration des contrats. Le but est d’embarquer des contrats efficaces

[Le Traon'06] et complets, en considérant chacun comme une partie exécutable de la spécification. A cette étape, le composant possède une implantation sûre et des cas de test efficaces. Nous utilisons à nouveau l’analyse de mutation pour estimer la complétude des contrats en termes de taux de détection d’erreur (c'est-à-dire la proportion de fautes actuellement détectée par les contrats connaissant les mutants pour lesquels les cas de test produisaient des modèles de sortie incorrectes). Cela permet d’estimer la complétude des contrats comme oracles embarqués.

Par rapport à la première étape, ici la force de détection des erreurs par l’ensemble de modèles de test est connue avec le score de mutation Qmt. En utilisant les contrats comme oracles embarqués, la nouvelle proportion d’erreurs détectées (%erreursDétectées) est calculée.

117 Construction de composants de transformation de modèles de confiance

La qualité des contrats est contrôlée en fonction de Qmt. La qualité estimée Qcont des contrats est définie par : mt cont

Q

ectées

erreursDét

Q

=%

Avec Qmt > 0 car cette étape 2 suit l’étape 1 qui a forcément permis d’augmenter Qmt.

Cette mesure peut-être vue comme une estimation de la complétude des contrats pour servir à la définition d’oracle pour les cas de test. Si Qcont est égale à 0, aucune erreur n’a été détectée par les contrats, et si Qcont est égale à 1, les contrats sont capables de détecter toutes les erreurs injectées. Après l’étape 3, les contrats sont améliorés et atteignent un niveau de qualité satisfaisant. A la fin du processus, les contrats sont embarqués dans le composant de transformation de modèles qui devient « vigilant ». Ainsi l’emploi du composant permet d’en détecter les états erronés dynamiquement.

Itération du processus. Ces trois étapes se succèdent dans un processus itératif. Le

déroulement illustré dans la figure 5-4 illustre une séquence nominale d’une seule itération. En pratique, les étapes peuvent être répétées les unes après les autres. La construction du composant se fait en confrontant les sommets du triangle, donc l’amélioration d’un sommet influence la cohérence globale du composant. Ainsi, la correction de l’implantation conduit à la création d’un nouvel ensemble de mutants. Les modèles de test puis les contrats doivent donc être qualifiés de nouveau. De même, l’amélioration des contrats conduit à tester à nouveau l’implémentation puisque ces contrats peuvent servir à former l’oracle de n’importe quel cas de test. Finalement, le processus suit le déroulement décrit dans le diagramme d’état de la figure 5-5. Ce processus converge quand les cas de test ne détectent plus d’erreur imposant de corriger l’implantation.

Quand le processus est terminé, nous obtenons un composant de transformation de modèles amélioré avec une estimation de son niveau de confiance.

implantation correcte sans changement

étape

3

contrats améliorées contrats qualifiés sans amélioration

étape

2

étape

1

cas de test qualifiés

implantation corrigée

5.2 Développements pour la définition, la qualification et