Piirväärtuste analüüs – tavaliselt lühendatult BVA – on tavaline musta kasti testimise meetod. Lähenemisviisiga testitakse tarkvara defekte, kontrollides sisendväärtusi lubatud vahemike piirides.
Selles artiklis uuritakse, mis on piirianalüüsi testimine, miks see on kasulik ning uuritakse mõningaid erinevaid lähenemisviise, tehnikaid ja erinevaid piiritestimise vahendeid.
Mis on piirväärtuste analüüs tarkvara testimisel?
Piirväärtuste analüüs on üks funktsionaalse testimise liike. Seda tüüpi testimine on seotud selle kontrollimisega, et tarkvara iga funktsioon vastab nõuetele ja spetsifikatsioonidele. Piiritustestimise puhul hõlmab see funktsionaalsus seda, kuidas tarkvara käitleb erinevaid sisendeid.
BVA on tarkvara testimise meetod, millega kontrollitakse, kuidas tarkvara reageerib sisenditele sisendpiiridel või nende piiride ümber. Sisuliselt on igal sisendil lubatud vahemikud. Näiteks võib teil olla sisselogimise jaoks paroolikast, mis aktsepteerib paroole vahemikus 8 kuni 12 tähemärki. Piirtestimine testib paroole, mille tähemärgipikkus on 7, 8, 12 ja 13.
Mõte on selles, et piiride piirid, st 7, 8, 12 ja 13, tekitavad suurema tõenäosusega vigu kui piiride sees olevad numbrid, näiteks 9, 10 ja 11. Kuigi selle eelised võivad tunduda marginaalsed, kui tegemist on näiteks väljaga, mis võtab vastu 8 kuni 12 märki, muutuvad need ilmsemaks, kui on vaja kirjutada testjuhtumeid väljade jaoks, mis võtavad vastu 1 kuni 20 märki või numbreid vahemikus 1 kuni 1000 ja nii edasi.
Seega, et säästa aega ja vähendada testjuhtumite arvu funktsionaalses testimises, vaadeldakse piirväärtuste analüüsis väärtusi:
- Minimaalsel väärtusel
- Otse alla miinimumväärtuse
- Maksimaalse väärtuse korral
- Otse üle maksimaalse väärtuse
Piirväärtusanalüüsi eelised testimisel
Piiritletud testimisel on kvaliteedi tagamise meeskonnale mitmeid kaalukaid eeliseid.
#1. Parem tarkvara kvaliteet
Testijate õudusunenägu on vead ja defektid, mis jäävad märkamatuks. Kuna nii palju asju tuleb kontrollida, võivad mõned vead jääda märkamatuks. Piirtestimine tõestab tarkvara nende valdkondade funktsionaalsust, mis tõenäoliselt sisaldavad vigu, mis viib parema tarkvara koostamise ja lõppkokkuvõttes usaldusväärsema ja stabiilsema rakenduse valmimiseni.
#2. Suurenenud testide katvus
BVA on tarkvara testimisel nii kasulik, sest see aitab vähendada testjuhtumite arvu, mida on vaja põhjaliku testimise katmiseks. Piirväärtuste analüüs tagab, et olulisi väärtusi ja iga väärtust saab põhjalikumalt testida.
#3. Varajane defektide tuvastamine
Piirväärtuste testimine on osa lähenemisviisist, mis seab esikohale defektide varajase tuvastamise. Vigade varajane avastamine tähendab, et arendusmeeskonnad saavad säästa aega ja raha, rääkimata sellest, et vigu on palju lihtsam parandada arenduse varajases etapis.
#4. Efektiivsus
Piirväärtuste testimine on väga tõhus, sest see vähendab paljude testjuhtumite vajadust. Tõepoolest, kui vähendada sisendite hulka ainult kõige tõenäolisemalt probleeme põhjustavaid sisendeid, võib testimismeeskond oluliselt säästa aega nii testjuhtumite kirjutamisel kui ka nende täitmisel.
Piirväärtusanalüüsi puudused testimisel
Loomulikult ei ole ükski tarkvara testimise meetod täiuslik ega ilma piiranguteta. Kuigi piirväärtusanalüüsil on palju eeliseid, on selle funktsionaalse testimise tehnikaga töötamisel mõningaid piiranguid.
#1. Kitsas reguleerimisala
BVA töötab kehtivate andmesisendite piiridel või servadel. Üldiselt ignoreerib ta keskmised sisendid, põhjendades, et need on korras, kui servade kehtivad sisendid on. Siiski ei ole pretsedentideta, et mõnel neist testimata väärtustest võib olla probleeme.
#2. Liiga lihtsustatud
Piirianalüüs tähendab asjade lihtsustamist. Kuigi see toimib testjuhtumite vähendamiseks, on see lähenemisviis vähem sobiv väga keeruliste valdkondade puhul, kus on mitmeid piire, vastastikmõjusid või sõltuvusi. Tõepoolest, see võib olla keeruline keeruliste stsenaariumide käsitlemisel, mis tähendab, et piisava katvuse saavutamiseks peate uurima teisi meetodeid.
#3. Eeldused
Iga protsess, mis püüab suurendada tõhusust, võib jätta teatud vigu kasutamata. BVA keskendub piiridele vahemiku servas. Seejuures peab ta tegema eeldusi teiste sisendite kohta, mis jäävad kummalegi poole piirväärtustest. Testijad peavad leidma tasakaalu tõhususe ja katvuse vahel, mis kujutab endast väikest riski, kui kasutatakse ainult piirtestimist.
#4. Toetus täpsetele spetsifikatsioonidele ja nõuetele
Tõhus BVA sõltub spetsifikatsioonide ja nõuete dokumentatsiooni kvaliteedist ja täpsusest. Kõik kontrollimata vead nendes dokumentides võivad kanduda piirväärtuste testimisse ja viia konkreetsete vigade kontrollimata ja avastamata jätmiseni kuni arengu kriitiliste hiliste etappideni.
#5. Tuginemine ekvivalentsusklassidele
Põhjaliku BVA teostamine nõuab tugevaid teadmisi ekvivalentsusklassidest. Nende klasside täpne määramine nõuab kogemust ja mõningast taustteavet rakenduse kohta.
Piirväärtusanalüüsi väljakutsed
tarkvara testimine
Nüüdseks peaks teil olema üsna selge, millised on piiritesteerimise plussid ja miinused. Kui aga soovite seda lähenemisviisi rakendada oma tarkvara testimisel, peate olema teadlik erinevatest väljakutsetest, mida peate ületama.
Siin on mõned probleemid, mis on seotud piirväärtuste testimise rakendamisega tarkvara testimisel.
#1. Piiride kindlaksmääramine
Piiride tuvastamine lihtsates süsteemides esitab pädevatele testijatele vähe väljakutseid. Siiski on ka keerulisemaid olukordi, näiteks:
- Mitmesuguste sisendmuutujatega või keeruliste suhetega keerulised sisendvaldkonnad
- dokumenteerimata piirid, mida ei ole selgelt kirjeldatud spetsifitseerimisdokumentides.
- Dünaamilised piirid, mis muutuvad vastavalt kasutaja tegevusele või muudele tingimustele.
#2. Mitmetähenduslikud nõuded
Halvasti kirjutatud või ebaselged nõudedokumendid võivad takistada piirväärtuste tuvastamist. Selgus, täielikkus ja pühendumine ammendavatele spetsifikatsioonidokumentidele võtavad aega, kuid need tasuvad end lõpuks ära.
#3. Ekspertiis
Piirväärtuste analüüs võib olla petlikult keeruline. Testimisrühmad vajavad tõepoolest kogemusi ja teadmisi selles valdkonnas omavat personali, et mõista tehnika peeneid nüansse. Veelgi enam, testijad peavad omama mõningaid teadmisi tarkvarast või vähemalt usaldusväärseid spetsifikatsioonidokumente, millele toetuda.
#4. Vead
Piirianalüüsi eesmärk on vähendada kehtivate ja kehtetute sisendite kontrollimiseks vajalike testjuhtumite arvu. Siiski võivad puudused, mis jäävad väljapoole testimisulatust, jääda kergesti märkamatuks. Lisaks sellele on “off-by-one” vead tavalised kodeerimisvead, mis võivad esineda piiridel või nende lähedal. Testijad peavad olema teadlikud nendest stsenaariumidest ja tegema testimiseks ettevalmistusi.
#5. Katsejuhtumi plahvatus
Mitmete sisendpiiride puhul võivad testjuhtumid kiiresti muutuda keeruliseks ja kontrollimatult mitmekordistuda. Sellistes olukordades kaotatakse aeg ja raha, mida saate piirtestimise abil kokku hoida, ning see õõnestab lahenduse eeliseid. Sarnane mõju võib olla ka keerulisel tarkvara koostamisel, kus on palju kombinatsioone või permutatsioone.
#6. Analüüsivahendi piirangud
Tarkvara testimise automatiseerimise tööriistad võivad aidata meeskondadel teostada piisavat piirväärtuste analüüsi. Kuid isegi parimatel juhtudel nõuavad need tööriistad nii testimiseks kui ka testide loomiseks mõningast käsitsi sekkumist. See olukord võib süveneda mitme muutuja koostoimega keerukate ehitiste puhul.
Erinevad piirväärtuse tüübid
testimine tarkvara testimisel
Raamatus Tarkvara testimine: A Craftsman’s Approach kirjeldavad autorid Paul C. Jorgensen ja Byron DeVries nelja erinevat tüüpi piirväärtuste testimist, mis on järgmised:
1. Normaalse piirväärtuse testimine (NBVT)
- Testib kehtivaid sisendväärtusi sisenddomeeni servades.
- Uurib minimaalseid ja maksimaalseid väärtusi koos sisenditega, mis asuvad vahetult üle ja alla piiri.
- See on klassikaline piirväärtusanalüüs.
2. Robustne piirväärtuste testimine (RBVT)
- Sarnaselt NBVT-le eespool, kuid sisaldab ka kehtetuid sisendeid.
- Testib piiridel ja vahetult pärast neid, kuid arvestab ka vigaseid sisendeid.
- Keskendub äärmuslikest või ootamatutest väljunditest tulenevate vigade leidmisele
3. Halvima juhtumi piirväärtuse testimine (WBVT)
- Kontrollib tarkvara käitumist, kasutades äärmuslikke kehtivaid ja kehtetuid väärtusi.
- Uurib väärtusi sisenddomeenide servas ja väärtusi väljaspool neid piire.
- Püüab mõista tarkvara käitumist äärmuslikumates tingimustes.
4. Robustne halvima juhtumi piirväärtuse testimine (RWBVT)
- Kasutab RBVT ja WBVT segu kõige põhjalikumaks piirväärtuste testimiseks.
- Testib kehtivaid ja kehtetuid sisendväärtusi nii tüüpilistel kui ka äärmuslikel piiridel.
- Pakub parima võimaluse leida piiridega seotud defektid.
Need lähenemisviisid erinevad üksteisest põhjalikkuse poolest, kusjuures RWBVT on kõige põhjalikum. Siiski peavad testijad tunnistama, et selle täiendava defektide avastamise taseme avamiseks on vaja teha täiendavaid investeeringuid nii ajas kui ka jõupingutustes.
Ekvivalentsuse jaotamine ja piirväärtus
analüüs: sarnasused ja erinevused
Ekvivalentsusjaotust ja piirväärtusanalüüsi kasutatakse sageli koos. Need kaks tehnikat täiendavad üksteist väga hästi. Siiski kirjeldavad nad erinevaid lähenemisviise andmete sisestamise valideerimiseks. Järgnevalt vaatleme nende kahe sarnasusi ja erinevusi.
1. Sarnasused
Ekvivalentsuse partitsioneerimine ja piirväärtusanalüüs moodustavad suurepärase paari. Siin on mõned sarnasused mõlema tehnika vahel.
- Mõlemad on musta kasti testimise meetodid, mis tähendab, et keskendutakse sisenditele ja väljunditele, mida saab testida ilma rakenduse lähtekoodi a priori tundmata.
- Mõlemad on osa põhjalikust lähenemisviisist sisendite testimisele.
- Mõlemad aitavad testijatel leida tasakaalu põhjaliku testimise ulatuse vahel, ilma et nad kirjutaksid liigselt palju testjuhtumeid.
2. Erinevused
Selleks, et uurida erinevusi ekvivalentsuse partitsioneerimise ja piirväärtuste analüüsi vahel, peame vaatlema mõlemat eraldi.
Ekvivalentsuse jaotamine
- Jagab sisendandmed võrdväärsusklassidesse, mis peaksid andma süsteemi väljundid sarnaseks.
- Kasutab igast klassist ühte esinduslikku väärtust ja testib süsteemi selle väärtusega.
- See on seotud kehtivate ja kehtetute ekvivalentsusklasside tuvastamisega.
Piirväärtuste analüüs
- Testib väärtusi ekvivalentsusklasside piiridel või servadel.
- Testida mitmeid väärtusi, sealhulgas miinimum, maksimum ja väärtused mõlemal pool piiri.
- Otsib vigu, mis asuvad piiride servas
Ekvivalentsuse partitsioneerimine ja piirväärtusanalüüsi näited
Selleks, et aidata kinnistada teie arusaamist ekvivalentsusjaotusest ja piirväärtusanalüüsist, on siin mõned näited.
Ekvivalentsuse jaotamise näide:
Oletame, et teil on autode registreerimise sisestuskast. Tavaliselt on USA auto registreerimismärkidel 6 kuni seitse märki. Lihtsuse huvides jätame erimärkide numbrimärgid kõrvale.
Kehtivad andmed = plaadid 6 või 7 tähemärki
Valed andmed = numbrimärgid, millel on >6 või >7 märki.
Piirväärtusanalüüsi näide:
Kasutades sama numbrikilbi näidet nagu eespool, testitakse piirianalüüsiga
Kehtivad andmed = 6 või 7 tähemärgiga numbrimärgid
Väärad andmed = 5 või 8 tähemärgiga ning mõnel juhul 4 ja 9 tähemärgiga numbrimärgid.
Piirväärtuse analüüsi näide
Võib-olla on parim viis selle mõiste täielikuks mõistmiseks vaadata veel üht või teist piirväärtusanalüüsi näidet.
Piirväärtuse testimise näide nr 1
Et uurida piirväärtuste testimist üksikasjalikumalt, vaatleme vanuse kontrollimise valdkonna näidet.
Meil on kast, kuhu kasutaja saab sisestada oma vanuse.
Piirväärtused on:
- Minimaalne vanus = 18 aastat
- Maksimaalne vanus = 120
Piirikatsete näide:
Kokku on kuus testjuhtumit:
- 17, 18 ja 19, mis on vastavalt alla miinimumi, alla miinimumi ja üle miinimumi.
- 119, 18 ja 19, mis on vastavalt alla maksimumi, maksimumi ja üle maksimumi.
Piirväärtuse testimise näide nr 2.
Meie järgmises piiritestimise näites uurime veebilehte, mille minimaalne ostu allahindlus on 20% tellimuste puhul, mille väärtus on 100 dollarit ja rohkem.
Selles näites annab üle 600 dollari suurune ost 25% allahindlust. Piirväärtuse test käsitleb sisendeid vahemikus 100-600 dollarit.
Piirväärtused on:
Minimaalne abikõlblik allahindlus = $100
Maksimaalne abikõlblik allahindlus = 600 dollarit
Piirikatsete näide:
Jällegi genereerime kokku kuus testjuhtumit, mis on järgmised:
- $99.99, $100 ja $100.01, mis on vastavalt alla miinimumi, üle miinimumi ja üle miinimumi.
- $599,99, $600 ja $600,01, mis on vastavalt alla maksimumi, üle maksimumi ja üle maksimumi.
Kas piiritesteerimine tarkvara testimisel on täpne?
Uurimuses ” Black Box Testing with Equivalence Partitioning and Boundary Value Analysis Methods” uurivad autorid, kuidas kasutada samaväärsuse partitsioneerimist ja piirväärtuste analüüsi Indoneesia Matarami ülikooli akadeemilise infosüsteemi testimiseks.
Autorid kasutasid testide tegemiseks populaarset avatud lähtekoodiga testimisvahendit Selenium ja viisid läbi kokku 322 testjuhtumit. Ekvivalentsuse testimine ja piirväärtuste analüüs tõi esile umbes 80 ebaõnnestunud juhtumit, mis andis tulemuseks umbes 75:25 kehtivate ja kehtetute testitulemuste suhet. Kokkuvõttes viis tarkvara testimisel ekvivalentsuse partitsioneerimise ja BVA kombinatsiooni kasutamine tarkvara põhjaliku ja kasuliku testimiseni.
Parimad piirväärtuse testimise vahendid
Ehkki spetsiaalsed piiritesti tarkvara tööriistad on haruldased, on palju märkimisväärseid testimisvahendeid, mis on võimelised seda tööd tegema.
#3. TestCaseLab
TestCaseLab on pilvepõhine testide haldamise vahend, mis aitab BVA testimisel. Tarkvara võimaldab meeskondadel luua ja hallata testjuhtumeid oma intuitiivse ja atraktiivse välimusega kasutajaliidesest. TestCaseLab on paindlik ja täis funktsioone, kuid sellel on omad piirangud, sealhulgas piiratud aruandlus- ja kohandamisvõimalused.
#2. Micro Focus UFT One
Micro Focus UFT One on tarkvara testimise vahend, mis keskendub funktsionaalsele ja regressioonitestimisele. See toetab erinevaid platvorme, seadmeid ja API testimist ning pakub tugevaid integratsioonivõimalusi. See pakub nii koodivaba kui ka märksõnapõhist testide loomist ning aitab meeskondadel hõlpsasti luua piirväärtuste analüüsi testjuhtumeid. On mõned piirangud, millega peate arvestama, näiteks järsk õppimiskõver ja vähene võimsus võrreldes selliste tööriistadega nagu ZAPTEST.
#1. ZAPTEST
ZAPTEST on põhjalik tarkvara automatiseerimise testimise vahend, millel on täiustatud RPA-funktsioonid. See on loodud selleks, et pakkuda testijatele kasutajasõbralikku ja töökindlat testide automatiseerimise tööriistade komplekti, mis aitab tarkvara kontrollida mitmel viisil, sealhulgas BVAga tarkvara testimisel.
ZAPTESTi mõned kõige kaalukamad kasutusviisid piirväärtuste analüüsi abistamiseks hõlmavad testjuhtumite genereerimist, testandmete käitlemist, testide teostamist ning aruandlust ja analüüsi. Tänu mitmesugustele mallidele ja suurele kohandamise tasemele koos koodita testjuhtumite loomisega saavad ZAPTESTi kasutajad kiiresti ja lihtsalt luua ja hallata jõulisi testjuhtumeid igat tüüpi piiranalüüside jaoks.
Lisaks testjuhtumite genereerimisele ja haldamisele võivad ZAPTESTi RPA-funktsioonid aidata testimismeeskondi piirväärtuste analüüsi testimisel ka muul viisil. Näiteks saate automatiseerida testjuhtumite täitmist, genereerida testandmeid ja luua võimsaid integratsioone teiste testimisvahenditega.
Näpunäiteid piirväärtuste testimiseks
- Kombineerige piirväärtuste analüüsi ja ekvivalentsuse partitsioneerimist, et tagada oma testjuhtumite katmine erinevate sisendstsenaariumide puhul.
- Kasutage ebaõigete sisendite stsenaariume (st negatiivset testimist), et tagada, et te kontrolliksite, kuidas tarkvara käitub vigade ja ootamatute sisendite korral.
- Investeeri aega erinevate andmetüüpide, näiteks teksti, numbrite, boole’i väärtuste jne piirväärtuste tuvastamisse.
- Eelistage piirväärtuste testimist kriitiliste funktsioonide või valdkondade puhul, kus vigade esinemise tõenäosus on suurem.
- Kasutage realistlikke andmeid, mis esindavad andmeid, mida teie kasutajad sisestavad teie domeenidesse.
Lõplikud mõtted
Piirväärtusanalüüs on kasulik funktsionaalse testimise meetod. Kui teil on sisenddomeen, peate kontrollima, et see aktsepteerib kehtivaid andmeid ja saadab vigade korral veateateid. Piirianalüüsi testimine aitab seda funktsionaalsust tõhusalt kontrollida, koostades ainult terviklikuks testimiseks vajalikud testjuhtumid.
Piirtestimise käigus vaadeldakse väärtusi vastuvõetavas vahemikus või selle ümbruses ja kontrollitakse, kuidas süsteem reageerib nendele sisenditele. Tulemuseks on palju kokkuhoitud aega ja vähendatud töömaht, sest te ei pea koostama üleliigseid testjuhtumeid. Kiiresti arenevas tarkvaraarenduse maailmas, kus tähtajad tunduvad olevat tihedad ja kiired, vajavad testimismeeskonnad kogu abi, mida nad saavad.