Hva er WHITE Box Testing? Teknikker, eksempel & Typer

Innholdsfortegnelse:

Anonim

White Box Testing

White Box Testing er programvaretestingsteknikk der intern struktur, design og koding av programvare blir testet for å verifisere strømmen av input-output og for å forbedre design, brukervennlighet og sikkerhet. Ved testing av hvit boks er kode synlig for testere, så den kalles også Clear box testing, Open box testing, Transparent box testing, Code-based testing and Glass box testing.

Det er en av to deler av Box Testing-tilnærmingen til programvaretesting. Motstykket, Blackbox-testing, innebærer testing fra et eksternt eller sluttbrukerperspektiv. På den annen side er testing av hvite bokser i programvareteknikk basert på det indre arbeidet til en applikasjon og dreier seg om intern testing.

Begrepet "WhiteBox" ble brukt på grunn av det gjennomsiktige boksekonseptet. Fjernboksen eller WhiteBox-navnet symboliserer muligheten til å se gjennom programvarens ytre skall (eller "boks") inn i dets indre arbeid. På samme måte symboliserer den "svarte boksen" i "Black Box Testing" ikke å kunne se programvarens indre funksjon slik at bare sluttbrukeropplevelsen kan testes.

I denne veiledningen for testing av hvit boks vil du lære-

  • Hva er White Box Testing?
  • Hva bekrefter du i White Box Testing?
  • Hvordan utfører du White Box Testing?
  • WhiteBox-testeksempel
  • White Box Testing Techniques
  • Typer av White Box Testing
  • White Box Testing Tools
  • Fordeler med White Box Testing
  • Ulemper ved WhiteBox Testing

Hva bekrefter du i White Box Testing?

Hvitboksprøving innebærer testing av programvarekoden for følgende:

  • Interne sikkerhetshull
  • Ødelagte eller dårlig strukturerte baner i kodingsprosessene
  • Flyten av spesifikke innganger gjennom koden
  • Forventet utgang
  • Funksjonaliteten til betingede sløyfer
  • Testing av hvert utsagn, objekt og funksjon på individuell basis

Testingen kan gjøres på system-, integrasjons- og enhetsnivå for programvareutvikling. Et av de grunnleggende målene med whitebox-testing er å verifisere en arbeidsflyt for en applikasjon. Det innebærer å teste en serie forhåndsdefinerte innganger mot forventede eller ønskede utganger, slik at når en bestemt inngang ikke resulterer i forventet utgang, har du møtt en feil.

Klikk her hvis videoen ikke er tilgjengelig

Hvordan utfører du White Box Testing?

For å gi deg en forenklet forklaring på testing av hvit boks, har vi delt den i to grunnleggende trinn . Dette er hva testere gjør når de tester et program ved hjelp av testboksteknikken for den hvite boksen:

TRINN 1) FORSTÅ KILDEKODEN

Det første en tester ofte vil gjøre er å lære og forstå kildekoden til applikasjonen. Siden testing av hvit boks involverer testing av den indre funksjonen til en applikasjon, må testeren være svært kunnskapsrik i programmeringsspråkene som brukes i applikasjonene de tester. Testpersonen må også være svært klar over sikker kodingspraksis. Sikkerhet er ofte et av de viktigste målene for testing av programvare. Testeren skal kunne finne sikkerhetsproblemer og forhindre angrep fra hackere og naive brukere som kan injisere skadelig kode i applikasjonen enten bevisst eller uvitende.

Trinn 2) OPPRETT TESTSAKER OG UTFØR

Det andre grunnleggende trinnet for testing av hvit boks innebærer å teste applikasjonens kildekode for riktig flyt og struktur. En måte er å skrive mer kode for å teste applikasjonens kildekode. Testeren vil utvikle små tester for hver prosess eller serie prosesser i applikasjonen. Denne metoden krever at testeren må ha intim kunnskap om koden og gjøres ofte av utvikleren. Andre metoder inkluderer manuell testing, prøve- og feiltesting og bruk av testverktøy som vi vil forklare videre i denne artikkelen.

WhiteBox-testeksempel

Tenk på følgende kode

Printme (int a, int b) {------------ Printme er en funksjonint resultat = a + b;Hvis (resultat> 0)Skriv ut ("Positivt", resultat)EllersSkriv ut ("negativt", resultat)} ----------- Slutt på kildekoden 

Målet med WhiteBox-testing i programvareteknikk er å verifisere alle beslutningsgrener, løkker, uttalelser i koden.

For å utøve påstandene i ovenstående testeksempel for hvit boks, ville det være WhiteBox-testtilfeller

  • A = 1, B = 1
  • A = -1, B = -3

White Box Testing Techniques

En stor testteknikk for hvit boks er Code Coverage analyse. Kodedekkingsanalyse eliminerer hull i en Test Case-pakke. Den identifiserer områder i et program som ikke utøves av et sett med testtilfeller. Når hull er identifisert, oppretter du testtilfeller for å verifisere uprøvde deler av koden, og øker dermed kvaliteten på programvareproduktet

Det er automatiserte verktøy tilgjengelig for å utføre analyse av kodedekning. Nedenfor er noen få dekningsanalyseteknikker som en boksetester kan bruke:

Uttalelsesdekning : - Denne teknikken krever at alle mulige utsagn i koden testes minst en gang under testprosessen for programvareutvikling.

Grendekning - Denne teknikken sjekker alle mulige baner (hvis ikke annet og andre betingede sløyfer) til et program.

Bortsett fra ovenstående er det mange dekningstyper som tilstandsdekning, flere tilstandsdekning, banedekning, funksjonsdekning osv. Hver teknikk har sine egne fordeler og prøver å teste (dekke) alle deler av programvarekoden. Ved å bruke Statement and Branch-dekning oppnår du vanligvis 80-90% kodedekning som er tilstrekkelig. Følgende er viktige testteknikker for WhiteBox:

  • Uttalelsesdekning
  • Beslutningsdekning
  • Grendekning
  • Tilstandsdekning
  • Dekning av flere forhold
  • Endelig maskindekning
  • Banedekning
  • Kontroll av flytesting
  • Dataflyt testing

Se denne artikkelen for å lære mer informasjon https://www.guru99.com/code-coverage.html

Typer av White Box Testing

Hvitboks-testing omfatter flere testtyper som brukes til å evaluere brukervennligheten til et program, en kodeblokk eller en spesifikk programvarepakke. Det er listet opp nedenfor -

  • Enhetstesting: Det er ofte den første typen testing som gjøres på en applikasjon. Enhetstesting utføres på hver enhet eller kodeblokk mens den utvikles. Enhetstesting gjøres i hovedsak av programmereren. Som programvareutvikler utvikler du noen få kodelinjer, en enkelt funksjon eller et objekt og tester det for å sikre at det fungerer før du fortsetter Unit Testing hjelper deg med å identifisere et flertall av feil, tidlig i programvarens utviklingslivssyklus. Feil identifisert i dette stadiet er billigere og enkle å fikse.

  • Test av minnelekkasjer: Minnelekkasjer er de viktigste årsakene til at applikasjoner som kjører langsommere. En kvalitetsspesialist som har erfaring med å oppdage minnelekkasjer er viktig i tilfeller der du har et sakte program.

Bortsett fra oven, er noen få testtyper en del av både svart boks og hvit boks testing. De er oppført som nedenfor

  • White Box Penetration Testing: I denne testen har testeren / utvikleren full informasjon om applikasjonens kildekode, detaljert nettverksinformasjon, involverte IP-adresser og all serverinformasjon applikasjonen kjører på. Målet er å angripe koden fra flere vinkler for å avsløre sikkerhetstrusler
  • White Box Mutation Testing : Mutasjonstesting brukes ofte til å oppdage de beste kodingsteknikkene som kan brukes til å utvide en programvareløsning.

White Box Testing Tools

Nedenfor er en liste over topp verktøy for testing av hvit boks.

  • Parasoft Jtest
  • EclEmma
  • NUnit
  • PyUnit
  • HTMLUnit
  • CppUnit

Fordeler med White Box Testing

  • Kodeoptimalisering ved å finne skjulte feil.
  • Testbokser for hvit boks kan enkelt automatiseres.
  • Testing er grundigere ettersom alle kodestier vanligvis er dekket.
  • Testing kan starte tidlig i SDLC selv om GUI ikke er tilgjengelig.

Ulemper ved WhiteBox Testing

  • Testing av hvit boks kan være ganske komplisert og dyrt.
  • Utviklere som vanligvis utfører testkasser i hvit boks avskyr det. Hvite boksetesting av utviklere er ikke detaljert, kan føre til produksjonsfeil.
  • Testing av hvit boks krever profesjonelle ressurser, med en detaljert forståelse av programmering og implementering.
  • White-box testing er tidkrevende, større programmeringsapplikasjoner tar seg tid til å teste fullstendig.

Sluttnotater:

  • Testing av hvit boks kan være ganske komplisert. Kompleksiteten som er involvert har mye å gjøre med applikasjonen som testes. Et lite program som utfører en enkelt enkel operasjon, kan testes på en hvit boks på få minutter, mens større programmeringsapplikasjoner tar dager, uker og enda lenger tid å teste.
  • Hvitboksprøving i programvaretesting bør gjøres på en programvare mens den utvikles etter at den er skrevet og igjen etter hver modifikasjon