Grenseverdianalyse – vanligvis forkortet til BVA – er en vanlig svart boks-testteknikk . Tilnærmingen tester for programvaredefekter ved å verifisere inngangsverdier på grensene for tillatte områder.
Denne artikkelen vil utforske hva grenseanalysetesting er, hvorfor det er nyttig, og utforske noen forskjellige tilnærminger, teknikker og ulike grensetestingsverktøy.
Hva er grenseverdianalyse i programvaretesting?
Grenseverdianalyse er en type funksjonell testing . Den typen testing er opptatt av å verifisere at hver funksjon i programvaren oppfyller krav og spesifikasjoner. Ved grensetesting inkluderer denne funksjonaliteten hvordan programvaren håndterer ulike innganger.
BVA er en programvaretestingsteknikk som validerer hvordan programvare vil reagere på innganger ved eller rundt kanten av inngangsgrenser. I hovedsak har hver inngang tillatte områder. For eksempel kan du ha en passordboks for en pålogging som godtar passord på mellom 8 og 12 tegn. Grensetesting vil teste for passord med tegnlengder på 7, 8, 12 og 13.
Tanken her er at grensene for grensene, dvs. 7, 8, 12 og 13, er mer sannsynlig å kaste feil enn tall innenfor grensene, for eksempel 9, 10 og 11. Selv om fordelene her kan virke marginale i et eksempel på en feltboks som aksepterer mellom 8 og 12 tegn, blir de mer åpenbare når du trenger å skrive testsaker for feltbokser som tar mellom 1 og 20 tegn eller tall mellom 1 og 1000, og så videre.
Så, for å spare tid og redusere antall testtilfeller innen funksjonell testing, ser grenseverdianalyse på verdier:
- Ved minimumsverdi
- Rett under minimumsverdien
- På maksimal verdi
- Rett over maksimumsverdien
Fordeler med grenseverdianalyse i testing
Grensetesting har flere overbevisende fordeler for QA-team.
#1. Bedre programvarekvalitet
Marerittscenarioet for testere er feil og defekter som ikke blir lagt merke til. Med så mange ting å verifisere, kan noen defekter slippe gjennom sprekkene. Grensetesting beviser funksjonaliteten til områder i programvaren som er mer sannsynlig å inneholde feil, noe som fører til bedre programvarebygging og til slutt en mer pålitelig, stabil applikasjon.
#2. Økt testdekning
BVA i programvaretesting er så nyttig fordi det bidrar til å kutte ned på antall testtilfeller som kreves for omfattende testdekning. Grenseverdianalyse sikrer at viktige verdier og at hver verdi kan testes mer grundig.
#3. Tidlig oppdagelse av feil
Grenseverditesting er en del av en tilnærming som prioriterer tidlig oppdagelse av feil. Å fange feil tidlig i prosessen betyr at utviklingsteam kan spare tid og penger uten engang å nevne at det er langt lettere å rette opp feil i de tidlige stadiene av utviklingen.
#4. Effektivitet
Grenseverditesting er supereffektivt fordi det reduserer kravet til mange testtilfeller. Faktisk, å redusere inndata ned til alle unntatt de mest sannsynlige for å forårsake problemer, kan faktisk spare testteamene for tid både på å skrive og utføre testsaker.
Ulemper med grenseverdianalyse i testing
Selvfølgelig er ingen programvaretestteknikk perfekt eller uten begrensninger. Selv om grenseverdianalyse har mange fordeler, er det noen begrensninger for å jobbe med denne funksjonelle testteknikken.
#1. Smalt omfang
BVA jobber på grensene eller kantene til gyldige datainndata. Generelt ignorerer den de midterste inngangene ved å resonnere at de vil være fine hvis de gyldige inngangene på kantene er det. Det er imidlertid ikke uten presedens at noen av disse verdiene som ikke er testet kan ha problemer.
#2. Altfor forenklet
Grenseanalyse handler om å gjøre ting enkelt. Selv om dette fungerer for å redusere testtilfeller, er tilnærmingen mindre egnet for svært komplekse domener med flere grenser, interaksjoner eller avhengigheter. Det kan faktisk slite med å håndtere komplekse scenarier, noe som betyr at du må utforske andre teknikker for tilstrekkelig dekning.
#3. Antagelser
Enhver prosess som forsøker å øke effektiviteten risikerer å gå glipp av spesielle feil. BVA fokuserer på grenser i utkanten av en rekkevidde. Ved å gjøre det må den gjøre antagelser om andre innganger som faller på hver side av grenseverdier. Testere må finne en balanse mellom effektivitet og dekning, noe som utgjør en liten risiko hvis grensetesting brukes alene.
#4. Stol på nøyaktige spesifikasjoner og krav
Effektiv BVA er avhengig av kvaliteten og nøyaktigheten av spesifikasjoner og kravdokumentasjon. Eventuelle ukontrollerte feil i disse dokumentene kan blø inn i grenseverditesting og føre til at spesifikke feil blir ukontrollerte og uoppdagede frem til de kritiske sene utviklingsstadiene.
#5. Avhengighet av ekvivalensklasser
Å utføre grundig BVA krever en sterk arbeidskunnskap om ekvivalensklasser. Å sette disse klassene nøyaktig krever erfaring og litt bakgrunnsinformasjon om applikasjonen.
Utfordringer ved grenseverdianalyse
i programvaretesting
Nå bør du være ganske tydelig på fordeler og ulemper med grensetesting. Men hvis du ønsker å implementere tilnærmingen i din egen programvaretesting, må du også være klar over de ulike utfordringene du må overvinne.
Her er noen av utfordringene med å implementere grenseverditesting i programvaretesting.
#1. Skissere grenser
Å identifisere grenser innenfor enkle systemer byr på små utfordringer for kompetente testere. Imidlertid er det mer komplekse situasjoner, for eksempel:
- Komplekse inngangsdomener med forskjellige inngangsvariabler eller intrikate relasjoner
- Udokumenterte grenser som ikke er tydelig skissert i spesifikasjonsdokumenter
- Dynamiske grenser som endres basert på brukerhandlinger eller andre forhold
#2. Tvetydige krav
Dårlig skrevne eller uklare kravdokumenter kan hindre identifisering av grenseverdier. Klarhet, fullstendighet og en forpliktelse til uttømmende spesifikasjonsdokumenter tar tid, men de vil lønne seg til slutt.
#3. Ekspertise
Grenseverdianalyse kan være villedende kompleks. Faktisk trenger testteam personell med erfaring og kunnskap om feltet for å forstå de subtile nyansene i teknikken. Dessuten må testerne ha med seg litt kunnskap om programvaren, eller i det minste ha pålitelige spesifikasjonsdokumenter å falle tilbake på.
#4. Feil
Grenseanalyse søker å fjerne antallet testtilfeller som kreves for å bekrefte gyldige og ugyldige inndata. Imidlertid kan feil som ligger utenfor testområdet lett gå ubemerket hen. Dessuten er «av-for-en»-feil vanlige kodefeil som kan oppstå ved eller nær grensene. Testere må være bevisst disse scenariene og legge til rette for testing.
#5. Eksplosjon i prøvesak
Med flere inngangsgrenser på spill, kan testsaker snart bli komplekse og formere seg ute av kontroll. I disse situasjonene går tiden og pengene du kan spare med grensetesting tapt, noe som undergraver fordelene med løsningen. Komplekse programvarebygg med mange kombinasjoner eller permutasjoner kan ha en lignende effekt.
#6. Begrensninger i analyseverktøyet
Programvaretestautomatiseringsverktøy kan hjelpe team med å utføre tilstrekkelig grenseverdianalyse. Men selv i de beste tilfellene krever disse verktøyene noe manuell intervensjon for både testing og testoppretting. Denne situasjonen kan forverres for komplekse bygg med multivariable interaksjoner.
Ulike typer grenseverdier
testing i programvaretesting
I boken Software Testing: A Craftsman’s Approach beskriver forfatterne Paul C. Jorgensen og Byron DeVries fire forskjellige typer grenseverditesting, som er:
1. Normal grenseverditesting (NBVT)
- Tester gyldige inngangsverdier ved kantene av inngangsdomenet
- Utforsker minimums- og maksimumsverdier sammen med innganger like over og under grensen
- Dette er den klassiske typen grenseverdianalyse
2. Robust grenseverditesting (RBVT)
- Ligner på NBVT ovenfor, men inkluderer også ugyldige innganger
- Tester på og like utenfor grenser, men står også for ugyldige innganger
- Fokuserer på å finne feil fra ekstreme eller uventede utdata
3. Worst-case grenseverditesting (WBVT)
- Verifiserer programvareatferd ved å bruke ekstreme gyldige og ugyldige verdier
- Utforsker verdier på kanten av inngangsdomener og verdier utenfor disse grensene
- Søker å forstå programvareatferd under mer ekstreme forhold
4. Robust worst-case grenseverditesting (RWBVT)
- Bruker en blanding av RBVT og WBVT for den mest grundige grenseverditestingen
- Tester gyldige og ugyldige inngangsverdier ved både typiske og ekstreme grenser
- Gir den beste muligheten til å finne grenserelaterte feil
Disse tilnærmingene er forskjellige i omfang, med RWBVT som den mest grundige. Testerne må imidlertid erkjenne den ekstra investeringen i både tid og krefter som kreves for å låse opp dette ekstra nivået av feiloppdagelse.
Ekvivalensoppdeling og grenseverdi
analyse: likheter og forskjeller
Ekvivalenspartisjonering og grenseverdianalyse brukes ofte sammen med hverandre. Faktisk er de to teknikkene svært komplementære. Imidlertid beskriver de distinkte tilnærminger til å validere datainndata. Her er en titt på likhetene og forskjellene mellom de to.
1. Likheter
Ekvivalenspartisjonering og grenseverdianalyse utgjør et flott par. Her er noen av likhetene mellom begge teknikkene.
- De er begge svarte boks-testteknikker , som betyr fokus på innganger og utganger, som kan testes uten på forhånd kunnskap om applikasjonens kildekode.
- De er begge en del av en grundig tilnærming til å teste input
- De hjelper begge testere med å finne en balanse mellom omfattende testdekning uten å skrive en overdreven mengde testsaker.
2. Forskjeller
For å utforske forskjellene mellom ekvivalenspartisjonering og grenseverdianalyse, må vi se på hver isolert.
Ekvivalenspartisjonering
- Deler inn inndata i ekvivalensklasser som skal resultere i lignende systemutganger
- Bruker en enkelt representativ verdi fra hver klasse og tester systemet med den verdien
- Det er opptatt av å identifisere gyldige og ugyldige ekvivalensklasser
Grenseverdianalyse
- Tester verdiene ved grensene eller kantene til ekvivalensklasser
- Test en rekke verdier, inkludert minimum, maksimum og verdier på hver side av grensen
- Ser etter feil som finnes på kanten av grenser
Eksempler på ekvivalenspartisjonering og grenseverdianalyse
For å sementere din forståelse av ekvivalenspartisjonering og grenseverdianalyse, er her noen eksempler.
Ekvivalenspartisjoneringseksempel:
La oss si at du har en inndataboks for bilregistreringer. Vanligvis har amerikanske bilregistreringsskilt mellom 6 og syv tegn. For enkelhets skyld gir vi rabatt på spesialnummerskilt.
Gyldige data = Plater 6 eller 7 tegn
Ugyldige data = Plater med> 6 eller> 7 tegn.
Eksempel på grenseverdianalyse:
Ved å bruke samme nummerskilteksempel som ovenfor, vil grenseanalysen teste
Gyldige data = Plater med 6 eller 7 tegn
Ugyldige data = Plater med 5 eller 8 tegn, og i noen scenarier, 4 og 9 tegn
Eksempel på grenseverdianalyse
Kanskje den beste måten å forstå konseptet fullt ut er ved å se på et annet eksempel på grenseverdianalyse eller to.
Eksempel #1 på grenseverditesting
For å utforske grenseverditesting mer detaljert, la oss se på et eksempel på et aldersbekreftelsesdomene.
Vi har en boks hvor brukeren kan skrive inn sin alder.
Grenseverdier er:
- Minimumsalder = 18 år
- Maksimal alder = 120
Eksempel på grenseprøvetilfeller:
Det er totalt seks testtilfeller:
- 17, 18 og 19, som er henholdsvis under minimum, minimum og over minimum
- 119, 18 og 19, som er under henholdsvis maksimum, maksimum og over maksimum
Eksempel #2 på grenseverditesting.
I vårt neste eksempel på grensetesting vil vi utforske et nettsted med en kjøpsrabatt på minimum 20 % på bestillinger på $100 og mer.
I dette eksemplet fører et kjøp på over $600 til 25 % rabatt. Grenseverditesten vil håndtere innganger mellom $100 og $600.
Grenseverdier er:
Minste kvalifiserende rabatt = $100
Maksimal kvalifiserende rabatt = $600
Eksempel på grenseprøvetilfeller:
Igjen genererer vi totalt seks testtilfeller, som er:
- $99,99, $100 og $100,01, som er under henholdsvis minimum, minimum og over minimum
- $599,99, $600 og $600,01, som er under henholdsvis maksimum, maksimum og over maksimum
Er grensetesting i programvaretesting nøyaktig?
I forskningsoppgaven Black Box Testing with Equivalence Partitioning and Boundary Value Analysis Methods utforsker forfatterne bruk av ekvivalenspartisjonering og grenseverdianalyse for å teste et akademisk informasjonssystem for Mataram University i Indonesia.
Forfatterne brukte det populære åpen kildekode-testverktøyet Selenium for sine tester og kjørte totalt 322 testcaser. Ekvivalenstesting og grenseverdianalyse avdekket rundt 80 mislykkede tilfeller, noe som førte til et forhold på omtrent 75:25 mellom gyldige og ugyldige testresultater. Totalt sett førte bruk av en kombinasjon av ekvivalenspartisjonering og BVA i programvaretesting til grundig og nyttig testing av programvaren.
Beste grenseverditestingsverktøy
Mens dedikerte programvareverktøy for grensetesting er sjeldne, er det mange bemerkelsesverdige testverktøy som er i stand til jobben.
#3. TestCaseLab
TestCaseLab er et skybasert testadministrasjonsverktøy som kan hjelpe med BVA-testing. Programvaren lar team lage og administrere testtilfeller fra det intuitive og attraktive brukergrensesnittet. TestCaseLab er fleksibel og full av funksjoner, men den har sine begrensninger, inkludert begrensede rapporterings- og tilpasningsmuligheter.
#2. Micro Focus UFT One
Micro Focus UFT One er et programvaretestingsverktøy med fokus på funksjonell og regresjonstesting . Den støtter forskjellige plattformer, enheter og API-testing og tilbyr sterke integreringsalternativer. Den tilbyr både kodefri og nøkkelorddrevet testopprettelse og kan hjelpe team med å bygge grenseverdianalysetestsaker med letthet. Det er noen begrensninger du må vurdere, for eksempel en bratt læringskurve og mangel på kraft sammenlignet med verktøy som ZAPTEST.
#1. ZAPTEST
ZAPTEST er et omfattende testverktøy for programvareautomatisering med avanserte RPA-funksjoner . Den er bygget for å gi testere en brukervennlig og robust pakke med testautomatiseringsverktøy som kan hjelpe med å verifisere programvare på en rekke måter, inkludert med BVA i programvaretesting.
Noen av de mest overbevisende brukssakene for ZAPTEST for å hjelpe grenseverdianalyse inkluderer generering av testtilfeller, håndtering av testdata, testutførelse og rapportering og analyse. Med en rekke maler og et høyt nivå av tilpasning kombinert med oppretting av testcase uten kode, kan ZAPTEST-brukere raskt og enkelt opprette og administrere robuste testcaser for alle typer grenseanalyser.
I tillegg til generering og administrasjon av testtilfeller, kan ZAPTESTs RPA-funksjoner hjelpe testing av team med deres grenseverdianalysetesting på andre måter. Du kan for eksempel automatisere utførelse av testtilfeller, generere testdata og bygge kraftige integrasjoner med andre testverktøy.
Tips for grenseverditesting
- Kombiner grenseverdianalyse med ekvivalenspartisjonering for å sikre at testsakene dine dekker ulike inputscenarier
- Bruk ugyldige inndatascenarier (dvs. negativ testing) for å sikre at du bekrefter hvordan programvaren håndterer feil og uventede inndata
- Invester tid i å identifisere grenseverdier for ulike datatyper som tekst, tall, boolsk osv.
- Prioriter grenseverditesting for kritiske funksjoner eller områder hvor det er mer sannsynlig at feil oppstår
- Bruk realistiske data som representerer typen data brukerne vil legge inn på domenene dine.
Siste tanker
Grenseverdianalyse er en nyttig funksjonell testmetode. Når du har et inndatadomene, må du sjekke at det godtar gyldige data og sender feilmeldinger når det mottar ugyldige data. Grenseanalysetesting bidrar til å verifisere denne funksjonaliteten på en effektiv måte ved å bygge bare testtilfellene som kreves for omfattende testing.
Grensetesting ser på verdier i eller rundt det akseptable området og verifiserer hvordan systemet reagerer på disse inngangene. Resultatet er mye spart tid og redusert innsats fordi du ikke trenger å bygge overflødige testsaker. I den fartsfylte verden av programvareutvikling, der tidsfrister ser ut til å komme tykke og raske, trenger testteam all den hjelpen de kan få.