Mikä on Gray Box Testaus? Tekniikat, esimerkki

⚡ Älykäs yhteenveto

Harmaa Box Testauksessa sovellusta tarkastellaan osittaisen tiedon avulla sen sisäisestä rakenteesta yhdistämällä käyttäjälähtöisen mustalaatikkotestauksen näkökulman riittävään arkkitehtuuriseen näkemykseen selittääkseen, miksi vika tapahtui, eikä vain sitä, että se tapahtui.

  • 🔍 Tietotaso: Sisäinen rakenne on osittain tunnettu, kun taas valkoinen laatikkotestauksessa se on täysin tunnettu ja musta laatikkotestauksessa tuntematon.
  • 🧪 Neljä tekniikkaa: Matriisitestaus, regressiotestaus, ortogonaalimatriisitestaus ja hahmotestaus muodostavat ydintyökalupakin.
  • 🪜 Kymmenen askelta: Tunnista syötteet, lähdöt ja pääreitit, jaa sitten järjestelmä alifunktioihin ja tarkista jokainen niistä.
  • 🔗 Parhaiten sopiva: Integraatiotestaus, penetraatiotestaus, tietokantapohjaiset työnkulut, web-palvelut ja API-konversiottracts.
  • 🇧🇷 Kompromissi: Osittainen näkyvyys vähentää vaivaa, mutta se myös rajoittaa sitä, kuinka syvälle yksittäinen koodipolku voi mennä tracpainos
  • 📋 Edellytys: Tarkalla suunnitteludokumentaatiolla on merkitystä, koska vanhentunut skeema tai spesifikaatio mitätöi hiljaa testisuunnitelman.

Harmaa Box Testaus, jossa osittaista sisäistä tietoa yhdistetään käyttäjälähtöiseen testisuunnitteluun

Mikä on Gray Box Testaus?

Harmaa Box Testaus (kirjoitetaan myös harmaa Box Testaus) on ohjelmistotestaustekniikka, jossa testataan ohjelmistotuotetta tai sovellusta tietäen osittain sovelluksen sisäisestä rakenteesta. Greyn tarkoitus Box Testauksella pyritään etsimään ja tunnistamaan vikoja, jotka johtuvat virheellisestä koodirakenteesta tai sovelluksen virheellisestä käytöstä.

Tässä prosessissa tunnistetaan yleisesti verkkojärjestelmiin liittyviä kontekstikohtaisia ​​virheitä. Tekniikka lisää testin kattavuus keskittymällä monimutkaisen järjestelmän kaikkiin tasoihin yhden niistä sijaan.

Harmaa Box Testaus on ohjelmistotestausmenetelmä, joka yhdistää Valkoinen Box Testaus ja Musta Box TestausNäiden kolmen välinen ero riippuu siitä, kuinka paljon sisäisestä rakenteesta testaaja voi nähdä:

  • Valkoisessa Box Sisäisen rakenteen (koodin) testaaminen on tunnettua.
  • Mustassa Box Sisäisen rakenteen (koodin) testaaminen on tuntematonta.
  • Harmaassa Box Sisäisen rakenteen (koodin) testaaminen on osittain tiedossa.

Alla oleva kaavio sijoittaa kolme menetelmää samalle näkyvyysasteikolle.

Harmaa Box Testaus osoitti valkoisen välillä Box ja Musta Box testaus sisäisen koodin näkyvyyden mittakaavassa

In ohjelmistotuotanto, Harmaa Box Testaus antaa mahdollisuuden testata sovelluksen molempia puolia, esityskerrosta sekä sen takana olevaa koodia. Se on ensisijaisesti hyödyllinen integraatiotestaus ja tunkeutumisen testaus.

Esimerkki harmaasta Box testaus: Jos testaaja testaa verkkosivuston ominaisuutta, kuten linkkejä tai orpoja linkkejä, ja havaitsee ongelmia näiden linkkien kanssa, muutos voidaan tehdä suoraan HTML-koodiin ja tarkistaa reaaliajassa.

Miksi harmaa Box Testaus

Harmaa Box Testaus suoritetaan seuraavista syistä:

  • Se tarjoaa sekä mustalaatikkotestauksen että valkolaatikkotestauksen yhdistetyt edut.
  • Se yhdistää kehittäjien ja testaajien panoksen ja parantaa tuotteen yleistä laatua.
  • Se vähentää funktionaalisten ja ei-funktionaalisten tyyppien testaamisen pitkän prosessin yleiskustannuksia.
  • Se antaa kehittäjälle riittävästi vapaa-aikaa virheiden korjaamiseen.
  • Testaus tehdään käyttäjän näkökulmasta, ei suunnittelijan näkökulmasta.
  • Vika voidaan selittää pelkän raportoinnin sijaan, koska testaaja näkee kerroksen, jossa se tapahtui.

Harmaa Box Testaus vs. musta Box vs. valkoinen Box Testaus

Nämä kolme menetelmää eivät ole niinkään kilpailevia vaihtoehtoja kuin kolme käyttöoikeustasoa, ja jokainen vastaa erityyppiseen kysymykseen. Niiden rinnakkainen asettaminen tekee valinnasta konkreettisen.

Perusta Musta Box Testaus Harmaa Box Testaus Valkoinen Box Testaus
Sisäisen rakenteen tuntemus Ei eristetty Osittainen Koko
Esittäjä Testaajat ja loppukäyttäjät Testaajat ja testaajien kanssa työskentelevät kehittäjät Kehittäjät ja testausinsinöörit
Testisuunnittelun perusta Vaatimukset ja eritelmät Archiarkkitehtuuri, algoritmit, tietorakenteet ja rajapinnat Lähdekoodi ja ohjausvirta
Tyypillinen taso Järjestelmä- ja hyväksymistestaus Integraatio-, penetraatio- ja verkkopalvelutestaus Yksikkö- ja komponenttitestaus
Kattavuus mitattuna seuraavasti: Vaatimusten kattavuus Rajapinta, data ja polkujen kattavuus Tilinpäätös-, haara- ja polkukattavuus
Päärajoitus Epäonnistumisen syy pysyy piilossa Syvyys on rajoitettu myönnetyn käyttöoikeuden mukaan Kallis, ja se voi jättää puuttuvat vaatimukset huomiotta

Useimmat joukkueet käyttävät kaikkia kolmea ohjelmistotestauksen elinkaari, ja harmaa laatikkokerros on se, missä käyttöliittymän ja tietovaraston väliin jäävät viat yleensä havaitaan.

Harmaa Box Testausstrategia

Suorittaaksesi harmaan Box Testauksen aikana testaajan ei tarvitse välttämättä päästä käsiksi lähdekoodiin. Testi suunnitellaan algoritmien, arkkitehtuurien, sisäisten tilojen tai muiden ohjelman käyttäytymisen yleisten kuvausten tuntemuksen perusteella.

Suorittaaksesi harmaan Box testaus:

  • Se soveltaa mustan laatikon testauksen suoraviivaisia ​​tekniikoita.
  • Se perustuu vaatimuslähtöiseen testitapausten luomiseen, joten se asettaa kaikki ehdot valmiiksi ennen kuin ohjelmaa testataan assertion-metodilla.

Harmaan sävyyn käytetyt tekniikat Box Testaus on:

  • Matriisitestaus: Tässä tekniikassa määritellään kaikki ohjelmassa olevat muuttujat ja kunkin muuttujan aiheuttama riski, jotta käyttämättömät ja riskialttiit muuttujat ovat näkyvissä.
  • Regressiotestaus: Tarkistaa, onko edellisessä versiossa tehty muutos heikentänyt ohjelman muita osa-alueita uudessa versiossa. Tämä tehdään strategioilla, kuten testaamalla kaikki uudelleen, testaamalla uudelleen riskialttiit käyttötapaukset ja testaamalla uudelleen palomuurin sisällä.
  • Ortogonaalisen taulukon testaus tai OAT: tarjoaa maksimaalisen koodikattavuuden minimaalisella määrällä testitapauksia.
  • Kuvion testaus: suoritettiin aiempien järjestelmävirheiden historiatiedoilla. Toisin kuin mustalaatikkotestaus, Grey Box Testaus pureutuu koodiin ja selvittää, miksi virhe tapahtui.

Harmaa Box menetelmässä käytetään yleensä automatisoitua ohjelmistojen testaustyökalut Testauksen suorittamiseksi. Tyngät ja moduuliajurit luodaan, jotta testaajan ei tarvitse luoda koodia manuaalisesti.

Harmaantumisen vaiheet Box Testaus on:

  • Vaihe 1: Tunnista syötteet.
  • Vaihe 2: Tunnista tuotokset.
  • Vaihe 3: Tunnista tärkeimmät polut.
  • Vaihe 4: Tunnista alitoiminnot.
  • Vaihe 5: Kehitä syötteet alifunktioille.
  • Vaihe 6: Kehitä alifunktioiden tuotokset.
  • Vaihe 7: Suorita alifunktioiden testitapaus.
  • Vaihe 8: Varmista alifunktioiden oikea tulos.
  • Vaihe 9: Toista vaiheet 4–8 muille alitoiminnoille.
  • Vaihe 10: Toista vaiheet 7 ja 8 muille alitoiminnoille.

Greyn testitapaukset Box Testaus voi kattaa muun muassa graafisen käyttöliittymän, tietoturvan, tietokannan, selaimen ja käyttöjärjestelmän huolenaiheet. Jokainen luotu tapaus tarvitsee silti tavanomaisen testitapaus attribuutteja, koska tapaus, jota ei voida toistaa omasta kuvauksestaan, on regressiossa vain vähän hyödyllinen.

Missä harmaa Box Testausta käytetään

Tekniikka ansaitsee paikkansa alueilla, joilla vika voidaan diagnosoida vain tarkastelemalla kahta kerrosta samanaikaisesti. Sitä käytetään useimmiten seuraavissa tilanteissa:

  • Tietokantaan perustuvat työnkulut: Toiminto suoritetaan käyttöliittymän kautta, ja tuloksena olevia rivejä kysellään suoraan sen varmistamiseksi, että arvot, tyypit ja suhteet on tallennettu tarkoitetulla tavalla.
  • Verkkopalvelut ja API:t: pyyntö lähetetään ja vastauksen tila, otsikot ja hyötykuorma tarkistetaan julkaistua con-tiedostoa vastentract, joka on arkipäivän muoto API-testaus.
  • Integraatiopisteet: Kahden moduulin välisen rajan ylittävät viestit tarkastetaan, kun molempia moduuleja käsitellään käynnissä olevina järjestelminä lähdekooditiedostojen sijaan.
  • Turvallisuusarviointi: Tunkeutumistestaaja, jolle annetaan normaali käyttäjätili ja arkkitehtuurikatsaus, luo uudelleen sisäpiiriläisen aseman, mikä on harmaan laatikon sitoutumismallin mukainen.
  • Verkkosovellukset ja käyttöliittymät: Rikkoutuneet linkit, orpot sivut, istuntojen käsittely ja asiakaspuolen validointi tarkistetaan ja merkinnät ja pyyntövirta ovat osittain näkyvissä.

Kaikissa näissä järjestelmävirheiden kokonaiskustannukset pienenevät, koska ongelmat havaitaan ja selitetään ennen kuin ne etenevät pidemmälle prosessissa. järjestelmän testaus tai tuotantoa.

Harmaa Box Testaustyökalut

Mikään työkalu ei suorita harmaata Box Testaus itsenäisesti. Kategoria tarvitsee yhdistelmän käyttöliittymäajuria, alla olevan tason tarkastustyökalua ja tapaa skriptata nämä kaksi yhdessä.

  • API- ja web-palveluasiakkaat kuten Postman ja SoapUI, jota käytetään pyyntöjen tekemiseen ja tilakoodien ja vastaustekstien esittämiseen.
  • Tietokantaohjelmat ja SQL-kyselytyökalut, käytetään tarkistamaan pysyvä tila käyttöliittymätoiminnon jälkeen.
  • Selaimen kehitystyökalut ja HTTP-välityspalvelimet kuten Burp Suite, jota käytetään pyyntöjen tarkastamiseen ja muokkaamiseen tietoturvakeskeisten istuntojen aikana.
  • Käyttöliittymän automaatiokehykset kuten Selenium, jota käytetään esityskerroksen ohjaamiseen sisällä automaatiotestaus sviitti.
  • Loki- ja valvontatyökalut, jota käytetään korreloimaan havaitun vian sovelluksen sillä hetkellä sisäisesti tallentaman tiedon kanssa.

Valinnalla on vähemmän merkitystä kuin johdotuksella: ellei käyttöliittymän ajuri ja tarkastusvaihe suoriteta samassa skriptatussa työnkulussa, tuloksena on kaksi erillistä manuaalista tarkistusta yhden harmaan laatikon testin sijaan.

Harmaa Box Testaushaasteet

Osittainen näkyvyys tuo mukanaan ongelmia, joita kummassakaan puhtaassa menetelmässä ei ole, ja seuraavat ovat ongelmia, joihin tiimit törmäävät useimmiten:

  • Kun testattava komponentti kohtaa jonkinlaisen vian, se voi keskeyttää käynnissä olevan toiminnon ja jättää loput sekvenssistä suorittamatta.
  • Testi voi suorittua kokonaan, vaikka tuloksen sisältö on virheellinen, joten varmennusvaiheessa on tarkistettava arvot eikä testin valmistumista.
  • Täydellinen koodipolun kattavuus ei ole saavutettavissa, koska testaaja ei koskaan näe kaikkia haaroja, joihin white box -testaus yltäisi.
  • Testien pohjana oleva suunnitteludokumentaatio voi olla vanhentunutta, ja vanhentunut skeema tai rajapintaspesifikaatio mitätöi hiljaa testisuunnitelman.
  • Testaajat tarvitsevat sekä toimialaosaamista että teknistä syvyyttä, mikä on kapeampi taitoprofiili rekrytoitaville.
  • Hajautunut ja voimakkaasti vatsalihaksiatracTed-arkkitehtuurit vaikeuttavat havaitun vian selittämistä tietyllä sisäisellä komponentilla.

Nämä rajoitukset puoltavat harmaan Box Testaus yhtenä kerroksena useiden joukossa sen sijaan, että se korvaaisi muita, mikä on pointti, jota korostetaan laajemmassa kokonaisuudessa ohjelmistotestaustekniikat ja ohjelmistotestauksen tyypitSe istuu luonnollisesti rinnakkain toiminnallinen testaus ja spesifikaatiopohjaiset lähestymistavat, kuten mallipohjainen testaus.

UKK

Molemmat viittaavat samaan tekniikkaan. Grey on brittiläinen ja gray amerikkalainen kirjoitusasu, ja ne esiintyvät vaihtokelpoisesti työkalujen dokumentaatiossa ja sertifiointiohjelmissa. Kummallakaan ei ole eri teknistä merkitystä.

Tarpeeksi sisäisten asioiden pohtimiseen lukematta jokaista riviä: arkkitehtuurikaaviot, datamalli, rajapintaongelmattracts ja vain luku -oikeudella varustettu tili testitietokannassa. Täydet käyttöoikeudet tietovarastoon muuttavat harjoituksen white box -testaukseksi.

Yleensä testi-insinööri, jolla on kehitystaustaa, tai testaaja, joka on yhdistetty kehittäjään istunnon ajaksi. Tietoturvatapahtumien suorittajina toimivat penetraatiotestaajat, joille annetaan vakiokäyttäjätili ja arkkitehtuuriopastus.

Rajapintoja ja dataa lauseiden sijaan vasten: jokainen harjoitettu päätepiste ja tilakoodi, jokainen käsitelty taulukko- ja tilasiirtymä, jokainen kuljettu integraatiopolku. Lause- ja haaraprosenttiosuudet kuuluvat valkolaatikkomittaukseen.

Tynkä korvaa testattavan moduulin kutsuman komponentin; ajuri korvaa sitä kutsuvan komponentin. Yhdessä ne mahdollistavat alifunktion suorittamisen erikseen ennen kuin koko järjestelmä on olemassa.

Kun tarvitaan riippumaton käyttäjän näkökulmasta tehty arvio, koska osittainen tietämys painottaa testaajaa odotettuihin polkuihin. Hyväksymistestaus ja käytettävyystyö pysyvät mustana laatikkona juuri tästä syystä, ja turvallisuuskriittinen koodi tarvitsee silti täyden valkoisen laatikon analyysin.

Koneoppiminen louhii vikahistoriaa mallitestausvaihetta varten, luokittelee rajapinnat ennustetun riskin mukaan, jotta rajoitettu käyttöoikeus käytetään tehokkaasti, ja klusteroi lokit linkittääkseen havaitun vian sen tuottaneeseen sisäiseen komponenttiin.

Kyllä, toistuvien osien osalta: pyyntöjen rakentajat, vastausväittämät, varmennuskyselyt, tynkät ja rajapinnan määritelmästä laaditut ajurit. Sen päättäminen, mikä sisäinen tila todistaa toiminnan oikeaksi, on edelleen suunnitteluinsinöörin harkintaa.

Tiivistä tämä viesti seuraavasti: