Testiranje puta i testiranje baznog puta u softveru s primjerima

โšก Pametni saลพetak

Testiranje baznog puta je tehnika bijele kutije koja izvodi testne sluฤajeve iz logiฤkih puteva kroz program, koristeฤ‡i graf toka upravljanja i ciklomatsku sloลพenost kako bi pronaลกla minimalni skup nezavisnih puteva.

  • ๐Ÿ—บ๏ธ Osnovna ideja: Testni sluฤajevi dolaze iz strukture koda, a ne iz dokumenta sa zahtjevima.
  • ๐Ÿ”ข ฤŒetiri koraka: Nacrtajte graf toka upravljanja, izraฤunajte ciklomatsku sloลพenost, izvedite bazni skup, napiลกite jedan test po putu.
  • ๐Ÿ“ Broj testnih sluฤajeva: Broj neovisnih putova jednak je ciklomatskoj sloลพenosti, dajuฤ‡i objektivni cilj.
  • ๐Ÿ”„ Hibridna metoda: Kombinira testiranje grana i testiranje puta kako bi se postigla maksimalna pokrivenost uz minimalne testove.
  • โœ… Jamstvo pokriฤ‡a: Izvrลกavanje osnovnog skupa pokreฤ‡e svaku naredbu u modulu barem jednom.
  • โš ๏ธ Poznata granica: Ne moลพe pronaฤ‡i nedostajuฤ‡e zahtjeve jer testira samo kod koji veฤ‡ postoji.

Osnovno testiranje putanje Testiranje putanje

ล to je testiranje putanje u testiranju softvera?

Testiranje staze strukturalna je metoda testiranja koja ukljuฤuje koriลกtenje izvornog koda programa kako bi se pronaลกao svaki moguฤ‡i izvrลกni put. Pomaลพe u odreฤ‘ivanju svih greลกaka unutar dijela koda. Ova metoda je dizajnirana za izvrลกavanje svih ili odabranih putanja kroz raฤunalni program.

Svaki netrivijalni program sadrลพi mnogo moguฤ‡ih putova izvrลกavanja. Testiranje svakog od njih je i teลกko i dugotrajno, a veฤ‡ina se preklapa. Testiranje baznih putova smanjuje tu redundanciju identificiranjem najmanjeg skupa putova koji i dalje barem jednom izvrลกava svaku naredbu i svaku granu.

Testiranje osnovnog puta u programskom inลพenjerstvu

Testiranje osnovnog puta u softverskom inลพenjerstvu je a Bijela Box Ispitivanje metoda u kojoj se ispitni sluฤajevi definiraju na temelju tokova ili logiฤkih putova koji se mogu proฤ‡i kroz program. Cilj testiranja osnovnog puta je definirati broj neovisnih putova, tako da se broj potrebnih testnih sluฤajeva moลพe eksplicitno definirati kako bi se poveฤ‡ala pokrivenost testom.

In programsko inลพenjerstvo, Osnovno testiranje staze ukljuฤuje izvoฤ‘enje svih moguฤ‡ih blokova u programu i postiลพe maksimalnu pokrivenost staze s najmanjim brojem testnih sluฤajeva. To je hibridna metoda testiranja grana i metoda testiranja puta.

Jednostavan primjer ฤini ideju konkretnom.

Testiranje osnovnog puta u programskom inลพenjerstvu

Gornji graf toka sadrลพi uvjetne naredbe, tako da upravljanje moลพe doฤ‡i do izlaza putem viลกe ruta. Potrebna su tri neovisna puta za njegovo pokrivanje:

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

Kako nacrtati graf toka upravljanja

Svaki korak testiranja baznog puta ovisi o grafu toka upravljanja, stoga je vrijedno biti precizan u vezi s tim kako je on izgraฤ‘en.

  • ฤŒvor: niz naredbi koje se uvijek izvrลกavaju zajedno, nacrtan kao krug. Niz naredbi bez grana saลพima se u jedan ฤvor.
  • Rub: prijenos kontrole s jednog ฤvora na drugi, nacrtan kao strelica. Rubovi su jedini naฤin na koji se kontrola kreฤ‡e.
  • Predikatni ฤvor: ฤvor koji sadrลพi uvjet, s dva ili viลกe rubova koji ga napuลกtaju. Oni odreฤ‘uju broj sloลพenosti.
  • Regija: podruฤje ograniฤeno rubovima i ฤvorovima. Broj regija plus jedan takoฤ‘er je jednak ciklomatskoj sloลพenosti.

Razmotrimo kratki modul s dvije odluke:

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

Graf ima 6 ฤvorova i 6 bridova, ลกto prema formuli za bridove daje V(G) = 6 โ€“ 6 + 2 = 2. Broj predikata brลพe daje isti odgovor: 2 odluke plus 1 jednako je 3 neovisna puta kroz dvije grane zajedno. Upotrijebite bilo koji oblik koji moลพete pouzdano izraฤunati i provjerite s drugim.

Dva pravila koja sprjeฤavaju veฤ‡inu pogreลกaka. Prvo, sloลพeni uvjet kao ลกto je ako (x > 0 i y > 0) raฤuna se kao dva predikatska ฤvora, a ne jedan, jer kratki spoj stvara drugu odluku. Drugo, petlja doprinosi jednim predikatskim ฤvorom bez obzira na to koliko se puta ponavlja.

Koraci za testiranje osnovnog puta

Osnovni koraci ukljuฤeni u testiranje temeljnog puta ukljuฤuju

  • Nacrtajte kontrolni grafikon (kako biste odredili razliฤite programske staze)
  • Izraฤunati Ciklomatska sloลพenost (metrika za odreฤ‘ivanje broja neovisnih staza)
  • Pronaฤ‘ite osnovni skup staza
  • Generirati test sluฤajevi vjeลพbati svaki put

Prednosti i ograniฤenja testiranja baznog puta

Prednosti testiranja baznog puta

  • Pomaลพe smanjiti suviลกne testove
  • Fokusira pozornost na programsku logiku
  • Zamjenjuje proizvoljni odabir testnih sluฤajeva analitiฤkom osnovom.
  • Testni sluฤajevi koji koriste osnovni skup izvrลกit ฤ‡e svaku naredbu u programu barem jednom

Ograniฤenja testiranja baznog puta

  • Ne moลพe pronaฤ‡i nedostajuฤ‡i kod. Zahtjev koji nikada nije implementiran nema putanju, pa se za njega neฤ‡e generirati test. Testiranje osnovne putanje mora biti upareno s testiranjem temeljenim na zahtjevima.
  • Broj staza brzo raste. Ugnijeลพฤ‘ene petlje i sloลพeni uvjeti brzo poveฤ‡avaju sloลพenost, a modul s V(G) iznad 20 postaje nepraktiฤan za pokrivanje na ovaj naฤin.
  • Pokrivenost nije ispravnost. Izvrลกavanje puta dokazuje da se kod izvrลกava, a ne da daje toฤan odgovor. Svaki test i dalje treba smislenu tvrdnju.
  • Putovi ovisni o podacima. Neki su putovi dostupni samo s odreฤ‘enim kombinacijama ulaznih podataka koje moลพe biti teลกko ili nemoguฤ‡e konstruirati.

Pitanja i odgovori

Testiranje puta ima za cilj izvrลกiti svaki moguฤ‡i put, ลกto je nepraktiฤno u bilo kojem modulu koji sadrลพi petlje. Testiranje baznog puta izvrลกava samo neovisne puteve, daleko manji skup koji i dalje pokriva svaku naredbu i granu.

Toฤno ciklomatska sloลพenost modula. Ako je V(G) 4, tada postoje 4 neovisna puta i potrebna su 4 testna sluฤaja za potpuno pokrivanje grana.

Ne. Samo vjeลพba kod koji veฤ‡ postoji, tako da zahtjev koji nikada nije implementiran ne proizvodi put i ne proizvodi neuspjeลกan test. Dvije tehnike se nadopunjuju.

Alati umjetne inteligencije generiraju ulazne vrijednosti koje doseลพu odreฤ‘ene grane, ลกto je najsporiji ruฤni dio posla. Takoฤ‘er oznaฤavaju nedostiลพne puteve koji ukazuju na neispravan kod.

Da. Alati za statiฤku analizu godinama generiraju grafove toka upravljanja i brojke sloลพenosti, a alati potpomognuti umjetnom inteligencijom sada dodaju predloลพene ulazne podatke za testiranje za svaki neovisni put.

Saลพmite ovu objavu uz: