ho trovato il seguente paragrafo relativo ciclomatica complessità on Wikipedia:complessità ciclomatica = 1 + affermazioni #if?
Si può dimostrare che la complessità ciclomatica di qualsiasi programma strutturato con un solo punto di ingresso e un punto di uscita è uguale al numero di punti di decisione (vale a dire, "se" dichiarazioni o cicli condizionali) contenuti in quel programma più uno.
Questo implicherebbe una complessità ciclomatica di 3 per due arbitraria istruzioni IF nidificate:
if (a)
{
if (b)
{
foo();
}
else
{
bar();
}
}
else
{
baz();
}
Dal esattamente una delle tre funzioni sta per essere chiamato, il mio intestino concorda con 3.
Tuttavia, due arbitraria se dichiarazioni potrebbero anche essere scritti in sequenza anziché nidificandoli:
if (a)
{
foo();
}
else
{
bar();
}
if (b)
{
baz();
}
else
{
qux();
}
Ora ci sono quattro percorsi attraverso il codice:
- foo, baz
- foo, qux
- bar, baz
- bar, qux
Non dovrebbe la complessità ciclomatica di questo il frammento quindi è 4 anziché 3?
Sto fraintendendo il paragrafo citato?
Questo esatto esempio è discusso nell'articolo che hai collegato: http://en.wikipedia.org/wiki/Cyclomatic_complexity#Implications_for_software_testing –