Robežvērtību analīze – parasti saīsināti saukta par BVA – ir ierasta melnās kastes testēšanas metode. Ar šo pieeju programmatūras defektus pārbauda, pārbaudot ievades vērtības pieļaujamo diapazonu robežās.
Šajā rakstā apskatīsim, kas ir robežu analīzes testēšana, kāpēc tā ir noderīga, kā arī izpētīsim dažas dažādas pieejas, metodes un dažādus robežu testēšanas rīkus.
Kas ir robežvērtību analīze programmatūras testēšanā?
Robežvērtību analīze ir funkcionālās testēšanas veids. Šis testēšanas veids ir saistīts ar pārbaudi, vai katra programmatūras funkcija atbilst prasībām un specifikācijām. Robežu testēšanas gadījumā šī funkcionalitāte ietver to, kā programmatūra rīkojas ar dažādiem ievades datiem.
BVA ir programmatūras testēšanas metode, ar kuru tiek pārbaudīts, kā programmatūra reaģēs uz ievades datiem, kas atrodas pie vai ap ievades robežu robežām. Būtībā katrai ievadei ir pieļaujamie diapazoni. Piemēram, var būt izveidots pieteikšanās paroles lauks, kurā var ievadīt paroles ar 8 līdz 12 rakstzīmēm. Robežpārbaudes tiks pārbaudītas paroles ar 7, 8, 12 un 13 rakstzīmju garumu.
Tiek domāts, ka robežās, t. i., 7, 8, 12 un 13, ir lielāka iespēja kļūdīties nekā skaitļos, kas atrodas robežās, piemēram, 9, 10 un 11. Lai gan, piemēram, lauka lauciņā, kas pieņem no 8 līdz 12 rakstzīmēm, šīs priekšrocības var šķist nenozīmīgas, tās kļūst acīmredzamākas, ja ir jāraksta testa gadījumi lauka lauciņiem, kas pieņem no 1 līdz 20 rakstzīmēm vai skaitļus no 1 līdz 1000 un tā tālāk.
Tātad, lai ietaupītu laiku un samazinātu testēšanas gadījumu skaitu funkcionālajā testēšanā, robežvērtību analīze aplūko vērtības:
- Minimālā vērtība
- Tieši zem minimālās vērtības
- Maksimālā vērtība
- Tieši virs maksimālās vērtības
Robežvērtību analīzes priekšrocības testēšanā
QA komandām ir vairākas pārliecinošas priekšrocības.
#1. Labāka programmatūras kvalitāte
Testētāju murgs ir kļūdas un defekti, kas netiek pamanīti. Tā kā ir jāpārbauda tik daudz lietu, daži defekti var izlaisties cauri plaisām. Robežpārbaudes pierāda to programmatūras jomu funkcionalitāti, kurās pastāv lielāka kļūdu iespējamība, un tādējādi tiek uzlabota programmatūras izveide un galu galā tiek radīta uzticamāka un stabilāka lietojumprogramma.
#2. Palielināts testu pārklājums
BVA programmatūras testēšanā ir ļoti noderīgs, jo tas palīdz samazināt testēšanas gadījumu skaitu, kas nepieciešams visaptverošam testa pārklājumam. Robežvērtību analīze nodrošina, ka svarīgas vērtības un katru vērtību var pārbaudīt rūpīgāk.
#3. Agrīna defektu atklāšana
Robežvērtību testēšana ir daļa no pieejas, kuras prioritāte ir agrīna defektu atklāšana. Kļūdu izķeršana agrīnā posmā nozīmē, ka izstrādes komandas var ietaupīt laiku un naudu, nemaz nerunājot par to, ka kļūdas ir daudz vieglāk novērst agrīnā izstrādes posmā.
#4. Efektivitāte
Robežvērtību testēšana ir ļoti efektīva, jo tā mazina prasību pēc daudziem testēšanas gadījumiem. Patiešām, samazinot ievades datus līdz visiem, izņemot tos, kas visdrīzāk var izraisīt problēmas, var ievērojami ietaupīt testēšanas komandu laiku gan rakstot, gan izpildot testēšanas gadījumus.
Robežvērtību analīzes trūkumi testēšanā
Protams, neviena programmatūras testēšanas metode nav nevainojama un bez ierobežojumiem. Lai gan robežvērtību analīzei ir daudz priekšrocību, darbam ar šo funkcionālās testēšanas metodi ir daži ierobežojumi.
#1. Šaura darbības joma
BVA darbojas uz derīgu datu ievadi robežām vai malām. Kopumā tā ignorē vidējās ievades, pamatojot, ka tās būs kārtībā, ja derīgas ir malu ievades. Tomēr nav izslēgts, ka dažas no šīm nepārbaudītajām vērtībām var radīt problēmas.
#2. Pārāk vienkāršots
Robežu analīze ir vienkāršošana. Lai gan šī pieeja ir piemērota testa gadījumu samazināšanai, tā ir mazāk piemērota ļoti sarežģītām jomām ar vairākām robežām, mijiedarbību vai atkarībām. Patiesi, tā var būt sarežģīta sarežģītu scenāriju risināšanā, kas nozīmē, ka jums ir jāizpēta citas metodes, lai nodrošinātu atbilstošu pārklājumu.
#3. Pieņēmumi
Jebkurš process, kas cenšas palielināt efektivitāti, riskē palaist garām konkrētas kļūdas. BVA koncentrējas uz robežām areāla malā. To darot, ir jāizdara pieņēmumi par citiem ievades datiem, kas atrodas abpus robežvērtībām. Testētājiem ir jāpanāk līdzsvars starp efektivitāti un pārklājumu, kas rada nelielu risku, ja tiek izmantota tikai robežpārbaude.
#4. paļaušanās uz precīzām specifikācijām un prasībām
Efektīva BVA ir atkarīga no specifikāciju un prasību dokumentācijas kvalitātes un precizitātes. Jebkuras nepārbaudītas kļūdas šajos dokumentos var ietekmēt robežvērtību testēšanu un novest pie tā, ka konkrētas kļūdas netiek pārbaudītas un atklātas līdz pat kritiskajiem, vēlākajiem izstrādes posmiem.
#5. Paļaušanās uz ekvivalences klasēm
Lai veiktu rūpīgu BVA, ir nepieciešamas labas zināšanas par ekvivalences klasēm. Lai precīzi iestatītu šīs klases, nepieciešama pieredze un zināma informācija par lietojumprogrammu.
Robežvērtību analīzes izaicinājumi
programmatūras testēšanā
Tagad jums jau vajadzētu būt diezgan skaidri zināmi robežpārbaudes plusi un mīnusi. Tomēr, ja vēlaties ieviest šo pieeju savā programmatūras testēšanā, jums jāapzinās arī dažādas problēmas, kas jums jāpārvar.
Šeit ir daži no izaicinājumiem, kas saistīti ar robežvērtību testēšanas ieviešanu programmatūras testēšanā.
#1. Robežu iezīmēšana
Robežu noteikšana vienkāršās sistēmās kompetentiem testētājiem nesagādā lielas grūtības. Tomēr ir arī sarežģītākas situācijas, piemēram:
- Sarežģītas ievades jomas ar dažādiem ievades mainīgajiem vai sarežģītām attiecībām.
- Nedokumentētas robežas, kas nav skaidri norādītas specifikācijas dokumentos.
- Dinamiskas robežas, kas mainās atkarībā no lietotāja darbībām vai citiem nosacījumiem.
#2. Neskaidras prasības
Slikti uzrakstīti vai neskaidri prasību dokumenti var kavēt robežvērtību noteikšanu. Skaidrība, pilnīgums un apņemšanās izstrādāt izsmeļošus specifikācijas dokumentus prasa laiku, taču galu galā tas atmaksāsies.
#3. Ekspertīze
Robežvērtību analīze var būt maldinoši sarežģīta. Patiešām, testēšanas komandām ir vajadzīgi darbinieki ar pieredzi un zināšanām šajā jomā, lai izprastu tehnikas smalkās nianses. Turklāt testētājiem ir nepieciešamas zināšanas par programmatūru vai vismaz uzticami specifikācijas dokumenti, uz kuriem var paļauties.
#4. Kļūdas
Robežanalīzes mērķis ir samazināt testēšanas gadījumu skaitu, kas nepieciešami, lai pārbaudītu derīgus un nederīgus ievades datus. Tomēr defektus, kas atrodas ārpus testēšanas diapazona, var viegli nepamanīt. Turklāt kļūdas “off-by-one” ir bieži sastopamas kodēšanas kļūdas, kas var rasties pie robežām vai to tuvumā. Testētājiem ir jāapzinās šie scenāriji un jāparedz testēšana.
#5. Testa gadījuma sprādziens
Ja tiek izmantotas vairākas ievades robežas, testa gadījumi drīz vien var kļūt sarežģīti un nekontrolējami vairoties. Šādās situācijās tiek zaudēts laiks un nauda, ko var ietaupīt, veicot robežpārbaudes, tādējādi mazinot risinājuma priekšrocības. Līdzīgu efektu var radīt arī sarežģītas programmatūras būves ar daudzām kombinācijām vai permutācijām.
#6. Analīzes rīku ierobežojumi
Programmatūras testēšanas automatizācijas rīki var palīdzēt komandām veikt atbilstošu robežvērtību analīzi. Tomēr pat labākajos gadījumos šie rīki prasa manuālu iejaukšanos gan testēšanā, gan testu izveidē. Šo situāciju var saasināt sarežģītās konstrukcijās, kurās mijiedarbojas vairāki mainīgie.
Dažādi robežvērtību veidi
testēšana programmatūras testēšanā
Grāmatā Programmatūras testēšana: Jorgensen un Byron DeVries apraksta četrus dažādus robežvērtību testēšanas veidus, kas ir:
1. Normālās robežvērtības pārbaude (NBVT)
- Testē derīgas ieejas vērtības ieejas apgabala malās.
- Izpēta minimālās un maksimālās vērtības kopā ar ievades datiem, kas atrodas tieši virs un zem robežas.
- Šis ir klasiskais robežvērtību analīzes veids.
2. Robusta robežvērtību testēšana (RBVT)
- Līdzīgi kā NBVT iepriekš, bet ietver arī nederīgus ievades datus.
- Testē pie un aiz robežām, bet ņem vērā arī nederīgus ievades datus.
- Koncentrējas uz kļūdu meklēšanu ekstrēmos vai negaidītos izvados.
3. Vājākā gadījuma robežvērtību testēšana (WBVT)
- Pārbauda programmatūras uzvedību, izmantojot galēji derīgas un nederīgas vērtības.
- Izpēta vērtības pie ievades apgabalu robežām un vērtības aiz šīm robežām.
- Mēģina izprast programmatūras uzvedību ekstrēmākos apstākļos.
4. Robust Worst-case Boundary Value Testing (RWBVT)
- Izmanto RBVT un WBVT kombināciju vispilnīgāka robežvērtību testēšanas veikšanai.
- Testē derīgas un nederīgas ieejas vērtības gan tipiskās, gan galējās robežās.
- Piedāvā vislabāko iespēju atrast ar robežām saistītus defektus.
Šīs pieejas atšķiras pēc visaptverošuma, no kurām vispilnīgākā ir RWBVT. Tomēr testētājiem ir jāapzinās, ka, lai atklātu šo papildu defektu atklāšanas līmeni, ir nepieciešams papildu ieguldījums gan laikā, gan pūlēs.
Ekvivalences dalījums un robežvērtība
analīze: līdzības un atšķirības
Ekvivalences sadalījumu un robežvērtību analīzi bieži izmanto kopā. Patiešām, abas metodes ir ļoti papildinošas. Tomēr tajās ir aprakstītas atšķirīgas pieejas datu ievades apstiprināšanai. Šeit ir apskatītas abu veidu līdzības un atšķirības.
1. Līdzības
Ekvivalences sadalījums un robežvērtību analīze ir lielisks pāris. Šeit ir dažas līdzības starp abām metodēm.
- Tās abas ir “melnās kastes” testēšanas metodes, kas nozīmē, ka galvenā uzmanība tiek pievērsta ievades un izvades datiem, kurus var testēt, iepriekš nepārzinot lietojumprogrammas pirmkodu.
- Tās abas ir daļa no rūpīgas pieejas ievades testēšanai.
- Abas palīdz testētājiem atrast līdzsvaru starp visaptverošu testu pārklājumu, nerakstot pārmērīgu testu gadījumu skaitu.
2. Atšķirības
Lai izpētītu atšķirības starp ekvivalences sadalījumu un robežvērtību analīzi, mums ir jāaplūko katra no tām atsevišķi.
Ekvivalences sadalīšana
- Sadala ievades datus ekvivalences klasēs, kuru rezultātā būtu jāsaņem līdzīgi sistēmas rezultāti.
- Izmanto vienu reprezentatīvu vērtību no katras klases un testē sistēmu ar šo vērtību.
- Tā attiecas uz derīgu un nederīgu ekvivalences klašu noteikšanu.
Robežvērtību analīze
- pārbauda vērtības uz ekvivalences klašu robežām vai malām.
- Testēt vairākas vērtības, tostarp minimālo un maksimālo vērtību, kā arī vērtības abās robežas pusēs.
- Meklē kļūdas, kas atrodamas uz robežu malām.
Ekvivalences sadalījuma un robežvērtību analīzes piemēri
Lai palīdzētu nostiprināt izpratni par ekvivalences dalījumu un robežvērtību analīzi, šeit ir daži piemēri.
Ekvivalences sadalīšanas piemērs:
Pieņemsim, ka jums ir ievades lodziņš automobiļu reģistrācijai. Parasti ASV automašīnu reģistrācijas numura zīmēm ir no 6 līdz 7 rakstzīmēm. Vienkāršības labad mēs neņemsim vērā speciālās numura zīmes.
Derīgie dati = 6 vai 7 zīmes uz plāksnēm
Nederīgi dati = plāksnes ar >6 vai >7 rakstzīmēm.
Robežvērtību analīzes piemērs:
Izmantojot to pašu numura plāksnes piemēru kā iepriekš, robežanalīzē tiks pārbaudīts.
Derīgi dati = Plāksnes ar 6 vai 7 zīmēm
Nederīgi dati = Plāksnes ar 5 vai 8 rakstzīmēm un dažos scenārijos – ar 4 un 9 rakstzīmēm.
Robežvērtību analīzes piemērs
Iespējams, ka vislabākais veids, kā pilnībā izprast šo jēdzienu, ir apskatīt vēl vienu vai divus robežvērtību analīzes piemērus.
Robežvērtību testēšanas piemērs Nr. 1
Lai detalizētāk izpētītu robežvērtību testēšanu, aplūkosim vecuma pārbaudes domēna piemēru.
Mums ir lodziņš, kurā lietotājs var ievadīt savu vecumu.
Robežvērtības ir:
- Minimālais vecums = 18 gadi
- Maksimālais vecums = 120 gadi
Robežpārbaudes gadījumu piemērs:
Kopumā ir seši testa gadījumi:
- 17, 18 un 19, kas ir attiecīgi zem minimālā, minimālā un virs minimālā līmeņa.
- 119, 18 un 19, kas ir attiecīgi zem maksimālās, maksimālās un virs maksimālās vērtības.
Robežvērtību testēšanas piemērs Nr. 2.
Nākamajā robežu testēšanas piemērā mēs izpētīsim vietni ar minimālās vērtības pirkuma atlaidi 20 % apmērā pasūtījumiem par 100 ASV dolāriem un vairāk.
Šajā piemērā, ja pirkuma summa pārsniedz 600 ASV dolāru, tiek piešķirta 25% atlaide. Robežvērtības tests attiecas uz ieguldījumiem no 100 līdz 600 ASV dolāriem.
Robežvērtības ir:
Minimālā atlaide = $100
Maksimālā atlaide = $600
Robežpārbaudes gadījumu piemērs:
Atkal mēs ģenerējam sešus testa gadījumus, kas ir:
- 99,99 $, 100 $ un 100,01 $, kas ir attiecīgi zem minimālās, minimālās un virs minimālās summas.
- 599,99 $, 600 $ un 600,01 $, kas ir attiecīgi zem maksimālās, maksimālās un virs maksimālās summas.
Vai programmatūras testēšanā robežpārbaudes ir precīzas?
Pētnieciskajā darbā ” Black Box Testing with Equivalence Partitioning and Boundary Value Analysis Methods” (Melnās kastes testēšana ar ekvivalences sadalījuma un robežvērtību analīzes metodēm) autori pēta, kā izmantot ekvivalences sadalījumu un robežvērtību analīzi, lai testētu Mataramas universitātes (Indonēzija) akadēmisko informācijas sistēmu.
Autori testiem izmantoja populāro atvērtā koda testēšanas rīku Selenium un veica kopumā 322 testēšanas gadījumus. Ekvivalences testēšana un robežvērtību analīze atklāja aptuveni 80 neveiksmīgus gadījumus, kā rezultātā derīgo un nederīgo testa rezultātu attiecība bija aptuveni 75:25. Kopumā līdzvērtības sadalījuma un BVA kombinācijas izmantošana programmatūras testēšanā ļāva veikt rūpīgu un noderīgu programmatūras testēšanu.
Labākie robežvērtību testēšanas rīki
Lai gan īpaši robežu testēšanas programmatūras rīki ir reti sastopami, ir daudz ievērojamu testēšanas rīku, kas spēj veikt šo darbu.
#3. TestCaseLab
TestCaseLab ir uz mākoņa balstīts testēšanas pārvaldības rīks, kas var palīdzēt BVA testēšanā. Programmatūra ļauj komandām izveidot un pārvaldīt testēšanas gadījumus, izmantojot intuitīvu un pievilcīgu lietotāja interfeisu. TestCaseLab ir elastīga un aprīkota ar daudzām funkcijām, taču tai ir arī ierobežojumi, tostarp ierobežotas pārskatu sniegšanas un pielāgošanas iespējas.
#2. Micro Focus UFT One
Micro Focus UFT One ir programmatūras testēšanas rīks, kas koncentrējas uz funkcionālo un regresijas testēšanu. Tā atbalsta dažādas platformas, ierīces un API testēšanu un piedāvā plašas integrācijas iespējas. Tā piedāvā gan uz kodiem, gan atslēgvārdiem balstītu testu izveidi un var palīdzēt komandām viegli izveidot robežvērtību analīzes testu gadījumus. Ir daži ierobežojumi, kas jāņem vērā, piemēram, stāvas mācīšanās līknes un jaudas trūkums, salīdzinot ar tādiem rīkiem kā ZAPTEST.
#1. ZAPTEST
ZAPTEST ir visaptverošs programmatūras automatizācijas testēšanas rīks ar uzlabotām RPA iespējām. Tā ir radīta, lai nodrošinātu testētājiem lietotājam draudzīgu un spēcīgu testēšanas automatizācijas rīku kopumu, kas var palīdzēt pārbaudīt programmatūru dažādos veidos, tostarp ar BVA programmatūras testēšanā.
Daži no pārliecinošākajiem ZAPTEST lietojuma gadījumiem, kas palīdz veikt robežvērtību analīzi, ir testēšanas gadījumu ģenerēšana, testēšanas datu apstrāde, testēšanas izpilde, kā arī pārskatu sagatavošana un analīze. Izmantojot virkni veidņu un augstu pielāgošanas līmeni apvienojumā ar testēšanas gadījumu izveidi bez koda, ZAPTEST lietotāji var ātri un viegli izveidot un pārvaldīt stabilus testēšanas gadījumus visu veidu robežu analīzei.
Papildus testa gadījumu ģenerēšanai un pārvaldībai ZAPTEST RPA iespējas var palīdzēt testēšanas komandām robežvērtību analīzes testēšanā arī citos veidos. Piemēram, varat automatizēt testa gadījumu izpildi, ģenerēt testa datus un izveidot jaudīgu integrāciju ar citiem testēšanas rīkiem.
Padomi robežvērtību testēšanai
- Apvienojiet robežvērtību analīzi ar ekvivalences sadalījumu, lai nodrošinātu, ka jūsu testa gadījumi aptver dažādus ievades scenārijus.
- Izmantojiet nederīgus ievades scenārijus (t. i., negatīvu testēšanu), lai pārliecinātos, kā programmatūra apstrādā kļūdas un negaidītas ievades.
- Ieguldiet laiku, lai noteiktu robežvērtības dažādiem datu tipiem, piemēram, tekstam, skaitļiem, logaritmiskiem u.c.
- Kritisko funkciju vai jomu, kurās ir lielāka kļūdu iespējamība, robežvērtību testēšanas prioritāte.
- Izmantojiet reālistiskus datus, kas atspoguļo to, kādus datus lietotāji ievadīs jūsu domēnos.
Nobeiguma domas
Robežvērtību analīze ir noderīga funkcionālās testēšanas metode. Ja ir ievades domēns, ir jāpārbauda, vai tas pieņem derīgus datus un sūta kļūdas ziņojumus, ja tiek saņemti nederīgi dati. Robežanalīzes testēšana palīdz efektīvi pārbaudīt šo funkcionalitāti, izveidojot tikai tos testēšanas gadījumus, kas nepieciešami visaptverošai testēšanai.
Robežpārbaude aplūko vērtības, kas atrodas pieņemamā diapazonā vai tā tuvumā, un pārbauda, kā sistēma reaģē uz šiem ievades datiem. Rezultāts ir daudz ietaupīta laika un samazināta piepūle, jo jums nav jāveido lieki testēšanas gadījumi. Strauji mainīgajā programmatūras izstrādes pasaulē, kur termiņi šķiet strauji un ātri, testēšanas komandām ir nepieciešama visa iespējamā palīdzība.