Couverture de condition

[English]

Contre-exemple : une couverture des conditions n'implique pas une couverture des décisions


Considérons l'extrait de code suivant :

si ( ((u=0) ou (x>5)) et ((y<6) ou (z=0)) ) alors
<instructions>
sinon
<instructions>
fin si

La table de vérité suivante regroupe l'ensemble des cas de tests envisageables pour cet extrait de code.

Cas de test n° A : (u=0) B : (x>5) C : (y<6) D : (z=0) (A ou B) (C ou D) ( (A ou B) et (C ou D) )
1 F F F F F F F
2 F F F V F V F
3 F F V F F V F
4 F F V V F V F
5 F V F F V F F
6 F V F V V V V
7 F V V F V V V
8 F V V V V V V
9 V F F F V F F
10 V F F V V V V
11 V F V F V V V
12 V F V V V V V
13 V V F F V F F
14 V V F V V V V
15 V V V F V V V
16 V V V V V V V

Dans le cadre d'une couverture des conditions, il nous suffirait (par exemple) de tester uniquement les deux combinaisons ci-dessus surlignées en jaune.

Cependant, dans ces deux cas de test, la décision finale est évaluée deux fois "vraie" mais jamais "fausse" : la couverture des décisions n'est pas effective... Il nous faudrait par exemple choisir les deux combinaisons ci-dessus surlignées en bleu pour à la fois réaliser la couverture des décisions et celle des conditions.

Revoir les différents niveaux de couverture de test

L´outil d´analyse de couverture du code Testwell CTC++ englobe toutes les catégories de couvertures de test, y compris les niveaux les plus élevés : la couverture des conditions / décisions modifiées (MC/DC) et surtout celle des conditions multiples (MCC). Il peut ainsi être utilisé pour obtenir des certifications comme par exemple DO-178B.

Memento :

Condition (ou Opérande booléen ou Sous-décision) : une formule logique insécable (atomique). On parle souvent de variable booléenne, elle est représentée par une lettre majuscule (A, B, C, etc.), peut avoir pour valeur "vrai" ou "faux", mais ne peut pas être redivisée en d´autres "sous-conditions" plus simples.

Décision : une formule logique pouvant être composée de plusieurs conditions séparées par des connecteurs logiques tels "ou", "et", "ou exclusif", etc.


last updated: 20.07.2010

© 2010 Verifysoft GmbH
CTA++, CTC++, CMT++ and CMTJava are products of Testwell Oy, Tampere (Finland)
all other trademarks of this site are the property of their respective owners.