Exemple de couverture des conditions multiples (Multicondition coverage - Multiple condition coverage - MCC)Exemple simpleConsidérons l'extrait de code suivant : if ( (A || B) && C ) où A, B et C représente des expressions booléennes atomiques (i.e. non redivisibles en d'autres sous-expressions booléennes). Pour que les critères de la couverture des conditions multiples soient vérifiés sur cet exemple, il faut que chaque combinaison de valeurs pour A, B et C ait été testée au moins une fois. Ainsi, dans notre exemple, il nous faut 23=8 tests aboutissants aux évaluations respectives de A, B et C pour valider la couverture des conditions multiples :
Cependant, Testwell CTC++ utilisé pour la couverture des conditions multiples (option d'instrumentation "-i m") présentera les résultats des tests de la manière suivante :
Par exemple, pour le 1er cas, si A est "true", le système ne calculera pas la valeur de B puisque de toute façon (A ou B) sera "true". Ceci veut dire en fait que les 1er et 2e cas de la 1ère liste seront évalués de la même manière par le système et que Testwell CTC++ suivra cette logique dans la présentation des résultats. Exemple plus conséquentRemplaçons la condition ( (A || B) & C ) Une couverture de test intégrale consisterait à construire la table de vérité suivante et tester chaque cas :
Et dans le cadre d'une couverture des conditions multiples, il nous faudrait tester chaque combinaisons, donc les 9 possibles ci-dessus surlignées en jaune. Revoir les différents niveaux de couverture de test 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 "true" ou "false", 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. 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. last updated: 28.07.2010 © 2010 Verifysoft Technology GmbH |