Što je Grey Box Testiranje? Tehnike, primjer

⚡ Pametni sažetak

siva Box Testiranje ispituje aplikaciju s djelomičnim poznavanjem njezine unutarnje strukture, kombinirajući korisnički pristup testiranju crne kutije s dovoljno arhitektonskog uvida kako bi se objasnilo zašto se kvar dogodio, a ne samo da se dogodio.

  • 🔍 Razina znanja: Unutarnja struktura je djelomično poznata, dok je za testiranje bijele kutije potpuno poznata, a za testiranje crne kutije nepoznata.
  • 🧪 Četiri tehnike: Matrično testiranje, regresijsko testiranje, ortogonalno testiranje nizova i testiranje uzoraka čine osnovni alat.
  • 🪜 Deset koraka: Identificirajte ulaze, izlaze i glavne putove, zatim razbijte sustav na podfunkcije i provjerite svaku od njih.
  • 🔗 Najbolje odgovara: Integracijsko testiranje, testiranje penetracije, tijekovi rada podržani bazama podataka, web usluge i API contracts.
  • ⚖️ Kompromis: Djelomična vidljivost smanjuje trud, ali i ograničava koliko duboko bilo koji pojedinačni put koda može biti traced.
  • 📋 Preduvjet: Točna dokumentacija dizajna je važna, jer zastarjela shema ili specifikacija tiho poništava dizajn testa.

siva Box Testiranje koje kombinira djelomično interno znanje s dizajnom testiranja usmjerenim na korisnika

Što je Grey Box Testiranje?

siva Box Ispitivanje (također se piše Gray Box Testiranje) je tehnika testiranja softvera koja testira softverski proizvod ili aplikaciju s djelomičnim poznavanjem unutarnje strukture aplikacije. Svrha Greya Box Testiranje služi za traženje i identificiranje nedostataka uzrokovanih nepravilnom strukturom koda ili nepravilnim korištenjem aplikacije.

U ovom procesu se obično identificiraju kontekstualno specifične pogreške povezane s web sustavima. Tehnika se povećava pokrivenost testom koncentriranjem na sve slojeve složenog sustava, a ne na jedan od njih.

siva Box Testiranje je metoda testiranja softvera koja kombinira Bijela Box Ispitivanje i Crna Box IspitivanjeRazlika između ta tri svodi se na to koliko unutarnje strukture tester može vidjeti:

  • U Bijelom Box Testiranje unutarnje strukture (koda) je poznato.
  • U crnom Box Testiranje unutarnje strukture (koda) nije poznato.
  • U sivom Box Testiranje unutarnje strukture (koda) je djelomično poznato.

Donji dijagram smješta tri metode na istu skalu vidljivosti.

siva Box Testiranje prikazano između Whitea Box i Crna Box testiranje na skali vidljivosti internog koda

In programsko inženjerstvo, Siva Box Testiranje omogućuje testiranje obje strane aplikacije, prezentacijskog sloja kao i koda iza njega. Primarno je korisno u integracijsko testiranje i penetracijsko ispitivanje.

Primjer sive boje Box Testiranje: Tijekom testiranja značajki web stranice kao što su poveznice ili poveznice bez ovlaštenja, ako tester naiđe na problem s tim poveznicama, promjena se može odmah izvršiti u HTML kodu i provjeriti u stvarnom vremenu.

Zašto siva Box Ispitivanje

siva Box Testiranje se provodi iz sljedećih razloga:

  • Pruža kombinirane prednosti testiranja crne i testiranja bijele kutije.
  • Kombinira doprinos programera i testera te poboljšava ukupnu kvalitetu proizvoda.
  • Smanjuje opterećenje dugotrajnog procesa testiranja funkcionalnih i nefunkcionalnih tipova.
  • To daje programeru dovoljno slobodnog vremena za ispravljanje nedostataka.
  • Testiranje se provodi s gledišta korisnika, a ne s gledišta dizajnera.
  • Kvar se može objasniti, a ne samo prijaviti, jer tester može vidjeti sloj u kojem se dogodio.

siva Box Testiranje u odnosu na crnu Box protiv bijelog Box Ispitivanje

Tri metode nisu toliko konkurentske alternative koliko tri razine pristupa, a svaka odgovara na drugačiju vrstu pitanja. Njihovo postavljanje jedna pored druge čini izbor konkretnim.

Temelj Crna Box Ispitivanje siva Box Ispitivanje Bijela Box Ispitivanje
Poznavanje unutarnje strukture nijedan Djelomična Full
Izvođeno od Testeri i krajnji korisnici Testeri i programeri koji rade s testerima Razvojni inženjeri i inženjeri za testiranje
Osnove dizajna testa Zahtjevi i specifikacije Architekstura, algoritmi, strukture podataka i sučelja Izvorni kod i tijek upravljanja
Tipična razina Ispitivanje sustava i primopredaje Testiranje integracije, penetracije i web usluga Testiranje jedinica i komponenti
Pokrivenost mjerena kao Pokrivenost zahtjeva Sučelje, podaci i pokrivenost puta Pokrivenost naredbi, grananja i puta
Glavno ograničenje Uzrok neuspjeha ostaje skriven Dubina je ograničena odobrenim pristupom Skupo je i može propustiti nedostajuće zahtjeve

Većina timova koristi sva tri životni ciklus testiranja softvera, a sloj sive kutije je mjesto gdje se obično uočavaju nedostaci koji se nalaze između korisničkog sučelja i pohrane podataka.

siva Box Strategija testiranja

Za izvođenje Greya Box Kod testiranja, nije potrebno da tester ima pristup izvornom kodu. Test se dizajnira na temelju poznavanja algoritama, arhitektura, unutarnjih stanja ili drugih detaljnih opisa ponašanja programa.

Za izvođenje Greya Box Testiranje:

  • Primjenjuje jednostavne tehnike testiranja crne kutije.
  • Temelji se na generiranju testnih slučajeva vođenih zahtjevima, tako da unaprijed postavlja sve uvjete prije nego što se program testira metodom asercije.

Tehnike korištene za sivu Box Testiranja su:

  • Testiranje matrice: Ova tehnika uključuje definiranje svih varijabli koje postoje u programu, zajedno s rizikom koji svaka od njih nosi, tako da su neiskorištene i varijable visokog rizika vidljive.
  • Ispitivanje regresije: provjerava je li promjena u prethodnoj verziji umanjila vrijednost drugih aspekata programa u novoj verziji. To se radi strategijama kao što su ponovno testiranje svih, ponovno testiranje rizičnih slučajeva upotrebe i ponovno testiranje unutar vatrozida.
  • Testiranje ortogonalnog niza ili zobene pahuljice: pruža maksimalnu pokrivenost koda uz minimalan broj testnih slučajeva.
  • Testiranje uzorka: provedeno na povijesnim podacima o prethodnim nedostacima sustava. Za razliku od testiranja crne kutije, Grey Box Testiranjem se analizira kod i utvrđuje zašto je došlo do kvara.

siva Box metodologija obično koristi automatizirane alati za testiranje softvera za provođenje testiranja. Stubovi i upravljački programi modula kreirani su tako da tester ne mora ručno generirati kod.

Koraci za izvođenje Greya Box Testiranja su:

  • Korak 1: Identificirajte ulazne podatke.
  • Korak 2: Identificirajte izlaze.
  • Korak 3: Odredite glavne putove.
  • Korak 4: Identificirajte podfunkcije.
  • Korak 5: Razviti ulazne podatke za podfunkcije.
  • Korak 6: Razviti izlaze za podfunkcije.
  • Korak 7: Izvršite testni slučaj za podfunkcije.
  • Korak 8: Provjerite ispravan rezultat za podfunkcije.
  • Korak 9: Ponovite korake od 4 do 8 za ostale podfunkcije.
  • Korak 10: Ponovite korake 7 i 8 za ostale podfunkcije.

Testni slučajevi za Greya Box Testiranje može obuhvatiti, između ostalog, probleme s grafičkim korisničkim sučeljem, sigurnošću, bazom podataka, preglednikom i operativnim sustavom. Svaki generirani slučaj i dalje zahtijeva uobičajene testni slučaj atribute, budući da je slučaj koji se ne može reproducirati iz vlastitog opisa od male koristi tijekom regresije.

Gdje je sivo Box Koristi se testiranje

Tehnika zauzima svoje mjesto svugdje gdje se defekt može dijagnosticirati samo promatranjem dva sloja odjednom. Najčešće se primjenjuje u sljedećim scenarijima:

  • Tijekovi rada podržani bazom podataka: Radnja se izvršava putem korisničkog sučelja, a rezultirajući retci se zatim izravno upituju kako bi se potvrdilo da su vrijednosti, tipovi i odnosi pohranjeni kako je predviđeno.
  • Web servisi i API-ji: Zahtjev se šalje, a status odgovora, zaglavlja i korisni teret provjeravaju se u odnosu na objavljeni contract, što je svakodnevni oblik API testiranje.
  • Točke integracije: Poruke koje prelaze granicu između dva modula se pregledavaju dok se oba modula tretiraju kao pokrenuti sustavi, a ne kao izvorne datoteke.
  • Procjena sigurnosti: Tester penetracije s normalnim korisničkim računom i pregledom arhitekture reproducira poziciju insajdera, što je standardni model angažmana sive kutije.
  • Web aplikacije i grafička sučelja: Neispravne poveznice, osirotele stranice, rukovanje sesijama i validacija na strani klijenta provjeravaju se s djelomičnom vidljivošću oznaka i toka zahtjeva.

U svemu tome, ukupni trošak sistemskih nedostataka se smanjuje jer se problemi uočavaju i objašnjavaju prije nego što prođu dalje niz cjevovod u testiranje sustava ili proizvodnju.

siva Box Alati za testiranje

Nijedan alat ne radi sivo Box Samostalno testiranje. Ono što kategoriji treba jest kombinacija upravljačkog programa sučelja, alata za pregled sloja ispod i načina zajedničkog skriptiranja ta dva.

  • API i klijenti web servisa poput Postman i SoapUI, koristi se za izdavanje zahtjeva i utvrđivanje statusnih kodova i tijela odgovora.
  • Klijenti baza podataka i alati za SQL upite, koristi se za provjeru trajnog stanja nakon akcije na sučelju.
  • Alati za razvojne programere preglednika i HTTP proxyji poput Burp Suite, koristi se za pregled i izmjenu zahtjeva tijekom sigurnosno orijentiranih sesija.
  • Okviri za automatizaciju korisničkog sučelja poput Selenium, koristi se za pokretanje prezentacijskog sloja unutar ispitivanje automatizacije o.
  • Alati za zapisivanje i praćenje, koristi se za povezivanje uočenog kvara s onim što je aplikacija interno zabilježila u tom trenutku.

Izbor je manje važan od ožičenja: osim ako upravljački program sučelja i korak inspekcije ne rade u istom skriptiranom toku, rezultat su dvije odvojene ručne provjere umjesto jednog testa sive kutije.

siva Box Izazovi testiranja

Djelomična vidljivost uvodi probleme koje nema nijedna od čistih metoda, a sljedeći su oni s kojima se timovi najčešće susreću:

  • Kada komponenta koja se testira naiđe na neku vrstu kvara, može prekinuti tekuću operaciju i ostaviti ostatak sekvence neizvršenim.
  • Test se može izvršiti u cijelosti dok je sadržaj rezultata netočan, pa korak verifikacije mora provjeriti vrijednosti, a ne dovršetak.
  • Potpuno pokrivanje puta koda nije moguće jer tester nikada ne vidi svaku granu do koje bi testiranje bijele kutije došlo.
  • Dokumentacija dizajna na koju se testovi oslanjaju može biti zastarjela, a zastarjela shema ili specifikacija sučelja tiho poništava dizajn testa.
  • Testerima je potrebno i razumijevanje domene i tehnička dubina, što je uži profil vještina za zapošljavanje.
  • Raspoređeni i jaki trbušnjacitracZasjenjene arhitekture otežavaju pripisivanje uočenog kvara određenoj unutarnjoj komponenti.

Ova ograničenja argumentiraju za tretiranje Greya Box Testiranje kao jedan sloj među nekoliko, a ne kao zamjena za ostale, što je poanta istaknuta u širem skupu tehnike testiranja softvera i vrste testiranja softveraPrirodno se uklapa uz funkcionalno ispitivanje i pristupi vođeni specifikacijama kao što su testiranje temeljeno na modelu.

Pitanja i odgovori

Oba se odnose na istu tehniku. Grey je britanski, a gray američki pravopis, a ta dva naziva se pojavljuju naizmjenično u dokumentaciji alata i nastavnim programima za certifikaciju. Niti jedan nema drugačije tehničko značenje.

Dovoljno za razmišljanje o internim elementima bez čitanja svakog retka: dijagrami arhitekture, model podataka, koncepti sučeljatracts i račun samo za čitanje na testnoj bazi podataka. Potpuni pristup repozitoriju pretvara vježbu u testiranje bijele kutije.

Obično je to inženjer za testiranje s razvojnim iskustvom ili tester uparen s programerom za sesiju. Sigurnosne angažmane vode testeri penetracije koji dobivaju standardni korisnički račun i uvod u arhitekturu.

Protiv sučelja i podataka, a ne naredbi: svaka krajnja točka i statusni kod koji se koristi, svaka dodirnuta tablica i prijelaz stanja, svaki prohodani put integracije. Postoci naredbi i grananja pripadaju mjerenju bijele kutije.

Stub zamjenjuje komponentu koju poziva testirani modul; driver zamjenjuje komponentu koja bi ga pozvala. Zajedno omogućuju izolirano izvršavanje podfunkcije prije nego što postoji cijeli sustav.

Kada je potrebna neovisna procjena iz korisničke perspektive, budući da djelomično znanje pristranjuje testera prema očekivanim putovima. Testiranje prihvatljivosti i upotrebljivosti ostaju crna kutija upravo iz tog razloga, a sigurnosno kritičan kod i dalje zahtijeva potpunu analizu bijele kutije.

Strojno učenje analizira povijest nedostataka za korak testiranja uzoraka, rangira sučelja prema predviđenom riziku kako bi se ograničeni pristup dobro iskoristio i grupira zapisnike kako bi povezalo uočeni kvar s unutarnjom komponentom koja ga je uzrokovala.

Da, za repetitivne dijelove: alate za izradu zahtjeva, tvrdnje odgovora, upite za provjeru, završne datoteke i upravljačke programe izrađene iz definicije sučelja. Odluka o tome koje unutarnje stanje dokazuje ispravnost ponašanja ostaje stvar procjene dizajna za inženjera.

Sažmite ovu objavu uz: