Uvod u testiranje bijele kutije

Testiranje je jedan od važnih dijelova razvoja softvera, pazi da se svi bugovi razvrstaju i da program radi onako kako je i namijenjeno. Testiranje softverskog proizvoda može imati više koraka i više postupaka. U ovom ćemo članku pogledati jedan od važnih pristupa procesu testiranja, Bijelo testiranje.

Što je testiranje bijele kutije?

Testiranje bijele kutije naziva se i ispitivanje osnovne kode, ispitivanje jasnog okvira, testiranje otvorenog okvira i strukturno testiranje. Temeljna ideja ovog pristupa testiranju softvera je razmatranje dizajna unutarnje strukture i koda programa za njegovo testiranje.

Tijekom testiranja u bijeloj kutiji, ispitivač može vidjeti cijeli kôd programa, a on ima zadatak provjeriti protok načina rada ulaza i izlaza u programu. Za razliku od testiranja crne kutije, koje je više usredotočeno na testiranje funkcionalnosti programa, White Box Testing bavi se ispitivanjem unutarnjih struktura programa. Pogled na program na ovaj način omogućava nam rad na poboljšanju dizajna, upotrebljivosti i povećanju sigurnosti proizvoda.

Kao što možete pogoditi, to se zove testiranje bijele kutije ili staklene kutije jer ispitivač može vidjeti kod i ostale dijelove programa.

Po čemu se testiranje bijele kutije razlikuje od testiranja crne kutije

Ako ste u prošlosti tipkali nožne prste, siguran sam da ste naišli na Black Box testiranje. Najveća razlika između testiranja bijele kutije i testiranja crne kutije je u tome što se za razliku od testiranja crne kutije, koja se vrši s korisničkog stajališta, testiranje bijele kutije vrši se s gledišta programera.

Drugim riječima, umjesto da program pogledate izvana, pristup White Box Testingu vidi interni kod i testira ga.

Kako se izvodi testiranje bijele kutije?

Proces testiranja bijele kutije možemo podijeliti u dva glavna koraka.

1. Razumijevanje ponuđenog koda

Isprva, ispitivač u bijeloj kutiji trebat će naučiti kôd prijave. S obzirom na činjenicu da se White Box Testing odnosi na razumijevanje i testiranje unutarnjeg koda programa, svatko kome je zadatak testirati kôd ne samo da mora dobro poznavati programiranje, već će mu i trebati da dobro podnese jezik s jezikom izvornog koda.

Sigurnost je jedan od važnih aspekata testiranja bijele kutije, pa će ispitivač također morati biti dobar u sigurnoj praksi kodiranja.

2. Izrada testnih slučajeva i njihovo izvršavanje

Nakon što je testni tim proučio kôd, oni mogu započeti s testiranjem koda kako bi provjerili njegov pravilan protok i strukturu. Da bi to učinili, testeri će napisati kod za neke testne slučajeve koji će pokušati preći sve retke koda prisutne u programu.

To se može učiniti i u ručnom testiranju koje uključuje pokušaje i pogreške. Ispitivači mogu koristiti i neke automatizirane alate za testiranje kao što su JUnit i NUnit.

Primjer ispitivanja bijele kutije

Da biste bolje razumjeli koncept testiranja bijele kutije, pogledajte kôd u nastavku:

print (int x, int y) (
int sum = x + y;
If ( sum > 0 )
Print ( "Positive", result )
Else
Print ( "Negative", result )
)

Kao što smo ranije raspravljali, cilj testiranja bijele kutije je preći sve grane, petlje i izjave koji su prisutni u kodu. S obzirom na to možemo napraviti 2 test slučaja, jedan u kojem su oba ulaza pozitivna i drugi gdje su oba ulaza negativni cijeli brojevi.

Primjer:

  • A = 10 i B = 20
  • A = -10 i B = -20

Tehnike ispitivanja bijele kutije

Jedna od najpopularnijih tehnika testiranja za testiranje bijele kutije naziva se analiza pokrivenosti kodom. Ova tehnika pokušava otkloniti sve praznine u paketu testnih slučajeva i identificira dijelove aplikacije koji se testni slučajevi ne koriste. Nakon što se utvrde ove praznine, možemo stvoriti slučajeve da vidimo i provjerimo dijelove koda koji nisu testirani, a na kraju se postigne još sjajniji proizvod.

Evo nekoliko tehnika analize pokrivanja:

  • Obuhvat izjave: ovom metodom pokušavamo bar jedanput preći sve izjave u kodu. To jamči da je sav kôd testiran.
  • Pokrivenost grana: Ova se metoda planira preći preko svake grane točaka odlučivanja u kodu. To osigurava da se sve odluke barem jednom testiraju.

Postoje i neke druge tehnike testiranja, evo samo nekoliko:

  • Obuhvat stanja: U ovoj tehnici ispitivanja osiguravamo da su svi uvjeti obuhvaćeni u kodu, na primjer:

READ A, B
IF (A == 0 || B == 0)
PRINT '0'

Kao što vidite, ovdje imamo 2 uvjeta: A == 0 i B == 0. Sada ovi uvjeti dobivaju TRUE i FALSE kao vrijednosti. Jedan mogući primjer može biti:

# TC1 - A = 0, B = 110
# TC2 - A = 10, B = 0

  • Pokrivanje višestrukog stanja: ovo je malo naprednije od posljednjeg. Kao što možete pogoditi, testiramo sve moguće kombinacije i sve moguće ishode barem jednom. Evo dostojnog primjera:

READ A, B
IF (A == 0 || B == 0)
PRINT '0'

# TC1: A = 0, B = 0
# TC2: A = 0, B = 10
# TC3: A = 110, B = 0
# TC4: A = 110, B = 5

Stoga. Potrebna su nam 4 test slučaja za 2 uvjeta.

Dakle, ako postoje n uvjeta, trebat će nam 2 n test slučajeva.

  • Ispitivanje osnova puta: U ovoj tehnici ispitivanja bijele kutije izrađujemo graf protoka upravljanja i zatim izračunavamo njegovu ciklomatičku složenost koja je broj neovisnih staza. Pomoću ciklomatičke složenosti možemo pronaći minimalan broj ispitnih slučajeva koje možemo oblikovati za svaki nezavisni put dijagrama toka.
  • Testiranje petlje: Petlje je jedan od najčešće korištenih alata u naoružanju programera. Budući da su oni u srži toliko algoritama, ima smisla samo tehnika ispitivanja koja se temelji na petlji. Mogu biti 3 vrste petlji: Jednostavne, ugniježđene i povezane. Pogledajmo kako će se ispitivač baviti tehnologijom ovih vrsta:

1. Jednostavne petlje: Za petlju koja je jednostavna u dizajnu i ima veličinu n, možemo dizajnirati neke test slučajeve koji rade na sljedeći način:

  • Preskoči petlju.
  • Pređite petlju samo jednom.
  • Imajte 2 prolaza
  • Imajte bilo koji broj prolaza koji je manji od njegove veličine.
  • n-1 i n + 1 prolaze kroz petlju.

2. Uglađene petlje: Za kod s ugniježđenim petljama, započinjemo s unutarnjom petljom, a zatim idemo prema van dok ne dođemo do najudaljenije petlje.

3. Združene petlje: U slučaju ovih petlji. Koristimo jednostavan test petlje jednom za drugim i u slučaju da spojena petlja nije neovisna, možemo se nositi s njima kao što smo to učinili s ugniježđenim petljama.

prednosti

Sad kad smo vidjeli što je ova metoda ispitivanja i kako funkcionira. Pogledajmo neke od prednosti ovog.

  • Ispitivanje u bijeloj kutiji ima jednostavna i jasna pravila kako biste obavijestili ispitivača kada je testiranje obavljeno.
  • Tehnike ispitivanja bijele kutije lako se automatiziraju, što rezultira da programer mora zaposliti manje testera i manje troškove.
  • Prikazuje uska grla što programerima čini optimizaciju prilično jednostavnom.
  • Testirački tim može započeti sa svojim radom, a da ne mora čekati da razvojni tim dovrši razvoj UI.
  • Kako su u većini slučajeva sve staze kodova pokrivene kodom, ispitivanje koda je duže.
  • Pomaže u uklanjanju dijelova koda koji nisu bitni za funkcionalnost programa.

Nedostaci

  • Dosta oporezuje resurse. Da biste obavili testiranje, trebat će vam netko tko dobro poznaje vaš kôd da bude u timu za testiranje i tko je i sam dobar programer. Ova vrsta razine vještina povećava troškove testiranja.
  • U mnogim slučajevima nemogućnost testiranja svakog mogućeg stanja u kodu nije moguća zbog vremenskih ograničenja ili ograničenja proračuna.
  • Kako se testiranje bijele kutije temelji na provjeri funkcionalnosti postojećeg koda, u programu ne možete pronaći funkcionalnost koja nedostaje.
  • Ako je bilo koji dio koda redizajniran i ponovno napisan, testeri će morati ponovno pisati testne slučajeve.

Alati za testiranje bijele kutije

Sada kada ste upoznati s prednostima, nedostacima i tehnikama testiranja na bijeloj kutiji, možemo pogledati neke popularne alate koje testeri mogu koristiti za testiranje bijele kutije.

  • JSUnit.net

Ovo je JavaScript alat za testiranje. JSUnit je dio Junita i njegovog okvira za testiranje otvorenog koda koji se može koristiti za testiranje bijele kutije. JSUnit je potpuno otvoreni izvor pod GNU Public License 2.0, što znači da čak i za komercijalnu upotrebu programer ne mora platiti naknadu za licenciranje.

  • CppUnit

Kao i JSUnit, i CppUnit se smatra dijelom JUnita. Alat može izlaziti u običnom tekstu ili XML formatu, ovisno o potrebi testera i može stvoriti jedinice testova sa vlastitim klasama. CppUnit je licenciran pod LGPL-om.

  • Veracode

Iako nije besplatan za upotrebu, Veracode ima moćne alate koji se mogu koristiti za testiranje .NET, C ++, Java i nekih drugih jezika. Testiranje Bijele kutije može se izraditi i za aplikacije za radne površine, web i mobilne uređaje.

  • NUnit

To je okvir za testiranje jedinice i napisan je na C #. Alat podržava sve dostupne .Net jezike i podržava test temeljen na podacima. Funkcionalnost, ona može raditi i paralelno i istodobno i može pružiti okvir klase i aplikacije za testiranje pokretača. Jedna od značajnih karakteristika NUnit-a je da je prilično jednostavan za korištenje.

  • JUnit

Kao što možete pogoditi iz njegova imena, JUnit je Java alat za automatizaciju testiranja. Kombi JUnit lako se integrira s IDE-ovima kao što su eclipse, Macen ACT itd. Može podržati razvojni test i može sinkronizirati postojeće testove s novo kreiranim. JUnit je potpuno otvoreni izvor i besplatan za upotrebu u bilo kojoj vrsti Java razvoja.

  • CSUnit

Kao i Nunit, CSUnit je izgrađen za podršku testiranju jedinica u .Net Framework-u. Podržava jezike poput C # i VB.Net. CSUnit ima ugrađenu podršku za praksu faktoringa i druge vrste praksi koje se koriste u agilnom pristupu razvoja SDLC-a.

Zaključak

Testiranje ima vrlo važno mjesto u procesu razvoja softvera, a White Box Testiranje je dragocjen pristup da se to provede. Iako ovaj pristup testiranja može biti skup i dugotrajan, testiranje bijele kutije ostaje jedini način da se osigura da su svi dijelovi koda bili obuhvaćeni u postupku testiranja.

Najvažniji dio ispitivanja bijele kutije je koliko je ispitivač upoznat sa šifrom. Netko kome je zadatak testirati WBT pristup koji nema dobru ruku s izvornim kodom i korištenim programskim jezikom stvorit će puno problema. Također, ovisno o White Box testiranju nije dobra ideja, jer ne pokriva funkcionalnost koja nedostaje. Za detaljniji pristup razvoju, potrebno je obaviti testiranje bijele kutije i testiranje crne kutije jer će tada pokriti maksimalne pogreške, nedostatke i preostale značajke koje je potrebno dodati prije isporuke proizvoda.

Preporučeni članci

Ovo je vodič za testiranje bijele kutije. Ovdje smo razgovarali o tome kako se testiranje bijele kutije vrši pomoću primjera i različitih tehnika testiranja bijele kutije s alatima. Možete i proći kroz naše druge predložene članke da biste saznali više -

  1. Pitanja za intervjuiranje softvera
  2. Karijere u testiranju softvera
  3. Internetska pitanja za testiranje igara
  4. Pitanja o intervjuu za ETL
  5. Pokrivenost koda vs pokusna pokrivenost | Top 4 razlike za učenje
  6. Alati za pokrivanje kodova | Top 6 alata za pokrivanje koda

Kategorija: