Grenseverdianalyse og ekvivalenspartisjonering

โšก Smart oppsummering

Ekvivalenspartisjonering og grenseverdianalyse er svartboks-testteknikker som komprimerer store inngangsomrรฅder til ekvivalensklasser og testpartisjonskanter, og gir sterk feildeteksjon med effektiv dekning pรฅ tvers av gyldige og ugyldige innganger.

  • Partisjonsinnganger: Grupper verdier i gyldige og ugyldige klasser for รฅ fjerne redundans.
  • Target Grenser: Test minimums-, nรฆr-minimums-, nominelle-, nรฆr-maks- og maksimumsverdier.
  • Kombiner begge: Bruk fรธrst ekvivalenspartisjonering, deretter grenseverdianalyse for kantdefekter.
  • Maksimer dekningen: ร‰n verdi per klasse validerer oppfรธrsel for alle likeverdige inndata.
  • Bruk AI Generators: AI-verktรธy automatiserer partisjonsoppdagelse og oppretting av grensetilfeller.

Fempunktsmodell for grenseverdianalyse

Uttรธmmende testing er sjelden gjennomfรธrbart pรฅ grunn av tids- og kombinatoriske begrensninger. Ekvivalenspartisjonering og grenseverdianalyse lรธser dette ved รฅ gruppereping lignende innganger og mรฅlrette kantene deres for sterkere dekning med fรฆrre tilfeller.

Hva er ekvivalenspartisjonering?

Ekvivalenspartisjonering (ogsรฅ kalt Equivalence Class Partitioning eller ECP) โ€‹โ€‹er en svartboksteknikk som deler inndata i grupper med likeverdige verdier. Testeren velger รฉn representant per klasse, forutsatt at programvaren oppfรธrer seg likt for hvert medlem.

  • Deler inndatadomenet inn i gyldige og ugyldige ekvivalensklasser.
  • Gjelder i det hele tatt nivรฅer av testingโ€”enhet, integrasjon, system og aksept.

Hva er grenseverdianalyse?

Grenseverdianalyse (BVA), ogsรฅ kalt rekkeviddekontroll, validerer de ekstreme endene av hver ekvivalensklasse. Fordi defekter grupperes ved rekkeviddegrenser, retter BVA seg mot fem hovedpunkter:

  1. Minimum
  2. Rett over minimum
  3. En nominell verdi
  4. Rett under maks
  5. Maksimum

Fempunktsmodell for grenseverdianalyse

BVA komplementerer ekvivalenspartisjonering: nรฅr klasser er definert, dukker grenseverdiene deres opp utenfor rekkevidde og kantfeil.

Hvorfor bruke ekvivalenspartisjonering og grenseverdianalyse?

Intelligent testutvalg er viktig nรฅr kombinasjonene er for store til รฅ kunne testes uttรธmmende. Disse teknikkene gir tre fordeler:

  1. Komprimer store testvolumer til hรฅndterbare deler.
  2. Sรธrg for klare regler for valg av testdata uten at det gรฅr pรฅ bekostning av effektiviteten.
  3. Passer til beregningsintensive apper med mange numeriske variabler.

Slik utfรธrer du ekvivalenspartisjonering (eksempel)

  • Se pรฅ tekstboksen Bestill pizza nedenfor.
  • Mengdene 1โ€“10 er gyldige; en suksessmelding vises.
  • Mengdene 11โ€“99 er ugyldige, og utlรธser โ€œKun 10 pizzaer kan bestillesโ€.
Bestill pizza:

Testbetingelser:

  1. Alle tall over 10 er ugyldige.
  2. Ethvert tall under 1 er ugyldig.
  3. Numbers 1โ€“10 er gyldige.
  4. Ethvert tresifret tall som -100 er ugyldig.

Testing av hver verdi produserer 100+ tilfeller. Ekvivalenspartisjonering grupperer domenet i klasser med identisk oppfรธrsel.

Ekvivalenspartisjonerende grupper for Pizza-inngang

Disse gruppene kalles EkvivalensklasserVelg รฉn verdi per klasse โ€“ hvis den bestรฅr, bestรฅr alle andre; hvis den mislykkes, mislykkes hele klassen.

Ekvivalensklasserepresentative verdier

Slik utfรธrer du grenseverdianalyse (eksempel)

Ved รฅ bruke det samme Pizza-feltet, sjekker BVA partisjonskanter i stedet for nominelle verdier. Testere evaluerer 0, 1, 10 og 11 โ€“ og dekker gyldige og ugyldige grenser.

Grenseverdianalyse pรฅ pizzainndata

For en inngang som aksepterer 1 til 10, er grensetesttilfeller:

Testscenario Description Forventet resultat
Grenseverdi = 0 Systemet skal IKKE godta
Grenseverdi = 1 Systemet bรธr akseptere
Grenseverdi = 2 Systemet bรธr akseptere
Grenseverdi = 9 Systemet bรธr akseptere
Grenseverdi = 10 Systemet bรธr akseptere
Grenseverdi = 11 Systemet skal IKKE godta

Ekvivalenspartisjonering vs. grenseverdianalyse

Begge reduserer testvolumet, men har ulik fokus og timing.

Aspekt Ekvivalenspartisjonering Grenseverdianalyse
Fokus Grupper av tilsvarende innganger Kantene til hver gruppe
Datavalg ร‰n verdi per klasse Min, nรฆr min, nominell, nรฆr maks, maks
Best for Redusere overflรธdige saker Oppdage feil รฉn etter รฉn
Orden Anvendt fรธrst Brukes neste

Eksempel: Validering av passordfelt

Et passordfelt som godtar 6 til 10 tegn danner tre partisjoner โ€“ 0โ€“5, 6โ€“10 og 11โ€“14 โ€“ med tilsvarende resultater innenfor hver.

Oppgi passord:
# Testscenario Forventet resultat
1 Skriv inn 0 til 5 tegn Systemet skal ikke akseptere
2 Skriv inn 6 til 10 tegn Systemet bรธr akseptere
3 Skriv inn 11 til 14 tegn Systemet skal ikke akseptere

Beste praksis for ekvivalenspartisjonering og BVA

Fรธlg disse fremgangsmรฅtene for รฅ opprettholde god dekning samtidig som du kontrollerer testantall:

  • Kartlegg hvert domene: List opp gyldige, ugyldige og partisjoner med spesielle tilfeller fรธrst.
  • Test begge sider av hver grense: Inkluder verdier bare innenfor og utenfor for รฅ fange opp enkeltfeil.
  • Kombiner teknikker: Kombiner med beslutningstabeller eller testing av tilstandsoverganger for kompleks logikk.
  • Automatiser kantsaker: Parameteriser grenseverdier slik at regresjonssuiter kjรธrer konsistent.

Nรธkkelfunksjoner

  • Ekvivalenspartisjonering grupperer lignende innganger; รฉn verdi per klasse er nok.
  • Grenseverdianalyse validerer partisjonsgrenser og gyldige/ugyldige kanter.
  • Begge er svartboksteknikker for numeriske eller omrรฅdebaserte felt.
  • Ved รฅ kombinere dem reduseres testvolumet uten at det gรฅr utover kvaliteten pรฅ feilsรธkingen.

Video for grenseverdianalyse og ekvivalenspartisjonstesting

Klikk her. hvis videoen ikke er tilgjengelig

Spรธrsmรฅl og svar

Ekvivalenspartisjonering velger รฉn representant per klasse; grenseverdianalyse sikter mot ekstremverdier ved hver kant. Partisjonering kutter volum, og grenseanalyse fanger opp grensedefekter.

Ekvivalenspartisjonering er en svartboksteknikk fordi den fokuserer pรฅ input-output-atferd uten tilgang til kildekode. Testere utleder partisjoner fra spesifikasjoner, slik at den gjelder pรฅ enhets-, integrasjons-, system- og akseptnivรฅ.

Ja. Begge gjelder for API-testing, der parametere og nyttelastfelt ofte har numeriske omrรฅder eller lengdegrenser. Testere definerer partisjoner for gyldige, ugyldige og kantinndata.

Unngรฅ BVA nรฅr inndata ikke er numeriske omrรฅder โ€“ for eksempel uordnede sett, boolske flagg eller kategoriske verdier. Beslutningstabeller eller tilstandsovergangstesting fungerer bedre fordi grenser ikke er meningsfulle der.

Robust BVA utvider standardtilnรฆrmingen ved รฅ legge til verdier rett utenfor det gyldige omrรฅdet โ€“ รฉn under minimum og รฉn over maksimum โ€“ for รฅ bekrefte hvordan systemet avviser tydelig ugyldige inndata.

Ja. AI-generatorer analyserer krav og skjemaer for รฅ foreslรฅ ekvivalensklasser og grenseverdier. Verktรธy som Testim og Mabl lรฆr raskt av feilhistorikk og tilfeller av overflatekanter.

AI oppdager overlappingping partisjoner, redundante tilfeller og manglende kanter som testere overser. Maskinlรฆring rangerer hรธyrisikogrenser fra feilhistorikk, noe som muliggjรธr smartere testvalg og raskere deteksjon av subtile problemer.

Ja. JUnit, TestNG, og pytest stรธtter parameterisert testing, slik at testere kan definere partisjoner og grenseverdier som inndatasett. Dette muliggjรธr systematisk utfรธrelse av ekvivalens- og grensetilfeller i CI-pipelines.

Oppsummer dette innlegget med: