Tsüklomaatiline keerukus tarkvara testimisel (näide)

Mis on McCabe'i tsüklomaatiline keerukus?

Tsüklomaatiline keerukus tarkvara testimisel on testimise mõõdik, mida kasutatakse tarkvaraprogrammi keerukuse mõõtmiseks. See on sõltumatute teede kvantitatiivne mõõt tarkvaraprogrammi lähtekoodis. Tsüklomaatilist keerukust saab arvutada juhtvoograafikute või tarkvaraprogrammi funktsioonide, moodulite, meetodite või klasside abil.

Sõltumatu tee on defineeritud kui rada, millel on vähemalt üks serv, mida pole varem ühegi teise tee puhul läbitud.

Selle mõõdiku töötas välja Thomas J. McCabe 1976. aastal ja see põhineb programmi juhtvoo esitusel. Juhtvoog kujutab programmi graafikuna, mis koosneb sõlmedest ja servadest.

Graafikus tähistavad sõlmed töötlemisülesandeid, servad aga sõlmede vahelist juhtimisvoogu.

McCabe'i tsüklomaatiline keerukus

Programmi voograafiku tähistus

Programmi voograafiku tähistus määratleb mitu servade kaudu ühendatud sõlme. Allpool on vooskeemid selliste väidete jaoks nagu if-else, While, till ja tavaline voolujada.

Programmi voograafiku tähistus

Kuidas arvutada tsüklomaatilist keerukust

Matemaatiline esitus:

Matemaatiliselt on see graafiku diagrammil kulgevate sõltumatute teede hulk. Code Programmi keerukust saab defineerida valemiga –

V(G) = E - N + 2

Kus

E – servade arv

N – sõlmede arv

V (G) = P + 1

Kus P = predikaatsõlmede arv (sõlm, mis sisaldab tingimust)

Näide -

i = 0;
n=4; //N-Number of nodes present in the graph

while (i<n-1) do
j = i + 1;

while (j<n) do

if A[i]<A[j] then
swap(A[i], A[j]);

end do;
j=j+1;

end do;

Selle programmi voograafik on

Arvutage tsüklomaatiline keerukus

Matemaatiliselt arvutades,

  • V(G) = 9–7 + 2 = 4
  • V(G) = 3 + 1 = 4 (tingimuse sõlmed on 1,2, 3 ja XNUMX sõlme)
  • Basis Set – programmi võimalike täitmistee kogum
  • 1, 7
  • 1, 2, 6, 1, 7
  • 1, 2, 3, 4, 5, 2, 6, 1, 7
  • 1, 2, 3, 5, 2, 6, 1, 7

Tsüklomaatilise keerukuse omadused

Tsüklomaatilise keerukuse omadused on järgmised:

  1. V (G) on maksimaalne sõltumatute radade arv graafikus
  2. V (G) >=1
  3. G-l on üks tee, kui V (G) = 1
  4. Vähendage keerukust 10-ni

Kuidas on see mõõdik tarkvara testimisel kasulik?

Basis Path testimine on üks valge kasti tehnikatest ja see tagab testimise ajal vähemalt ühe lause täitmise. See kontrollib iga lineaarselt sõltumatut teed läbi programmi, mis tähendab testjuhtude arvu, on samaväärne programmi tsüklomaatilise keerukusega.

See mõõdik on kasulik tsüklomaatilise keerukuse (M) omaduste tõttu –

  1. M võib olla testjuhtumite arv haru katvuse saavutamiseks (ülemine piir)
  2. M võib olla graafikuid läbivate radade arv. (Alumine piir)

Mõelge sellele näitele -

If (Condition 1)
Statement 1

Else
Statement 2

If (Condition 2)
Statement 3

Else
Statement 4

Selle programmi tsüklomaatiline keerukus on 8-7+2=3.

Kuna keerukus on arvutatud väärtusega 3, on ülaltoodud näite täielikuks teekatteks vaja kolm testjuhtumit.

Järgitavad sammud:

Tsüklomaatilise keerukuse ja testjuhtumite kavandamise arvutamiseks tuleks järgida järgmisi samme.

Samm 1 – Koodist sõlmede ja servadega graafi koostamine

Samm 2 – Sõltumatute teede tuvastamine

Samm 3 – Tsüklomaatilise keerukuse arvutamine

Samm 4 – Katsejuhtumite kavandamine

Kui põhikomplekt on moodustatud, TESTJUHTUMID tuleks kirjutada kõigi radade täitmiseks.

Veel V (G) kohta

Tsüklomaatilist keerukust saab käsitsi arvutada, kui programm on väike. Kui programm on väga keeruline, tuleb kasutada automatiseeritud tööriistu, kuna see hõlmab rohkem voograafikuid. Keerukuse arvu põhjal saab meeskond teha järeldusi meetmete kohta, mida tuleb mõõta.

Järgmine tabel annab ülevaate v (G) keerukusarvust ja vastavast tähendusest:

Keerukuse arv Tähendus
1-10 Struktureeritud ja hästi kirjutatud kood

Kõrge testitavus

Kulud ja jõupingutused on väiksemad

10-20 Keeruline Code

Keskmine testitavus

Kulud ja pingutused on keskmised

20-40 Väga keeruline Code

Madal testitavus

Kulud ja jõupingutused on suured

> 40 Pole üldse testitav

Väga kõrge kulu ja pingutus

Tsüklomaatilise keerukuse arvutamise tööriistad:

Rakenduse keerukuse määramiseks on saadaval palju tööriistu. Teatud tehnoloogiate jaoks kasutatakse keerukuse arvutamise tööriistu. Keerukust saab leida programmi otsustuspunktide arvu järgi. Otsustuspunktid on lähtekoodis olevad if, for-each, while, do, catch, case laused.

Tööriistade näited on

  • OCLint – C- ja seotud keelte staatiline koodianalüsaator
  • Helkuri lisamine – Code .NET-i assemblerite mõõdikud
  • GMetrics - Otsige mõõdikuid Java seotud rakendused

Tsüklomaatilise keerukuse kasutusalad:

Tsüklomaatiline keerukus võib osutuda väga kasulikuks

  • Aitab arendajatel ja testijatel määrata sõltumatu tee täitmist
  • Arendajad võivad kinnitada, et kõiki teid on vähemalt korra testitud
  • Aitab meil rohkem keskenduda katmata radadele
  • Parandage koodi katvust Tarkvaraarendus
  • Hinnake rakenduse või programmiga seotud riske
  • Nende mõõdikute kasutamine tsükli alguses vähendab programmi suuremat riski

Järeldus

Cyclomatic Complexity on tarkvara mõõdik, mis on kasulik struktureeritud või Valge Box Testimine. Seda kasutatakse peamiselt programmi keerukuse hindamiseks. Kui otsustuspunkte on rohkem, siis on ka programmi keerukus suurem. Kui programmi keerukusarv on kõrge, on vea tõenäosus kõrge, kui hoolduseks ja veaotsinguks kulub rohkem aega.

Võta see postitus kokku järgmiselt: