2010-05-17 11 views
4

Lorsque vous utilisez la méthode de test de la boîte blanche appelée Couverture de condition multiple, prenons-nous toutes les instructions conditionnelles ou seulement celles qui ont plusieurs conditions? Maintenant peut-être les indices dans le nom mais je ne suis pas sûr.Tests de couverture de conditions multiples

Donc, si j'ai la méthode suivante

void someMethod() 
    { 

     if(a && b && (c || (d && e))) //Conditional A 
     { 

     } 

     if(z && q) // Conditional B 
     { 
     } 

    } 

-je générer la table de vérité pour juste « conditionnelle A », ou dois-je faire également sous condition B?

Merci,

+0

Ressemble plus le code exécuté par condition A et que par condition B doivent être différentes méthodes qui font tester indépendamment – CaffGeek

Répondre

1

je pourrais être absent quelque chose ici, mais la façon dont vous avez écrit le code dans votre question, les conditions A et B sont complètement indépendants les uns des autres. Vous ne pourrez donc pas couvrir tout le code sauf si vous testez les deux conditions.

+0

Yep - ce ne sera pas. Mais c'est plutôt le terme multip [le-condition-coverage auquel je fais référence - spécifiquement le terme s'applique uniquement à A ou B –

+0

Ma compréhension de la couverture de condition multiple est que toutes les combinaisons de conditions à l'intérieur de chaque décision sont testées, ce qui implique que vous en avez besoin chaque fois qu'il y a deux ou plusieurs valeurs testées. Cela signifie que la condition B serait admissible dans mon livre. –

1

J'ai trouvé ce qui suit sur Couverture de conditions multiples. Cela semblerait indiquer que la couverture de conditions multiples, comme son nom l'indique, ne s'applique qu'aux conditions avec plusieurs énoncés.

Donc, pour le conditionnel suivant:

if ((a>0)&&(b<=4)&&(c>0)) 

Nous créons les éléments suivants

Test Case a > 0 b <= 4 c > 0 
MCC1  F  F   F 
MCC2  F  F   T 
MCC3  F  T   F 
MCC4  F  T   T 
MCC5  T  F   F 
MCC6  T  F   T 
MCC7  T  T   F 
MCC8  T  T   T