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.
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.
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
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:
- V (G) on maksimaalne sõltumatute radade arv graafikus
- V (G) >=1
- G-l on üks tee, kui V (G) = 1
- 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 –
- M võib olla testjuhtumite arv haru katvuse saavutamiseks (ülemine piir)
- 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.


.png)
.png)