Pentru a înțelege complexitatea ciclomatică, mai întâi să înțelegem -
Ce este Software Metric?
Măsurarea nu este altceva decât o indicație cantitativă a dimensiunii / dimensiunii / capacității unui atribut al unui produs / proces. Valoarea software este definită ca o măsură cantitativă a unui atribut pe care un sistem software îl deține în ceea ce privește costul, calitatea, dimensiunea și programul.
Exemplu-
Măsură - Nr. De eroriValori - numărul de erori găsite per persoană
În acest tutorial, veți învăța-
- Ce este Software Metric?
- Ce este complexitatea ciclomatică?
- Notarea graficului de flux pentru un program:
- Cum se calculează complexitatea ciclomatică
- Proprietățile complexității ciclomatice:
- Cum este utilă această valoare pentru testarea software-ului?
- Mai multe despre V (G):
- Instrumente pentru calculul complexității ciclomatice:
- Utilizări ale complexității ciclomatice:
Complexitatea ciclomatică în testarea software-ului
Complexitatea ciclomatică în testarea software-ului este o metrică de testare utilizată pentru măsurarea complexității unui program software. Este o măsură cantitativă a căilor independente din codul sursă al unui program software. Complexitatea ciclomatică poate fi calculată utilizând grafice de flux de control sau cu privire la funcții, module, metode sau clase dintr-un program software.
Calea independentă este definită ca o cale care are cel puțin o margine care nu a fost străbătută înainte în alte căi.
Această valoare a fost dezvoltată de Thomas J. McCabe în 1976 și se bazează pe o reprezentare a fluxului de control al programului. Fluxul de control descrie un program ca un grafic care constă din noduri și muchii.
În grafic, nodurile reprezintă sarcini de procesare, în timp ce marginile reprezintă fluxul de control între noduri.
Notarea graficului de flux pentru un program:
Notarea Flow Graph pentru un program definește mai multe noduri conectate prin margini. Mai jos sunt diagrame de flux pentru afirmații precum if-else, While, until și secvența normală de flux.
Cum se calculează complexitatea ciclomatică
Reprezentare matematică:
Matematic, este setat de căi independente prin diagrama grafică. Complexitatea codului programului poate fi definită folosind formula -
V (G) = E - N + 2
Unde,
E - Numărul muchiilor
N - Numărul de noduri
V (G) = P + 1
Unde P = Numărul de noduri predicate (nod care conține condiție)
Exemplu -
i = 0;n = 4; // N-Numărul de noduri prezente în graficîn timp ce (iDiagrama de flux pentru acest program va fi
Calcul matematic,
- V (G) = 9 - 7 + 2 = 4
- V (G) = 3 + 1 = 4 (Starea nodurilor sunt 1,2 și 3 noduri)
- Set de bază - Un set de posibile căi de execuție ale unui program
- 1, 7
- 1, 2, 6, 1, 7
- 1, 2, 3, 4, 5, 2, 6, 1, 7
- 1, 2, 3, 5, 2, 6, 1, 7
Proprietățile complexității ciclomatice:
Următoarele sunt proprietățile complexității ciclomatice:
- V (G) este numărul maxim de căi independente din grafic
- V (G)> = 1
- G va avea o cale dacă V (G) = 1
- Minimizați complexitatea la 10
Cum este utilă această valoare pentru testarea software-ului?
Testarea bazei căii este una dintre tehnicile White Box și garantează executarea a cel puțin o declarație în timpul testării. Verifică fiecare cale liniar independentă prin program, ceea ce înseamnă că numărul de cazuri de testare va fi echivalent cu complexitatea ciclomatică a programului.
Această valoare este utilă datorită proprietăților complexității ciclomatice (M) -
- M poate fi numărul de cazuri de testare pentru a realiza acoperirea sucursalei (Upper Bound)
- M poate fi numărul de căi prin grafice. (Limita inferioară)
Luați în considerare acest exemplu -
Dacă (condiția 1)Declarația 1AltfelDeclarația 2Dacă (condiția 2)Declarația 3AltfelDeclarația 4Complexitatea ciclomatică pentru acest program va fi 8-7 + 2 = 3.
Deoarece complexitatea a fost calculată ca 3, sunt necesare trei cazuri de testare pentru acoperirea completă a căii pentru exemplul de mai sus.
Pașii care trebuie urmați:
Următorii pași ar trebui urmați pentru calculul complexității ciclomatice și proiectarea cazurilor de testare.
Pasul 1 - Construirea graficului cu noduri și margini din cod
Pasul 2 - Identificarea căilor independente
Pasul 3 - Calculul complexității ciclomatice
Pasul 4 - Proiectarea cazurilor de testare
Odată ce setul de bază este format, TEST CASES ar trebui să fie scrise pentru a executa toate căile.
Mai multe despre V (G):
Complexitatea ciclomatică poate fi calculată manual dacă programul este mic. Trebuie utilizate instrumente automate dacă programul este foarte complex deoarece acest lucru implică mai multe grafice de flux. Pe baza numărului de complexitate, echipa poate trage concluzii asupra acțiunilor care trebuie luate pentru măsură.
Următorul tabel oferă o prezentare generală a numărului de complexitate și a semnificației corespunzătoare a lui v (G):
Numărul complexității Sens 1-10 Cod structurat și bine scris Costul și efortul ridicat al testabilității sunt mai mici 10-20 Cod complex Complex Testabilitate Costul și efortul sunt medii 20-40 Codul foarte complex al costului redus al testabilității și al efortului sunt mari > 40 Deloc testabil Cost și efort foarte ridicat Instrumente pentru calculul complexității ciclomatice:
Sunt disponibile multe instrumente pentru a determina complexitatea aplicației. Unele instrumente de calcul al complexității sunt utilizate pentru tehnologii specifice. Complexitatea poate fi găsită prin numărul de puncte de decizie dintr-un program. Punctele de decizie sunt dacă, for, for-each, while, do, catch, case statement într-un cod sursă.
Exemple de instrumente sunt
- OCLint - Analizor de cod static pentru C și limbaje conexe
- Reflector Add In-Code metrics pentru ansambluri .NET
- GMetrics - Găsiți valori în aplicațiile legate de Java
Utilizări ale complexității ciclomatice:
Complexitatea ciclomatică se poate dovedi foarte utilă
- Ajută dezvoltatorii și testerii să determine execuțiile de căi independente
- Dezvoltatorii se pot asigura că toate căile au fost testate cel puțin o dată
- Ne ajută să ne concentrăm mai mult pe căile neacoperite
- Îmbunătățiți acoperirea codului în ingineria software
- Evaluează riscul asociat cu aplicația sau programul
- Utilizarea acestor valori la începutul ciclului reduce riscul mai mare al programului
Concluzie:
Complexitatea ciclomatică este o metodă software utilă pentru testarea structurată sau White Box. Este utilizat în principal pentru a evalua complexitatea unui program. Dacă punctele de decizie sunt mai mari, atunci complexitatea programului este mai mare. Dacă programul are un număr mare de complexitate, atunci probabilitatea de eroare este mare, cu timpul crescut pentru întreținere și depanare.