Analiza graničnih vrijednosti – obično skraćena na BVA – uobičajena je tehnika testiranja crne kutije . Pristup testira nedostatke softvera provjerom ulaznih vrijednosti na granicama dopuštenih raspona.
Ovaj članak će istražiti što je testiranje granične analize, zašto je korisno i istražiti neke različite pristupe, tehnike i razne alate za granično testiranje.
Što je analiza graničnih vrijednosti u testiranju softvera?
Analiza rubnih vrijednosti je vrsta funkcionalnog ispitivanja . Ta vrsta testiranja bavi se provjerom ispunjava li svaka funkcija softvera zahtjeve i specifikacije. U slučaju graničnog testiranja, ova funkcionalnost uključuje način na koji softver postupa s različitim ulazima.
BVA je tehnika testiranja softvera koja potvrđuje kako će softver odgovoriti na unose na ili oko ruba ulaznih granica. U biti, svaki ulaz ima dopuštene raspone. Na primjer, možda imate okvir za lozinku za prijavu koja prihvaća lozinke između 8 i 12 znakova. Granično testiranje će testirati lozinke s duljinom znakova od 7, 8, 12 i 13.
Ovdje se misli da je vjerojatnije da će granice ograničenja, tj. 7, 8, 12 i 13, uzrokovati pogreške nego brojevi unutar granica, kao što su 9, 10 i 11. Iako se prednosti ovdje mogu činiti marginalnima u primjeru okvira polja koji prihvaća između 8 i 12 znakova, one postaju očiglednije kada trebate napisati testne slučajeve za okvire polja koji imaju između 1 i 20 znakova ili brojeve između 1 i 1000, i tako dalje.
Dakle, kako bi se uštedjelo vrijeme i smanjio broj testnih slučajeva unutar funkcionalnog testiranja, analiza graničnih vrijednosti gleda na vrijednosti:
- Na minimalnoj vrijednosti
- Izravno ispod minimalne vrijednosti
- Na maksimalnoj vrijednosti
- Izravno iznad maksimalne vrijednosti
Prednosti analize rubnih vrijednosti u ispitivanju
Granično testiranje ima nekoliko uvjerljivih prednosti za QA timove.
#1. Bolja kvaliteta softvera
Scenarij noćne more za testere su greške i nedostaci koji prolaze nezapaženo. Uz toliko stvari koje treba provjeriti, neki se nedostaci mogu provući kroz pukotine. Granično testiranje dokazuje funkcionalnost područja u softveru za koje postoji veća vjerojatnost da će sadržavati pogreške, što dovodi do boljih verzija softvera i, u konačnici, pouzdanije, stabilnije aplikacije.
#2. Povećana pokrivenost testom
BVA u testiranju softvera toliko je koristan jer pomaže u smanjenju broja testnih slučajeva potrebnih za sveobuhvatnu pokrivenost testom. Analiza graničnih vrijednosti osigurava da se važne vrijednosti i svaka vrijednost mogu temeljitije ispitati.
#3. Rano otkrivanje kvara
Ispitivanje graničnih vrijednosti dio je pristupa koji daje prioritet ranom otkrivanju nedostataka. Rano otkrivanje grešaka u procesu znači da razvojni timovi mogu uštedjeti vrijeme i novac, a da čak i ne spominju činjenicu da je puno lakše ispraviti greške u ranim fazama razvoja.
#4. Učinkovitost
Testiranje graničnih vrijednosti super je učinkovito jer umanjuje zahtjeve za mnogo testnih slučajeva. Doista, smanjenje unosa na sve osim na one koji će najvjerojatnije uzrokovati probleme može značajno uštedjeti timovima za testiranje na vremenu pisanja i izvršavanja testnih slučajeva.
Nedostaci analize rubnih vrijednosti u ispitivanju
Naravno, nijedna tehnika testiranja softvera nije savršena ili bez svojih ograničenja. Iako analiza graničnih vrijednosti ima mnoge prednosti, postoje neka ograničenja za rad s ovom tehnikom funkcionalnog testiranja.
#1. Uzak opseg
BVA radi na granicama ili rubovima valjanih unosa podataka. Općenito, zanemaruje srednje unose obrazlažući da će oni biti u redu ako su valjani ulazi na rubovima. Međutim, nije bez presedana da bi neke od ovih vrijednosti koje nisu ispitane mogle imati problema.
#2. Pretjerano pojednostavljeno
Analiza granica je pojednostavljivanje stvari. Iako ovo funkcionira za smanjenje testnih slučajeva, pristup je manje prikladan za vrlo složene domene s višestrukim granicama, interakcijama ili ovisnostima. Doista, može se teško nositi sa složenim scenarijima, što znači da trebate istražiti druge tehnike za odgovarajuću pokrivenost.
#3. Pretpostavke
Svaki proces koji pokušava povećati učinkovitost riskira propuštanje određenih pogrešaka. BVA se fokusira na granice na rubu raspona. Pritom mora napraviti pretpostavke o drugim ulazima koji su s obje strane graničnih vrijednosti. Ispitivači moraju pronaći ravnotežu između učinkovitosti i pokrivenosti, što predstavlja mali rizik ako se granično testiranje koristi samo.
#4. Oslanjanje na točne specifikacije i zahtjeve
Učinkovit BVA ovisi o kvaliteti i točnosti specifikacija i dokumentacije zahtjeva. Sve neprovjerene pogreške u tim dokumentima mogu prokrvariti u testiranje graničnih vrijednosti i dovesti do toga da određene pogreške ostanu neprovjerene i neotkrivene do kritičnih kasnih faza razvoja.
#5. Oslanjanje na klase ekvivalencije
Izvođenje temeljitog BVA zahtijeva dobro radno znanje o klasama ekvivalencije. Točno postavljanje ovih klasa zahtijeva iskustvo i neke pozadinske informacije o aplikaciji.
Izazovi analize rubnih vrijednosti
u testiranju softvera
Do sada bi vam trebali biti prilično jasni prednosti i mane graničnog testiranja. Međutim, ako želite implementirati pristup u vlastito testiranje softvera, također morate biti svjesni raznih izazova koje morate prevladati.
Ovdje su neki od izazova implementacije testiranja graničnih vrijednosti u testiranju softvera.
#1. Ocrtavanje granica
Identificiranje granica unutar jednostavnih sustava predstavlja male izazove za kompetentne testere. Međutim, postoje složenije situacije, kao što su:
- Složene ulazne domene s različitim ulaznim varijablama ili zamršenim odnosima
- Nedokumentirane granice koje nisu jasno navedene u specifikacijskim dokumentima
- Dinamičke granice koje se mijenjaju na temelju radnji korisnika ili drugih uvjeta
#2. Dvosmisleni zahtjevi
Loše napisani ili nejasni dokumenti zahtjeva mogu spriječiti identifikaciju graničnih vrijednosti. Jasnoća, cjelovitost i predanost dokumentima iscrpnih specifikacija zahtijevaju vrijeme, ali će se na kraju isplatiti.
#3. Stručnost
Analiza graničnih vrijednosti može biti varljivo složena. Doista, timovi za testiranje trebaju osoblje s iskustvom i poznavanjem tog područja kako bi razumjeli suptilne nijanse tehnike. Štoviše, testeri trebaju donijeti određeno znanje o softveru ili, barem, imati pouzdane specifikacijske dokumente na koje se mogu osloniti.
#4. Greške
Granična analiza nastoji smanjiti broj testnih slučajeva potrebnih za provjeru valjanih i nevažećih ulaza. Međutim, nedostaci koji se nalaze izvan raspona testiranja mogu lako proći nezapaženo. Štoviše, pogreške “off-by-one” uobičajene su pogreške kodiranja koje se mogu pojaviti na granicama ili blizu njih. Testeri moraju biti svjesni ovih scenarija i napraviti mjere za testiranje.
#5. Eksplozija testnog slučaja
S višestrukim ulaznim granicama u igri, testni slučajevi mogu uskoro postati složeni i množiti se izvan kontrole. U tim se situacijama gubi vrijeme i novac koje možete uštedjeti graničnim testiranjem, što narušava prednosti rješenja. Kompleksne verzije softvera s puno kombinacija ili permutacija mogu imati sličan učinak.
#6. Ograničenja alata za analizu
Alati za automatizaciju testiranja softvera mogu pomoći timovima da izvrše odgovarajuću analizu graničnih vrijednosti. Međutim, čak i u najboljim slučajevima, ovi alati zahtijevaju određenu ručnu intervenciju i za testiranje i za izradu testa. Ova situacija može se pogoršati za složene građevine s interakcijama s više varijabli.
Različite vrste graničnih vrijednosti
testiranje u testiranju softvera
U knjizi Software Testing: A Craftsman’s Approach , autori Paul C. Jorgensen i Byron DeVries opisuju četiri različite vrste testiranja graničnih vrijednosti, a to su:
1. Ispitivanje normalne granične vrijednosti (NBVT)
- Testira važeće ulazne vrijednosti na rubovima ulazne domene
- Istražuje minimalne i maksimalne vrijednosti uz unose neposredno iznad i ispod granice
- Ovo je klasični tip analize graničnih vrijednosti
2. Robusno testiranje graničnih vrijednosti (RBVT)
- Slično gore navedenom NBVT-u, ali uključuje i nevažeće unose
- Testira unutar i neposredno izvan granica, ali također uzima u obzir nevažeće unose
- Usredotočuje se na pronalaženje pogrešaka iz ekstremnih ili neočekivanih rezultata
3. Ispitivanje granične vrijednosti u najgorem slučaju (WBVT)
- Provjerava ponašanje softvera korištenjem ekstremno valjanih i nevažećih vrijednosti
- Istražuje vrijednosti na rubu ulaznih domena i vrijednosti izvan tih granica
- Nastoji razumjeti ponašanje softvera u ekstremnijim uvjetima
4. Robusno ispitivanje granične vrijednosti najgoreg slučaja (RWBVT)
- Koristi mješavinu RBVT i WBVT za najtemeljitije ispitivanje graničnih vrijednosti
- Testira važeće i nevažeće ulazne vrijednosti na tipičnim i ekstremnim granicama
- Nudi najbolju priliku za pronalaženje nedostataka povezanih s rubovima
Ovi se pristupi razlikuju po sveobuhvatnosti, a RWBVT je najtemeljitiji. Međutim, ispitivači moraju priznati dodatna ulaganja u vrijeme i trud koji su potrebni za otključavanje ove dodatne razine otkrivanja nedostataka.
Podjela ekvivalencije i granična vrijednost
analiza: sličnosti i razlike
Podjela ekvivalencije i analiza graničnih vrijednosti često se koriste zajedno jedna s drugom. Doista, dvije tehnike su uvelike komplementarne. Međutim, oni opisuju različite pristupe potvrđivanju unosa podataka. Evo pogleda na sličnosti i razlike između to dvoje.
1. Sličnosti
Podjela ekvivalencije i analiza graničnih vrijednosti čine izvrstan par. Evo nekih sličnosti između obje tehnike.
- Obje su tehnike testiranja crne kutije , što znači fokus na ulaze i izlaze, koji se mogu testirati bez prethodnog poznavanja izvornog koda aplikacije.
- Oba su dio temeljitog pristupa testiranju inputa
- Oba pomažu testerima da postignu ravnotežu između sveobuhvatne pokrivenosti testom bez pisanja pretjerane količine testnih slučajeva.
2. Razlike
Kako bismo istražili razlike između podjele ekvivalencije i analize graničnih vrijednosti, moramo promatrati svaku zasebno.
Podjela ekvivalencije
- Dijeli ulazne podatke u klase ekvivalencije koje bi trebale rezultirati sličnim rezultatima sustava
- Koristi jednu reprezentativnu vrijednost iz svake klase i testira sustav s tom vrijednošću
- Bavi se identificiranjem valjanih i nevažećih klasa ekvivalencije
Analiza rubnih vrijednosti
- Testira vrijednosti na granicama ili rubovima klasa ekvivalencije
- Testirajte brojne vrijednosti, uključujući minimalne, maksimalne i vrijednosti s obje strane granice
- Traži pogreške koje se nalaze na rubu granica
Primjeri podjele ekvivalencije i analize rubnih vrijednosti
Evo nekoliko primjera kako bismo vam pomogli učvrstiti razumijevanje podjele ekvivalencije i analize graničnih vrijednosti.
Primjer podjele ekvivalencije:
Recimo da imate okvir za unos registracija automobila. Tipično, registracijske tablice automobila u SAD-u imaju između 6 i sedam znakova. Radi jednostavnosti, snizit ćemo specijalne registarske pločice.
Valjani podaci = Pločice 6 ili 7 znakova
Nevažeći podaci = Ploče s> 6 ili> 7 znakova.
Primjer analize granične vrijednosti:
Koristeći isti primjer registarske pločice kao gore, analiza granica će testirati
Valjani podaci = Pločice sa 6 ili 7 znakova
Nevažeći podaci = Pločice s 5 ili 8 znakova, au nekim scenarijima 4 i 9 znakova
Primjer analize rubnih vrijednosti
Možda je najbolji način za potpuno razumijevanje koncepta promatranje još jednog ili dva primjera analize granične vrijednosti.
Primjer ispitivanja granične vrijednosti #1
Kako bismo detaljnije istražili testiranje graničnih vrijednosti, pogledajmo primjer domene provjere dobi.
Imamo kućicu u koju korisnik može upisati svoju dob.
Granične vrijednosti su:
- Minimalna dob = 18
- Maksimalna dob = 120
Primjer graničnih testnih slučajeva:
Postoji ukupno šest testnih slučajeva:
- 17, 18 i 19, koji su ispod minimuma, minimuma, odnosno iznad minimuma
- 119, 18 i 19, koji su ispod maksimuma, maksimuma, odnosno iznad maksimuma
Primjer ispitivanja granične vrijednosti #2.
U našem sljedećem primjeru graničnog testiranja, istražit ćemo web mjesto s popustom na minimalnu vrijednost od 20% za narudžbe od 100 USD i više.
U ovom primjeru, kupnja iznad 600 USD dovodi do popusta od 25%. Test granične vrijednosti bavit će se unosima između 100 i 600 USD.
Granične vrijednosti su:
Minimalni kvalificirajući popust = 100 USD
Maksimalni kvalificirajući popust = 600 USD
Primjer graničnih testnih slučajeva:
Opet, generiramo ukupno šest testnih slučajeva, a to su:
- 99,99 USD, 100 USD i 100,01 USD, što je ispod minimuma, minimuma, odnosno iznad minimuma
- 599,99 USD, 600 USD i 600,01 USD, što je ispod maksimuma, maksimuma i iznad maksimuma
Je li granično testiranje u testiranju softvera točno?
U istraživačkom radu Black Box Testing with Equivalence Partitioning and Boundary Value Analysis Methods , autori istražuju korištenje ekvivalentne particije i analize graničnih vrijednosti za testiranje akademskog informacijskog sustava za Sveučilište Mataram u Indoneziji.
Autori su koristili popularni alat za testiranje otvorenog koda Selenium za svoje testove i proveli su ukupno 322 testa. Testiranje ekvivalencije i analiza graničnih vrijednosti otkrili su oko 80 neuspjelih slučajeva, što je dovelo do otprilike 75:25 omjera valjanih prema nevažećim rezultatima testa. Općenito, korištenje kombinacije particioniranja ekvivalencije i BVA u testiranju softvera dovelo je do temeljitog i korisnog testiranja softvera.
Najbolji alati za testiranje graničnih vrijednosti
Iako su namjenski softverski alati za granično testiranje rijetki, postoji mnogo značajnih alata za testiranje koji su sposobni za taj posao.
#3. TestCaseLab
TestCaseLab je alat za upravljanje testiranjem u oblaku koji može pomoći u BVA testiranju. Softver omogućuje timovima stvaranje i upravljanje testnim slučajevima iz svog intuitivnog korisničkog sučelja privlačnog izgleda. TestCaseLab je fleksibilan i pun značajki, ali ima svoja ograničenja, uključujući ograničeno izvješćivanje i mogućnosti prilagodbe.
#2. Micro Focus UFT One
Micro Focus UFT One je alat za testiranje softvera s fokusom na funkcionalno i regresijsko testiranje . Podržava različite platforme, uređaje i testiranje API-ja te nudi snažne mogućnosti integracije. Nudi stvaranje testova bez koda i stvaranje testova na temelju ključnih riječi i može pomoći timovima da s lakoćom izgrade testne slučajeve analize graničnih vrijednosti. Postoje neka ograničenja koja trebate uzeti u obzir, poput strme krivulje učenja i nedostatka snage u usporedbi s alatima poput ZAPTEST-a.
#1. ZAPTEST
ZAPTEST je sveobuhvatan alat za testiranje automatizacije softvera s naprednim RPA mogućnostima . Napravljen je kako bi testerima pružio jednostavan i robustan paket alata za automatizaciju testiranja koji mogu pomoći u provjeri softvera na različite načine, uključujući BVA u testiranju softvera.
Neki od najuvjerljivijih slučajeva upotrebe ZAPTEST-a za pomoć analizi graničnih vrijednosti uključuju generiranje testnih slučajeva, rukovanje testnim podacima, izvođenje testa te izvješćivanje i analizu. S nizom predložaka i visokom razinom prilagodbe u kombinaciji sa stvaranjem testnih slučajeva bez koda, korisnici ZAPTEST-a mogu brzo i jednostavno kreirati i upravljati robusnim testnim slučajevima za sve vrste graničnih analiza.
Povrh generiranja testnih slučajeva i upravljanja, ZAPTEST-ove RPA mogućnosti mogu pomoći timovima za testiranje s njihovim testiranjem analize graničnih vrijednosti na druge načine. Na primjer, možete automatizirati izvođenje testnog slučaja, generirati testne podatke i izgraditi moćne integracije s drugim alatima za testiranje.
Savjeti za testiranje graničnih vrijednosti
- Kombinirajte analizu graničnih vrijednosti s particijom ekvivalencije kako biste osigurali da vaši testni slučajevi pokrivaju različite ulazne scenarije
- Upotrijebite nevažeće scenarije unosa (tj. negativno testiranje) kako biste provjerili kako softver obrađuje pogreške i neočekivane unose
- Uložite vrijeme u identificiranje graničnih vrijednosti za različite vrste podataka kao što su tekst, brojevi, Booleovi itd.
- Dajte prioritet testiranju graničnih vrijednosti za kritične funkcionalnosti ili područja gdje je vjerojatnije da će se pojaviti pogreške
- Koristite realne podatke koji predstavljaju vrstu podataka koje će vaši korisnici unijeti u vaše domene.
Završne misli
Analiza graničnih vrijednosti koristan je pristup funkcionalnom ispitivanju. Kada imate ulaznu domenu, trebate provjeriti prihvaća li važeće podatke i šalje li poruke o pogrešci kada primi nevažeće podatke. Testiranje granične analize pomaže u provjeri te funkcionalnosti na učinkovit način izgradnjom samo testnih slučajeva potrebnih za sveobuhvatno testiranje.
Granično testiranje promatra vrijednosti unutar ili oko prihvatljivog raspona i provjerava kako sustav reagira na te ulaze. Rezultat je puno ušteđenog vremena i smanjenog truda jer ne morate graditi suvišne testne slučajeve. U brzom svijetu razvoja softvera, gdje se čini da rokovi stižu gusto i brzo, timovi za testiranje trebaju svu pomoć koju mogu dobiti.