Hvad er Gray Box Test? Teknikker, eksempel

⚡ Smart opsummering

Grå Box Testning undersøger en applikation med delvist kendskab til dens interne struktur og kombinerer det brugervenlige perspektiv på black box-testning med tilstrækkelig arkitektonisk indsigt til at forklare, hvorfor en fejl opstod, i stedet for kun at den skete.

  • 🔍 Videnniveau: Den interne struktur er delvist kendt, mens den er fuldt kendt for white-box-testning og ukendt for black-box-testning.
  • 🧪 Fire teknikker: Matrixtestning, regressionstestning, ortogonal arraytestning og mønstertestning udgør det centrale værktøjssæt.
  • 🪜 Ti trin: Identificer input, output og hovedstier, opdel derefter systemet i delfunktioner og verificer hver enkelt.
  • 🔗 Bedste pasform: Integrationstest, penetrationstest, databasebaserede arbejdsgange, webtjenester og API-koncepttracts.
  • ⚖️ Afvejning: Delvis synlighed reducerer indsatsen, men det begrænser også, hvor dybt en enkelt kodesti kan være tracred.
  • ???? Forudsætning: Præcis designdokumentation er vigtig, fordi et forældet skema eller en forældet specifikation stille og roligt ugyldiggør testdesignet.

Grå Box Testning, der kombinerer delvis intern viden med brugervendt testdesign

Hvad er Gray Box Test?

Grå Box Test (også stavet Grå Box Testing) er en softwaretestteknik, der tester et softwareprodukt eller en applikation med delvist kendskab til applikationens interne struktur. Formålet med Grey Box Testning handler om at søge efter og identificere fejl forårsaget af forkert kodestruktur eller forkert brug af applikationen.

I denne proces identificeres kontekstspecifikke fejl relateret til websystemer ofte. Teknikken øger test dækning ved at koncentrere sig på alle lagene i et komplekst system i stedet for på ét af dem.

Grå Box Testning er en softwaretestmetode, der kombinerer Hvid Box Test og Sort Box TestForskellen mellem de tre kommer ned til, hvor meget af den interne struktur testeren kan se:

  • I hvid Box Test af den interne struktur (kode) er kendt.
  • I sort Box Test af den interne struktur (kode) er ukendt.
  • I grå Box Test af den interne struktur (kode) er delvist kendt.

Diagrammet nedenfor placerer de tre metoder på den samme synlighedsskala.

Grå Box Test vist mellem Hvid Box og sort Box testning af skalaen for intern kodesynlighed

In software Engineering, Grå Box Testning giver mulighed for at teste begge sider af en applikation, præsentationslaget samt koden bag det. Det er primært nyttigt i integrationstest og penetrationstestning.

Eksempel på grå Box Test: Hvis testeren støder på et problem med en hjemmesidefunktion, såsom links eller forældreløse links, kan ændringen foretages med det samme i HTML-koden og kontrolleres i realtid, hvis testeren støder på et problem med disse links.

Hvorfor grå Box Test

Grå Box Testning udføres af følgende årsager:

  • Det giver de kombinerede fordele ved både black box-testning og white box-testning.
  • Det kombinerer input fra både udviklere og testere og forbedrer den samlede produktkvalitet.
  • Det reducerer overheaden ved den lange proces med at teste funktionelle og ikke-funktionelle typer.
  • Det giver en udvikler tilstrækkelig fritid til at rette fejl.
  • Testning udføres fra brugerens synspunkt snarere end designerens synspunkt.
  • En fejl kan forklares snarere end blot rapporteres, fordi testeren kan se laget, hvor den opstod.

Grå Box Testning vs. sort Box mod hvid Box Test

De tre metoder er ikke så meget konkurrerende alternativer, som de er tre adgangsniveauer, og hver især besvarer en forskellig slags spørgsmål. Ved at sætte dem side om side bliver valget konkret.

Basis Sort Box Test Grå Box Test Hvid Box Test
Kendskab til intern struktur Ingen Delvis Fuld
Udført af Testere og slutbrugere Testere og udviklere, der arbejder med testere Udviklere og testingeniører
Grundlag for testdesign Krav og specifikationer ArchiTektur, algoritmer, datastrukturer og grænseflader Kildekode og kontrolflow
Typisk niveau System- og accepttest Integration, penetration og webservicetestning Enheds- og komponenttestning
Dækning målt som Kravdækning Grænseflade-, data- og stidækning Dækning af erklæring, gren og sti
Hovedbegrænsning Årsagen til en fejl forbliver skjult Dybden er begrænset af den tildelte adgang Dyrt, og det kan overse manglende krav

De fleste hold bruger alle tre på tværs af livscyklus for softwaretest, og det grå bokslag er der, hvor defekterne, der falder mellem brugergrænsefladen og datalagret, normalt fanges.

Grå Box Teststrategi

At udføre Grå Box Ved testning er det ikke nødvendigt for testeren at have adgang til kildekoden. En test designes baseret på kendskab til algoritmer, arkitekturer, interne tilstande eller andre overordnede beskrivelser af programadfærd.

At udføre Grå Box Test:

  • Den anvender de simple teknikker fra black box-testning.
  • Den er baseret på kravdrevet generering af testcases, så den forudindstiller alle betingelserne, før programmet testes med assertion-metoden.

Teknikker brugt til grå Box Testning er:

  • Matrix test: Denne teknik involverer at definere alle de variabler, der findes i programmet, sammen med den risiko, hver enkelt bærer, så ubrugte og højrisikovariabler er synlige.
  • Regressionstest: kontrollerer, om en ændring i den tidligere version har påvirket andre aspekter af programmet i den nye version. Det gøres med strategier som at gentest alle, gentest risikable anvendelsesscenarier og gentest inden for en firewall.
  • Ortogonal Array Test eller HAVRE: giver maksimal kodedækning med et minimalt antal testcases.
  • Mønstertest: udført på historiske data fra tidligere systemfejl. I modsætning til black box-testning, Grey Box Testning dykker ned i koden og bestemmer, hvorfor fejlen opstod.

Grå Box Metoden bruger normalt automatiseret værktøjer til test af software at udføre testen. Stubs og moduldrivere oprettes, så testeren ikke behøver at generere koden manuelt.

Trin til at udføre Grey Box Testning er:

  • Trin 1: Identificer input.
  • Trin 2: Identificer outputtene.
  • Trin 3: Identificér de vigtigste stier.
  • Trin 4: Identificer delfunktioner.
  • Trin 5: Udvikl input til delfunktionerne.
  • Trin 6: Udvikl output til delfunktionerne.
  • Trin 7: Udfør testcasen for delfunktionerne.
  • Trin 8: Bekræft det korrekte resultat for delfunktionerne.
  • Trin 9: Gentag trin 4 til 8 for de andre delfunktioner.
  • Trin 10: Gentag trin 7 og 8 for de andre delfunktioner.

Testtilfældene for Grey Box Testning kan blandt andet dække GUI, sikkerhed, database, browser og operativsystemproblemer. Hvert genereret tilfælde kræver stadig de sædvanlige test sag attributter, da et tilfælde, der ikke kan reproduceres ud fra sin egen beskrivelse, er af ringe nytte under regression.

Hvor grå Box Testning bruges

Teknikken fortjener sin plads, hvor en defekt kun kan diagnosticeres ved at se på to lag på én gang. Følgende scenarier er dem, den oftest anvendes til:

  • Databasebaserede arbejdsgange: En handling udføres via brugergrænsefladen, og de resulterende rækker forespørges derefter direkte for at bekræfte, at værdierne, typerne og relationerne blev gemt som tilsigtet.
  • Webtjenester og API'er: En anmodning sendes, og svarstatus, headere og nyttelast kontrolleres mod den offentliggjorte kode.tract, som er den daglige form af API-test.
  • Integrationspunkter: Beskeder, der krydser en grænse mellem to moduler, inspiceres, mens begge moduler behandles som kørende systemer snarere end som kildefiler.
  • Sikkerhedsvurdering: En penetrationstester givet en normal brugerkonto og en arkitekturoversigt gengiver en insiders position, hvilket er standardmodellen for grå boks-engagement.
  • Webapplikationer og brugergrænseflader: Ødelagte links, forældreløse sider, sessionshåndtering og klientsidevalidering kontrolleres alle med delvis synlighed af markup og anmodningsflow.

På tværs af alle disse reduceres de samlede omkostninger ved systemfejl, fordi problemer opdages og forklares, før de går videre ned i pipelinen til system test eller produktion.

Grå Box Testværktøjer

Intet værktøj yder grå Box Test af sig selv. Det, kategorien har brug for, er en kombination af en grænsefladedriver, et inspektionsværktøj til laget nedenunder og en måde at lave scripts til de to sammen.

  • API- og webserviceklienter som Postman og SoapUI, bruges til at udstede anmodninger og gøre krav på statuskoder og svarelementer.
  • Databaseklienter og SQL-forespørgselsværktøjer, bruges til at verificere vedvarende tilstand efter en grænsefladehandling.
  • Browserudviklerværktøjer og HTTP-proxyer som Burp Suite, bruges til at inspicere og ændre anmodninger under sikkerhedsorienterede sessioner.
  • UI-automatiseringsframeworks som Selenium, bruges til at drive præsentationslaget inde i en automatiseringstest på.
  • Log- og overvågningsværktøjer, bruges til at korrelere en observeret fejl med det, som applikationen registrerede internt på det tidspunkt.

Valget betyder mindre end ledningsføringen: medmindre interfacedriveren og inspektionstrinnet kører i samme scriptede flow, er resultatet to separate manuelle kontroller i stedet for én gråbokstest.

Grå Box Test udfordringer

Delvis synlighed introducerer problemer, som ingen af ​​de rene metoder har, og følgende er dem, som teams oftest støder på:

  • Når en komponent under test støder på en eller anden form for fejl, kan den afbryde den igangværende operation og lade resten af ​​sekvensen blive uudført.
  • En test kan blive udført fuldt ud, mens indholdet af resultatet er forkert, så verifikationstrinnet skal kontrollere værdier snarere end fuldførelse.
  • Fuld dækning af kodestier er ikke opnåelig, fordi testeren aldrig ser alle de grene, som white box-testning ville nå.
  • Designdokumentationen, som testene er baseret på, kan være forældet, og et forældet skema eller en forældet grænsefladespecifikation ugyldiggør stille og roligt testdesignet.
  • Testere har brug for både domæneforståelse og teknisk dybde, hvilket er en snævrere færdighedsprofil at rekruttere til.
  • Distribueret og kraftig mavemuskulaturtracTed-arkitekturer gør det vanskeligt at tilskrive en observeret fejl til en specifik intern komponent.

Disse begrænsninger taler for behandling af grå Box Testning som ét lag blandt flere snarere end en erstatning for de andre, hvilket er pointen på tværs af det bredere sæt af softwaretestteknikker og typer af softwaretestningDen sidder naturligt ved siden af funktionstest og specifikationsdrevne tilgange som f.eks. modelbaseret testning.

Ofte Stillede Spørgsmål

Begge refererer til den samme teknik. Grey er den britiske stavemåde og gray den amerikanske, og de to optræder synonymt i værktøjsdokumentation og certificeringspensum. Ingen af ​​dem har en forskellig teknisk betydning.

Nok til at ræsonnere om interne elementer uden at læse hver linje: arkitekturdiagrammer, datamodellen, grænsefladekoncepttracts og en skrivebeskyttet konto på testdatabasen. Fuld adgang til arkivet forvandler øvelsen til white box-testning.

Normalt en testingeniør med udviklingsbaggrund, eller en tester parret med en udvikler til sessionen. Sikkerhedsopgaverne udføres af penetrationstestere, der får tildelt en standardbrugerkonto og en arkitekturbriefing.

Mod grænseflader og data snarere end statements: hvert endpoint og statuskode der udføres, hver tabel- og tilstandsovergang der berøres, hver integrationssti der gås. Statement- og branchprocenter hører til white box-målinger.

En stub erstatter en komponent, som modulet under test kalder; en driver erstatter den komponent, der ville kalde den. Sammen tillader de, at en delfunktion udføres isoleret, før det fulde system eksisterer.

Når en uafhængig brugerperspektivvurdering er påkrævet, da delvis viden påvirker testeren mod forventede veje. Accepttest og brugbarhedsarbejde forbliver black box af netop den grund, og sikkerhedskritisk kode kræver stadig fuld white box-analyse.

Maskinlæring udvinder fejlhistorik for mønstertesttrinnet, rangerer grænseflader efter forudsagt risiko, så begrænset adgang udnyttes godt, og grupperer logfiler for at forbinde en observeret fejl med den interne komponent, der producerede den.

Ja, for de gentagne dele: request builders, response assertions, verifikationsforespørgsler, stubs og drivere udarbejdet fra en grænsefladedefinition. Det er fortsat en designvurdering for ingeniøren at afgøre, hvilken intern tilstand der beviser, at adfærden er korrekt.

Opsummer dette indlæg med: