Je trouve le paragraphe suivant en ce qui concerne la complexité cyclomatique on Wikipedia:complexité cyclomatique = 1 + déclarations #if?
On peut montrer que la complexité cyclomatique de tout programme structuré avec un seul point d'entrée et un point de sortie est égal au nombre de points de décision (c.-à- "si" des déclarations ou des boucles conditionnelles) contenues dans ce programme plus un.
Cela impliquerait une complexité cyclomatique de 3 pour deux imbriqué arbitraires si des déclarations:
if (a)
{
if (b)
{
foo();
}
else
{
bar();
}
}
else
{
baz();
}
Depuis exactement l'une des trois fonctions va être appelé, mon tube digestif est d'accord avec 3.
Cependant, deux déclarations arbitraires si peut également être écrit en séquence au lieu de les nicher:
if (a)
{
foo();
}
else
{
bar();
}
if (b)
{
baz();
}
else
{
qux();
}
Maintenant, il y a quatre chemins à travers le code:
- foo, baz
- foo, qux
- bar, baz
- bar, qux
Si pas la complexité cyclomatique de cette fragment donc être 4 au lieu de 3? Suis-je en train de mal comprendre le paragraphe cité?
Cet exemple exact est discuté dans l'article que vous avez lié: http://en.wikipedia.org/wiki/Complexity_Cyclomatic#Implications_for_software_testing –