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 (iTä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:
- V (G) on kaaviossa olevien itsenäisten polkujen enimmäismäärä
- V (G)> = 1
- G: llä on yksi polku, jos V (G) = 1
- 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) -
- M voi olla testitapausten määrä haaran kattavuuden saavuttamiseksi (yläraja)
- 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 4Tä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.