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.

4.3 Vocabu<strong>la</strong>ire du test 113<br />

Couverture MC/DC : (Modified Condition / Decision Coverage). Ce critère <strong>de</strong> couverture étend<br />

le critère <strong>de</strong> couverture <strong>de</strong>s conditions / décisions en introduisant l’exigence selon <strong>la</strong>quelle<br />

chaque condition doit indépendamment affecter <strong>la</strong> valeur <strong>de</strong> <strong>la</strong> décision. En d’autres termes,<br />

<strong>pour</strong> chaque condition, il faut définir <strong>de</strong>ux tests couvrant les décisions et où les valeurs <strong>de</strong>s<br />

autres conditions <strong>de</strong>meurent constantes.<br />

Couverture <strong>de</strong>s conditions multiples : il s’agit ici <strong>de</strong> tester l’ensemble <strong>de</strong>s combinaisons possibles<br />

<strong>de</strong>s valeurs <strong>de</strong>s conditions.<br />

Couverture <strong>de</strong>s chemins : Ce critère indique si chaque chemin d’exécution a été effectivement<br />

exécuté par le jeu <strong>de</strong> tests. C’est le plus complet <strong>de</strong>s critères mais couvrir 100% <strong>de</strong>s chemins<br />

est souvent inaccessible (par exemple, un co<strong>de</strong> contenant n instruction <strong>de</strong> type « if - then -<br />

else » contient potentiellement 2 n chemins d’exécution différents).<br />

Exemple : Pour comprendre <strong>la</strong> différence entre ces critères, prenons l’exemple fictif issu <strong>de</strong> [48]<br />

d’une instruction <strong>de</strong> <strong>la</strong> forme : if ((a || b) && c) { ... }. En supposant les trois variables a,<br />

b et c booléennes, il y a 8 possibilités <strong>de</strong> tests <strong>pour</strong> cette instruction. On les notera (T représentera<br />

<strong>la</strong> valeur vrai, F représentera <strong>la</strong> valeur faux) [TTT T], [TTF F], [TFT T], [FTT T], [TFF F],<br />

[FTF F], [FFT F] et [FFF F]. Alors :<br />

– <strong>la</strong> couverture <strong>de</strong>s instructions est satisfaite avec un unique test évaluant (a || b) && c) à<br />

vrai (par exemple [TTT T]) ;<br />

– <strong>la</strong> couverture <strong>de</strong>s décisions est satisfaite avec <strong>de</strong>ux tests évaluant (a || b) && c) à vrai et<br />

à faux (par exemple [TTT T] et [TTF F]) ;<br />

– <strong>la</strong> couverture <strong>de</strong>s conditions est satisfaite avec <strong>de</strong>ux tests qui diffèrent sur toutes les conditions,<br />

par exemple [TTF F] et [FFT F]. On remarquera ici que couvrir les conditions n’implique<br />

pas automatiquement <strong>la</strong> couverture <strong>de</strong>s décisions ;<br />

– <strong>la</strong> couverture <strong>de</strong>s conditions / décisions est satisfaite par <strong>de</strong>ux tests qui diffèrent sur toutes<br />

les conditions mais qui couvrent <strong>la</strong> décision (par exemple [TTT T] et [FFF F]) ;<br />

– <strong>la</strong> couverture MC/DC est satisfaite avec quatre tests. Pour chaque condition, il est nécessaire<br />

<strong>de</strong> définir <strong>de</strong>ux tests qui ne différent que par rapport à cette condition et qui couvrent <strong>la</strong><br />

décision. Par exemple, <strong>pour</strong> montrer l’indépendance <strong>de</strong> <strong>la</strong> condition a, on peut choisir les<br />

<strong>de</strong>ux tests [TFT T] et [FFT F]. Les tests peuvent servir <strong>pour</strong> montrer l’indépendance <strong>de</strong><br />

plusieurs variables. Pour b on choisira ainsi les <strong>de</strong>ux tests [FFT F] et [FTT T], <strong>pour</strong> c on<br />

choisira [TFT T] et [TFF F]. Ainsi, le jeu <strong>de</strong> tests [TFT T], [FFT F], [FTT T] et [TFF F]<br />

permet d’obtenir une couverture MC/DC <strong>de</strong> 100% ;<br />

– <strong>pour</strong> <strong>la</strong> couverture <strong>de</strong>s conditions multiples, les huit tests sont ici nécessaires ;<br />

– <strong>pour</strong> <strong>la</strong> couverture <strong>de</strong>s chemins, les huit tests sont également nécessaires.<br />

Remarque : La re<strong>la</strong>tion d’inclusion est habituellement utilisée <strong>pour</strong> comparer <strong>de</strong>ux critères <strong>de</strong><br />

couverture. Soient trois critères <strong>de</strong> couverture C 1 , C 2 et C 3 .<br />

On dit que C 1 inclut C 2 (C 2 est inclus dans C 1 ) si tous les scénarios <strong>de</strong> test qui<br />

satisfont C 1 satisfont également C 2 . Par exemple et comme l’illustre <strong>la</strong> figure 4.6,<br />

le critère <strong>de</strong> couverture <strong>de</strong>s décisions inclut le critère <strong>de</strong> couverture <strong>de</strong>s instructions.<br />

La re<strong>la</strong>tion d’inclusion est transitive (si C 1 inclut C 2 et que C 2 inclut C 3 alors C 1<br />

inclut C 3 ).

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

Saved successfully!

Ooh no, something went wrong!