Mccaben syklinen monimutkaisuus: Laske vuokaaviona (esimerkki)

Sisällysluettelo:

Anonim

Ymmärtää syklomaattinen monimutkaisuus, antaa ensin ymmärtää -

Mikä on ohjelmistometriikka?

Mittaus ei ole muuta kuin määrällinen osoitus tuotteen / prosessin ominaisuuden koosta / ulottuvuudesta / kapasiteetista. Ohjelmistomittari määritellään kvantitatiivisena mittana ohjelmiston järjestelmän ominaisuuksista suhteessa kustannuksiin, laatuun, kokoon ja aikatauluun.

Esimerkki-

Mittaa - virheiden määräMittarit - löydettyjen virheiden määrä henkilöä kohti

Tässä opetusohjelmassa opit-

  • Mikä on ohjelmistometriikka?
  • Mikä on syklomaattinen monimutkaisuus?
  • Vuokaaviomerkinnät ohjelmalle:
  • Kuinka laskea syklomaattinen monimutkaisuus
  • Syklomaattisen monimutkaisuuden ominaisuudet:
  • Kuinka tämä tieto on hyödyllinen ohjelmistojen testauksessa?
  • Lisää V (G):
  • Työkalut syklomaattisen monimutkaisuuden laskemiseen:
  • Syklomaattinen monimutkaisuus:

Syklomaattinen monimutkaisuus ohjelmistojen testauksessa

Ohjelmistojen testauksen syklomaattinen monimutkaisuus on testausmittari, jota käytetään ohjelmisto-ohjelman monimutkaisuuden mittaamiseen. Se on kvantitatiivinen mitta itsenäisistä poluista ohjelmisto-lähdekoodissa. Syklomaattinen monimutkaisuus voidaan laskea käyttämällä ohjauksen vuokaavioita tai ohjelmiston toimintojen, moduulien, menetelmien tai luokkien suhteen.

Itsenäinen polku määritellään poluksi, jolla on ainakin yksi reuna, jota ei ole aiemmin kuljettu missään muussa polussa.

Tämän mittarin kehitti Thomas J. McCabe vuonna 1976, ja se perustuu ohjelman ohjausvirtauksen esitykseen. Ohjausvirta kuvaa ohjelmaa kaaviona, joka koostuu solmuista ja reunoista.

Kaaviossa solmut edustavat käsittelytehtäviä, kun taas reunat edustavat ohjausvirtaa solmujen välillä.

Vuokaaviomerkinnät ohjelmalle:

Vuokaaviomerkintä ohjelmalle määrittää useita solmuja, jotka on kytketty reunojen kautta. Alla on vuokaaviot lauseille, kuten if-else, While, asti ja normaali virtaussekvenssi.

Kuinka laskea syklomaattinen monimutkaisuus

Matemaattinen esitys:

Matemaattisesti se asetetaan itsenäisiksi poluiksi kaavion kautta. Ohjelman monimutkaisuus koodissa voidaan määrittää kaavalla -

V (G) = E - N + 2

Missä,

E - reunojen lukumäärä

N - Solmujen määrä

V (G) = P + 1

Missä P = predikaattisolmujen määrä (solmu, joka sisältää ehdon)

Esimerkki -

i = 0;n = 4; // N-Kaaviossa olevien solmujen määräkun (i 

Tämän ohjelman vuokaavio on

Lasketaan matemaattisesti,

  • V (G) = 9-7 + 2 = 4
  • V (G) = 3 + 1 = 4 (Ehtosolmut ovat 1,2 ja 3 solmua)
  • Perusjoukko - joukko ohjelman mahdollisia toteutuspolkuja
  • 1, 7
  • 1, 2, 6, 1, 7
  • 1, 2, 3, 4, 5, 2, 6, 1, 7
  • 1, 2, 3, 5, 2, 6, 1, 7

Syklomaattisen monimutkaisuuden ominaisuudet:

Seuraavassa on syklomaattisen monimutkaisuuden ominaisuudet:

  1. V (G) on kaaviossa olevien itsenäisten polkujen enimmäismäärä
  2. V (G)> = 1
  3. G: llä on yksi polku, jos V (G) = 1
  4. Pienennä monimutkaisuus arvoon 10

Kuinka tämä tieto on hyödyllinen ohjelmistojen testauksessa?

Peruspolun testaus on yksi valkoisen laatikon tekniikasta ja se takaa vähintään yhden lauseen suorittamisen testauksen aikana. Se tarkistaa jokaisen lineaarisesti riippumattoman polun ohjelman läpi, mikä tarkoittaa lukumääräisiä testitapauksia, vastaa ohjelman syklomaista monimutkaisuutta.

Tämä mittari on hyödyllinen syklomaattisen monimutkaisuuden (M) -

  1. M voi olla testitapausten määrä haaran kattavuuden saavuttamiseksi (yläraja)
  2. M voi olla polkujen lukumäärä kaavioiden läpi. (Alempi sidottu)

Harkitse tätä esimerkkiä -

Jos (ehto 1)Lausunto 1MuuLausunto 2Jos (ehto 2)Lausunto 3MuuLausunto 4

Tämän ohjelman syklinen monimutkaisuus on 8-7 + 2 = 3.

Koska monimutkaisuus on laskettu 3: ksi, kolme testitapausta ovat välttämättömiä edellä mainitun esimerkin kattavan reitin kattavuuden kannalta.

Noudatettavat vaiheet:

Seuraavia vaiheita on noudatettava laskettaessa syklomaattinen monimutkaisuus ja testitapausten suunnittelu.

Vaihe 1 - Kuvaajan rakentaminen solmuilla ja reunoilla koodista

Vaihe 2 - Itsenäisten polkujen tunnistaminen

Vaihe 3 - Syklomaattinen monimutkaisuuslaskenta

Vaihe 4 - Testitapausten suunnittelu

Kun perusjoukko on muodostettu, TEST CASES tulisi kirjoittaa kaikkien polkujen suorittamiseksi.

Lisää V (G):

Syklomaattinen monimutkaisuus voidaan laskea manuaalisesti, jos ohjelma on pieni. Automatisoituja työkaluja on käytettävä, jos ohjelma on hyvin monimutkainen, koska siihen liittyy enemmän vuokaavioita. Kompleksinumeron perusteella tiimi voi tehdä päätelmät toimenpiteistä, jotka on tehtävä toimenpiteen toteuttamiseksi.

Seuraava taulukko antaa yleiskatsauksen v (G) monimutkaisuusluvusta ja vastaavasta merkityksestä:

Monimutkaisuusluku Tarkoitus
1-10 Jäsennelty ja hyvin kirjoitettu koodi Korkean testattavuuden kustannukset ja vaivat ovat pienemmät
10-20 Monimutkainen koodi Keskitaso Testattavuus Kustannukset ja vaivat ovat keskitasoa
20-40 Erittäin monimutkaiset koodin alhaiset testattavuuskustannukset ja vaivat ovat korkeat
> 40 Ei lainkaan testattavissa Erittäin korkeat kustannukset ja vaivat

Työkalut syklomaattisen monimutkaisuuden laskemiseen:

Monet työkalut ovat käytettävissä sovelluksen monimutkaisuuden määrittämiseksi. Joitakin monimutkaisuuden laskentatyökaluja käytetään tietyille tekniikoille. Monimutkaisuus löytyy ohjelman päätöspisteiden lukumäärästä. Päätöskohdat ovat, jos lähdekoodissa for for for each, while do do, catch, case.

Esimerkkejä työkaluista ovat

  • OCLint - staattinen koodianalysaattori C: lle ja vastaaville kielille
  • Heijastimen lisäys - .NET-mittarit .NET-kokoonpanoille
  • GMetrics - Etsi tietoja Java-sovelluksista

Syklomaattinen monimutkaisuus:

Syklomaattinen monimutkaisuus voi osoittautua erittäin hyödylliseksi

  • Auttaa kehittäjiä ja testaajia määrittämään itsenäiset polun toteutukset
  • Kehittäjät voivat varmistaa, että kaikki polut on testattu vähintään kerran
  • Auttaa meitä keskittymään enemmän paljastamattomille poluille
  • Paranna ohjelmistotuotannon koodikattavuutta
  • Arvioi sovellukseen tai ohjelmaan liittyvät riskit
  • Näiden mittareiden käyttö syklin alussa vähentää ohjelman riskiä

Päätelmä:

Cyclomatic Complexity on ohjelmistometri, joka on hyödyllinen jäsenneltyyn tai White Box -testaukseen. Sitä käytetään pääasiassa ohjelman monimutkaisuuden arviointiin. Jos päätöksentekopisteitä on enemmän, niin ohjelman monimutkaisuus on enemmän. Jos ohjelmalla on suuri monimutkaisuusluku, virheen todennäköisyys on suuri, kun ylläpitoon ja vianmääritykseen kuluu enemmän aikaa.