Mccabe ciklikus komplexitása: Számítás folyamatábrával (példa)

Tartalomjegyzék:

Anonim

A ciklikus komplexitás megértéséhez először meg kell értenünk -

Mi az a szoftveres metrika?

A mérés nem más, mint a termék / folyamat tulajdonságainak méretének / méretének / kapacitásának mennyiségi megjelenítése. A szoftver metrikája egy olyan attribútum kvantitatív mérőszáma, amelyet egy szoftverrendszer a költség, a minőség, a méret és az ütemezés tekintetében birtokol.

Példa-

Mérés - hibák számaMutatók - Személyenként talált hibák száma

Ebben az oktatóanyagban megtanulja-

  • Mi az a szoftveres metrika?
  • Mi a ciklikus komplexitás?
  • Folyamatdiagram jelölése egy programhoz:
  • Hogyan számoljuk ki a ciklikus komplexitást
  • A ciklikus komplexitás tulajdonságai:
  • Mennyire hasznos ez a mutató a szoftver teszteléséhez?
  • További információ a V (G) -ről:
  • Eszközök a ciklikus komplexitás kiszámításához:
  • A ciklikus komplexitás felhasználása:

Ciklikus komplexitás a szoftver tesztelésében

A szoftveres tesztelés ciklikus komplexitása egy tesztelési mutató, amelyet egy szoftver program komplexitásának mérésére használnak. Ez egy független útvonalak kvantitatív mértéke a szoftver forráskódjában. A ciklikus komplexitás kiszámítható vezérlő folyamatábrák segítségével, vagy egy szoftver program funkcióinak, moduljainak, módszereinek vagy osztályainak vonatkozásában.

A független útvonal olyan út, amely legalább egy éllel rendelkezik, amelyet még soha nem tettek meg más utakon.

Ezt a mutatót Thomas J. McCabe dolgozta ki 1976-ban, és a program vezérlési folyamatábrázolásán alapul. A vezérlő folyamat egy programot grafikonként ábrázol, amely csomópontokból és élekből áll.

A grafikonon a csomópontok a feldolgozási feladatokat, míg az élek a csomópontok közötti vezérlő áramlást jelentik.

Folyamatdiagram jelölése egy programhoz:

A program folyamatábrájának jelölése több, az éleken összekapcsolt csomópontot határoz meg. Az alábbiakban olyan utasítások folyamatábrái láthatók, mint az if-else, a While, amíg és a folyamat normális sorrendje.

Hogyan számoljuk ki a ciklikus komplexitást

Matematikai ábrázolás:

Matematikailag független utakat állít be a gráfdiagramon keresztül. A program bonyolultsága a következő képlettel határozható meg:

V (G) = E - N + 2

Hol,

E - élek száma

N - Csomópontok száma

V (G) = P + 1

Ahol P = predikátum csomópontok száma (feltételet tartalmazó csomópont)

Példa -

i = 0;n = 4; // N-A grafikonon jelen lévő csomópontok számamíg (i 

A folyamat folyamatábrája a következő lesz:

Matematikai számítás,

  • V (G) = 9-7 + 2 = 4
  • V (G) = 3 + 1 = 4 (a feltétel csomópontjai 1,2 és 3 csomópontok)
  • Basis Set - A program lehetséges végrehajtási útvonalának halmaza
  • 1, 7
  • 1, 2, 6, 1, 7
  • 1, 2, 3, 4, 5, 2, 6, 1, 7
  • 1, 2, 3, 5, 2, 6, 1, 7

A ciklikus komplexitás tulajdonságai:

A ciklikus komplexitás tulajdonságai a következők:

  1. V (G) a független utak maximális száma a grafikonon
  2. V (G)> = 1
  3. G-nek egy útja lesz, ha V (G) = 1
  4. Minimalizálja a bonyolultságot 10-re

Mennyire hasznos ez a mutató a szoftver teszteléséhez?

Az alapút tesztelés a fehér dobozos technika egyike, és garantálja, hogy a tesztelés során legalább egy utasítást végrehajtanak. Minden lineárisan független utat ellenőriz a programon keresztül, ami a tesztesetek számát jelenti, egyenértékű lesz a program ciklikus bonyolultságával.

Ez a mutató a ciklomatikus komplexitás (M) tulajdonságai miatt hasznos -

  1. M lehet tesztesetek száma az elágazás lefedettségének eléréséhez (felső határ)
  2. M lehet a grafikonokon keresztüli utak száma. (Alsó határ)

Tekintsük ezt a példát -

Ha (1. feltétel)1. nyilatkozatMás2. nyilatkozatHa (2. feltétel)3. nyilatkozatMás4. nyilatkozat

A ciklikus komplexitás ebben a programban 8-7 + 2 = 3 lesz.

Mivel a komplexitás 3-ra lett kiszámítva, a fenti példa teljes körű lefedettségéhez három teszteset szükséges.

Követendő lépések:

Az alábbi lépéseket kell követni a ciklikus komplexitás kiszámításához és a tesztesetek tervezéséhez.

1. lépés - Grafikon készítése csomópontokkal és élekkel a kódból

2. lépés - Független utak azonosítása

3. lépés - Ciklikus komplexitás kiszámítása

4. lépés - Tesztesetek megtervezése

Miután az alapkészlet kialakult, TEST CASES-t kell írni az összes út végrehajtásához.

További információ a V (G) -ről:

A ciklikus komplexitás manuálisan kiszámítható, ha a program kicsi. Automatizált eszközöket kell használni, ha a program nagyon összetett, mivel ez több folyamatábrát tartalmaz. A komplexitás száma alapján a csapat megállapíthatja azokat az intézkedéseket, amelyeket meg kell tenni az intézkedés érdekében.

Az alábbi táblázat áttekintést nyújt a v (G) komplexitási számáról és megfelelő jelentéséről:

Komplexitás száma Jelentése
1-10 Strukturált és jól megírt kód A magas tesztelhetőség költsége és erőfeszítése kevesebb
10-20 Komplex kód közepes tesztelhetőség A költségek és erőfeszítések közepesek
20–40 Nagyon bonyolult kód alacsony tesztelhetőség költség és erőfeszítés magas
> 40 Egyáltalán nem tesztelhető Nagyon magas költség és erőfeszítés

Eszközök a ciklikus komplexitás kiszámításához:

Számos eszköz áll rendelkezésre az alkalmazás összetettségének meghatározásához. Bizonyos bonyolultságszámítási eszközöket használnak speciális technológiákhoz. A komplexitás megtalálható a program döntési pontjainak számával. A döntési pontok akkor vannak, ha for-for-for, míg do do, catch, case utasítások egy forráskódban.

Példák az eszközökre

  • OCLint - Statikus kódelemző a C és a kapcsolódó nyelvekhez
  • Reflektor Add In - Code metrika a .NET-összeállításokhoz
  • GMetrics - Keressen mutatókat a Java-val kapcsolatos alkalmazásokban

A ciklikus komplexitás felhasználása:

A ciklikus komplexitás nagyon hasznosnak bizonyulhat

  • Segít a fejlesztőknek és a tesztelőknek a független útvonal-végrehajtások meghatározásában
  • A fejlesztők biztosíthatják, hogy az összes utat legalább egyszer tesztelték
  • Segít abban, hogy jobban összpontosítsunk a lefedetlen utakra
  • Javítsa a kód lefedettségét a szoftvertervezésben
  • Értékelje az alkalmazással vagy programmal kapcsolatos kockázatokat
  • Ezeknek a mutatóknak a ciklus elején történő használata csökkenti a program kockázatát

Következtetés:

A Cyclomatic Complexity szoftver metrikus, amely hasznos a strukturált vagy a fehér doboz teszteléséhez. Elsősorban a program összetettségének értékelésére szolgál. Ha a döntési pontok többek, akkor a program bonyolultabb. Ha a programnak nagy a bonyolultsága, akkor a hiba valószínűsége magas a karbantartás és a hibaelhárítás megnövekedett időtartamával.