Complexitatea ciclomatică este o metrică software care oferă o estimare cantitativă a complexității logice a unui program. În ceea ce privește testarea căii de bază, complexitatea ciclului determină:
q numărul de căi independente din setul de bază al programului;
q o estimare superioară a numărului de teste, care garantează o singură execuție a tuturor operatorilor.
Independent este orice cale care introduce o nouă declarație de procesare sau o nouă condiție. În ceea ce privește un grafic de flux, o cale independentă trebuie să conțină un arc care nu aparține unor căi definite anterior.
Calea începe de la nodul de început și se termină la nodul final al graficului. Căile independente se formează în ordine de la cel mai scurt la cel mai lung.
Listați căile independente pentru graficul de flux din Exemplul 1:
Calea 4: 1-2-4-6-7a-7b-1-8.
Rețineți că fiecare nouă cale include un nou arc.
Toate căile independente ale graficului formează un set de bază.
Proprietățile setului de bază:
1) teste pentru a asigura verificarea, garanție:
q executarea unică a fiecărui operator;
q executarea fiecărei condiții pe ramura adevărată și pe ramura falsă;
2) puterea setului de bază este egală cu complexitatea ciclomatică a graficului de curgere.
Valoarea celei de-a doua proprietăți nu poate fi supraestimată - dă o estimare a priori a numărului de căi independente pe care are sens să le căutați în grafic.
Complexitatea ciclomatică se calculează în trei moduri:
1) complexitatea ciclomatică este egală cu numărul de regiuni ale graficului de curgere;
2) complexitatea ciclomatică este determinată de formula
unde E este numărul de arce, N este numărul de noduri ale graficului de curgere;
3) complexitatea ciclomatică este formată de expresia V (G) = p + 1, unde p este numărul de noduri predicate din graficul de curgere G.
Calculăm complexitatea ciclului graficului din Exemplul 1 în fiecare din cele trei moduri:
1) graficul de curgere are 4 regiuni;
2) V (G) = 11 arce - 9 noduri + 2 = 4;
3) V (G) = 3 noduri predicate + 1 = 4.
Astfel, complexitatea ciclomatică a graficului de curgere din Exemplul 1 este de patru.