Lai saprastu ciklomātisko sarežģītību, vispirms ļauj saprast -
Kas ir programmatūras metrika?
Mērīšana nav nekas cits kā kvantitatīva produkta / procesa atribūta lieluma / dimensijas / jaudas norāde. Programmatūras metrika tiek definēta kā kvantitatīvs rādītājs, kas raksturīgs programmatūras sistēmai attiecībā uz izmaksām, kvalitāti, lielumu un grafiku.
Piemērs-
Pasākums - kļūdu skaitsMetrika - katrai personai atrasto kļūdu skaits
Šajā apmācībā jūs uzzināsiet
- Kas ir programmatūras metrika?
- Kas ir ciklomātiskā sarežģītība?
- Plūsmas diagrammas apzīmējumi programmai:
- Kā aprēķināt ciklomātisko sarežģītību
- Ciklomatiskās sarežģītības īpašības:
- Kā šī metrika ir noderīga programmatūras testēšanai?
- Vairāk par V (G):
- Ciklomatiskās sarežģītības aprēķināšanas rīki:
- Ciklomatiskās sarežģītības izmantošana:
Ciklomatiskā sarežģītība programmatūras testēšanā
Programmatūras testēšanas cikliskā sarežģītība ir testēšanas metrika, ko izmanto programmatūras sarežģītības mērīšanai. Tas ir neatkarīgu ceļu kvantitatīvs mērījums programmatūras pirmkodā. Ciklomatisko sarežģītību var aprēķināt, izmantojot vadības plūsmas diagrammas vai attiecībā uz funkcijām, moduļiem, metodēm vai klasēm programmatūras programmā.
Neatkarīgais ceļš tiek definēts kā ceļš, kuram ir vismaz viena mala, kas iepriekš nav šķērsota nevienā citā ceļā.
Šo metriku izstrādāja Tomass Dž. Makkebs 1976. gadā, un tā pamatā ir programmas vadības plūsmas attēlojums. Vadības plūsma attēlo programmu kā grafiku, kas sastāv no mezgliem un malām.
Diagrammā mezgli attēlo apstrādes uzdevumus, bet malas - vadības plūsmu starp mezgliem.
Plūsmas diagrammas apzīmējumi programmai:
Plūsmas diagrammas apzīmējums programmai nosaka vairākus mezglus, kas savienoti caur malām. Zemāk ir plūsmas diagrammas tādiem izteikumiem kā if-else, While, līdz un normāla plūsmas secība.
Kā aprēķināt ciklomātisko sarežģītību
Matemātiskā attēlojums:
Matemātiski tas ir noteikts neatkarīgi ceļi, izmantojot diagrammas diagrammu. Programmas sarežģītību kodā var definēt, izmantojot formulu -
V (G) = E - N + 2
Kur,
E - malu skaits
N - mezglu skaits
V (G) = P + 1
Kur P = predikātu mezglu skaits (mezgls, kurā ir nosacījums)
Piemērs -
i = 0;n = 4; // N - diagrammā esošo mezglu skaitskamēr (iPlūsmas diagramma šai programmai būs
Matemātiski aprēķinot,
- V (G) = 9 - 7 + 2 = 4
- V (G) = 3 + 1 = 4 (nosacījuma mezgli ir 1,2 un 3 mezgli)
- Basis Set - programmas iespējamā izpildes ceļa kopa
- 1, 7
- 1, 2, 6, 1, 7
- 1, 2, 3, 4, 5, 2, 6, 1, 7
- 1, 2, 3, 5, 2, 6, 1, 7
Ciklomatiskās sarežģītības īpašības:
Šīs ir ciklomātiskās sarežģītības īpašības:
- V (G) ir maksimālais neatkarīgo ceļu skaits diagrammā
- V (G)> = 1
- G būs viens ceļš, ja V (G) = 1
- Samaziniet sarežģītību līdz 10
Kā šī metrika ir noderīga programmatūras testēšanai?
Bāzes ceļa pārbaude ir viena no baltās kastes tehnikām, un tā garantē, ka testēšanas laikā tiek izpildīts vismaz viens paziņojums. Tas pārbauda katru lineāri neatkarīgo ceļu caur programmu, kas nozīmē, ka testu skaits ir vienāds ar programmas ciklisko sarežģītību.
Šī metrika ir noderīga ciklomātiskās sarežģītības (M) īpašību dēļ -
- M var būt testa gadījumu skaits, lai sasniegtu filiāles pārklājumu (augšējā robeža)
- M var būt ceļu skaits caur grafikiem. (Apakšējā robeža)
Apsveriet šo piemēru -
Ja (1. nosacījums)Paziņojums 1Cits2. paziņojumsJa (2. nosacījums)Paziņojums 3CitsPaziņojums 4Ciklomātiskā sarežģītība šai programmai būs 8-7 + 2 = 3.
Tā kā sarežģītība ir aprēķināta kā 3, iepriekšminētajā piemērā ir nepieciešami trīs testa gadījumi, lai pilnībā aptvertu ceļu.
Veicamās darbības:
Lai aprēķinātu ciklomātiskās sarežģītības un testa gadījumu noformējumu, ir jāveic šādas darbības.
1. solis - grafika izveidošana ar mezgliem un malām no koda
2. solis - neatkarīgu ceļu noteikšana
3. solis - ciklomātiskās sarežģītības aprēķins
4. solis - testa lietu noformēšana
Kad pamatkopa ir izveidota, ir jāuzraksta TEST CASES, lai izpildītu visus ceļus.
Vairāk par V (G):
Ciklomatisko sarežģītību var aprēķināt manuāli, ja programma ir maza. Ja programma ir ļoti sarežģīta, ir jāizmanto automatizēti rīki, jo tas ietver vairāk plūsmas diagrammu. Balstoties uz sarežģītības skaitli, komanda var secināt par darbībām, kas jāveic, lai mērītu.
Šajā tabulā sniegts pārskats par v (G) sarežģītības skaitli un atbilstošo nozīmi:
Sarežģītības numurs Nozīme 1.-10 Strukturēts un labi uzrakstīts kods Augstas pārbaudāmības izmaksas un piepūle ir mazākas 10-20 Kompleksā koda vidēja pārbaudāmība Izmaksas un pūles ir vidējas 20-40 Ļoti sarežģīts koda zemas pārbaudāmības izmaksas un piepūle ir augstas > 40 Pavisam nav pārbaudāms Ļoti augstas izmaksas un piepūle Ciklomatiskās sarežģītības aprēķināšanas rīki:
Lietojumprogrammas sarežģītības noteikšanai ir pieejami daudzi rīki. Atsevišķām tehnoloģijām tiek izmantoti daži sarežģītības aprēķināšanas rīki. Sarežģītību var noteikt pēc lēmuma punktu skaita programmā. Lēmuma punkti ir, ja avota kodā par, katram, bet, nozvejas, gadījuma paziņojumiem.
Instrumentu piemēri ir
- OCLint - statisko kodu analizators C un saistītām valodām
- Reflektora pievienošanas koda metrika .NET mezgliem
- GMetrics - atrodiet metriku ar Java saistītās lietojumprogrammās
Ciklomatiskās sarežģītības izmantošana:
Ciklomātiskā sarežģītība var izrādīties ļoti noderīga
- Palīdz izstrādātājiem un testētājiem noteikt neatkarīgu ceļu izpildi
- Izstrādātāji var pārliecināties, ka visi ceļi ir pārbaudīti vismaz vienu reizi
- Palīdz mums vairāk koncentrēties uz neatklātajiem ceļiem
- Uzlabojiet koda pārklājumu programmatūras inženierijā
- Novērtējiet risku, kas saistīts ar lietojumprogrammu vai programmu
- Šo metrikas izmantošana cikla sākumā samazina lielāku programmas risku
Secinājums:
Cyclomatic Complexity ir programmatūras metrika, kas noder strukturētai vai baltās kastes testēšanai. To galvenokārt izmanto, lai novērtētu programmas sarežģītību. Ja lēmuma punktu ir vairāk, tad programmas sarežģītība ir lielāka. Ja programmai ir augsts sarežģītības skaitlis, kļūdu iespējamība ir augsta, palielinot apkopes un problēmu novēršanas laiku.