Polkutestaus ja peruspolkutestaus ohjelmistoissa esimerkkien avulla

โšก ร„lykรคs yhteenveto

Peruspolkutestaus on white box -tekniikka, joka johtaa testitapaukset ohjelman loogisista poluista kรคyttรคen ohjausvuograafia ja syklomaattista kompleksisuutta pienimmรคn riippumattoman polkujoukon lรถytรคmiseksi.

  • ๐Ÿ—บ๏ธ Perusidea: Testitapaukset tulevat koodirakenteesta pikemminkin kuin vaatimusdokumentista.
  • ๐Ÿ”ข Neljรค vaihetta: Piirrรค ohjausvuograafi, laske syklomaattinen kompleksisuus, johda perusjoukko ja kirjoita yksi testi polkua kohden.
  • ๐Ÿ“ Testitapausten mรครคrรค: Riippumattomien polkujen lukumรครคrรค on yhtรค suuri kuin syklomaattinen kompleksisuus, mikรค antaa objektiivisen tavoitteen.
  • ๐Ÿ”„ Hybridimenetelmรค: Se yhdistรครค haarautumistestauksen ja polkutestauksen saavuttaakseen maksimaalisen kattavuuden minimaalisella testeillรค.
  • โœ… Kattavuustakuu: Perusjoukon suorittaminen suorittaa jokaisen moduulin lauseen vรคhintรครคn kerran.
  • โš ๏ธ Tunnettu raja: Se ei lรถydรค puuttuvia vaatimuksia, koska se testaa vain jo olemassa olevaa koodia.

Polkutestauksen peruspolkutestaus

Mitรค on polkutestaus ohjelmistotestauksessa?

Polkutestaus on rakenteellinen testausmenetelmรค, jossa kรคytetรครคn ohjelman lรคhdekoodia kaikkien mahdollisten suoritettavien polkujen lรถytรคmiseksi. Se auttaa mรครคrittรคmรครคn kaikki koodinpรคtkรคn sisรคllรค olevat viat. Tรคmรค menetelmรค on suunniteltu suorittamaan kaikki tai valitut polut tietokoneohjelman kautta.

Mikรค tahansa ei-triviaali ohjelma sisรคltรครค useita mahdollisia suorituspolkuja. Jokaisen niistรค testaaminen on sekรค vaikeaa ettรค aikaa vievรครค, ja useimmat niistรค menevรคt pรครคllekkรคin. Peruspolkutestaus vรคhentรครค tรคtรค redundanssia tunnistamalla pienimmรคn joukon polkuja, jotka silti suorittavat jokaisen lauseen ja jokaisen haaran ainakin kerran.

Ohjelmistosuunnittelun peruspolun testaus

Peruspolun testaus ohjelmistosuunnittelussa on a Valkoinen Box Testaus menetelmรค, jossa testitapaukset mรครคritellรครคn ohjelman lรคpi kuljetettavien virtausten tai loogisten polkujen perusteella. Peruspolun testauksen tavoitteena on mรครคrittรครค riippumattomien polkujen mรครคrรค, joten tarvittavien testitapausten mรครคrรค voidaan mรครคritellรค eksplisiittisesti testin kattavuuden maksimoimiseksi.

In ohjelmistotuotanto, Peruspolun testaus sisรคltรครค ohjelman kaikkien mahdollisten lohkojen suorittamisen ja maksimaalisen polun peiton mahdollisimman pienellรค mรครคrรคllรค testitapauksia. Se on haaratestauksen ja polun testausmenetelmien hybridimenetelmรค.

Yksinkertainen esimerkki tekee ajatuksesta konkreettisen.

Ohjelmistosuunnittelun peruspolun testaus

Yllรค oleva vuokaavio sisรคltรครค ehtolauseita, joten ohjaus voi pรครคstรค ulostuloon useampaa kuin yhtรค reittiรค pitkin. Sen kattamiseksi tarvitaan kolme toisistaan โ€‹โ€‹riippumatonta polkua:

  • Polku 1: 1,2,3,5,6, 7
  • Polku 2: 1,2,4,5,6, 7
  • Polku 3: 1, 6, 7

Ohjausvuokaavion piirtรคminen

Jokainen peruspolkutestauksen vaihe riippuu kontrollivuograafista, joten sen rakentamisessa kannattaa olla tarkka.

  • Solmu: Ympyrรคnรค piirretty sarja lauseita, jotka suoritetaan aina yhdessรค. Haaraton lausekejono kutistuu yhdeksi solmuksi.
  • Reuna: ohjauksen siirto solmusta toiseen, piirretรครคn nuolella. Reunat ovat ainoa tapa, jolla ohjaus liikkuu.
  • Predikaattisolmu: Solmu, joka sisรคltรครค ehdon ja josta lรคhtee kaksi tai useampia kaaria. Nรคmรค ohjaavat kompleksisuuslaskentaa.
  • Alue: reunojen ja solmujen rajaama alue. Alueiden lukumรครคrรค plus yksi on myรถs syklomaattinen kompleksisuus.

Tarkastellaan lyhyttรค moduulia, jossa on kaksi pรครคtรถstรค:

if (a > b) {          // node 1, predicate
    max = a;          // node 2
} else {
    max = b;          // node 3
}
if (max > limit) {    // node 4, predicate
    alert();          // node 5
}
return max;           // node 6

Graafissa on 6 solmua ja 6 kaaria, jolloin kaavan mukaan V(G) = 6 โ€“ 6 + 2 = 2. Predikaattien mรครคrรค antaa saman vastauksen nopeammin: 2 pรครคtรถstรค plus 1 on 3 riippumatonta polkua kahden haaran lรคpi yhdessรค. Kรคytรค sitรค muotoa, jonka voit laskea luotettavasti, ja tarkista se toisella.

Kaksi sรครคntรถรค, jotka estรคvรคt useimmat virheet. Ensinnรคkin yhdistetty ehto, kuten jos (x > 0 && y > 0) lasketaan kahdeksi predikaattisolmuksi, ei yhdeksi, koska oikosulku luo toisen pรครคtรถksen. Toiseksi, silmukka lisรครค yhden predikaattisolmun riippumatta siitรค, kuinka monta kertaa se iteroituu.

Peruspolkutestauksen vaiheet

Peruspolun testauksen perusvaiheet sisรคltรคvรคt

  • Piirrรค ohjauskaavio (eri ohjelmapolkujen mรครคrittรคmiseksi)
  • laskettu Syklomaattinen monimutkaisuus (mittarit riippumattomien polkujen mรครคrรคn mรครคrittรคmiseksi)
  • Etsi perusjoukko polkuja
  • Tuottaa testitapaukset harjoittaa jokaista polkua

Peruspolkutestauksen edut ja rajoitukset

Peruspolkutestauksen edut

  • Se auttaa vรคhentรคmรครคn ylimรครคrรคisiรค testejรค
  • Se kiinnittรครค huomion ohjelman logiikkaan
  • Se korvaa mielivaltaisen testitapausten valinnan analyyttisellรค pohjalla
  • Testaa tapauksia, joissa harjoituskantajoukko suorittaa jokaisen ohjelman kรคskyn vรคhintรครคn kerran

Peruspolkutestauksen rajoitukset

  • Se ei lรถydรค puuttuvaa koodia. Vaatimuksella, jota ei ole koskaan toteutettu, ei ole polkua, joten sille ei luoda testiรค. Peruspolkutestaus on yhdistettรคvรค vaatimuspohjaiseen testaukseen.
  • Reittien mรครคrรค kasvaa nopeasti. Sisรคkkรคiset silmukat ja yhdistetyt ehdot nostavat monimutkaisuutta nopeasti, ja moduulin, jonka V(G) on yli 20, kattaminen tรคllรค tavalla on epรคkรคytรคnnรถllistรค.
  • Kattavuus ei ole oikeellisuutta. Polun suorittaminen todistaa koodin toimivan, ei sitรค, ettรค se tuottaa oikean vastauksen. Jokainen testi tarvitsee silti mielekkรครคn vรคitteen.
  • Datasta riippuvat polut. Joihinkin polkuihin pรครคsee vain tietyillรค syรถteyhdistelmillรค, joiden rakentaminen voi olla vaikeaa tai mahdotonta.

UKK

Polkutestauksen tavoitteena on suorittaa kaikki mahdolliset polut, mikรค on epรคkรคytรคnnรถllistรค kaikissa silmukoita sisรคltรคvissรค moduuleissa. Peruspolkutestaus suorittaa vain riippumattomat polut, mikรค on paljon pienempi joukko, joka kuitenkin kattaa kaikki lauseet ja haarat.

Tรคsmรคlleen moduulin syklomaattinen kompleksisuus. Jos V(G) on 4, niin on olemassa 4 riippumatonta polkua ja tรคydelliseen haarautumisen kattavuuteen tarvitaan 4 testitapausta.

Ei. Se harjoittelee vain jo olemassa olevaa koodia, joten vaatimus, jota ei ole koskaan toteutettu, ei tuota polkua eikรค epรคonnistunutta testiรค. Nรคmรค kaksi tekniikkaa tรคydentรคvรคt toisiaan.

Tekoรคlytyรถkalut tuottavat syรถtearvoja, jotka saavuttavat tiettyjรค haaroja, mikรค on tyรถn hitain manuaalinen osa. Ne myรถs merkitsevรคt saavuttamattomat polut, jotka osoittavat kuollutta koodia.

Kyllรค. Staattiset analyysityรถkalut ovat luoneet ohjausvuokaavioita ja monimutkaisuuslukuja vuosien ajan, ja tekoรคlyavusteiset tyรถkalut lisรครคvรคt nyt ehdotettuja testisyรถtteitรค jokaiselle riippumattomalle polulle.

Tiivistรค tรคmรค viesti seuraavasti: