Uvod v testiranje belega polja

Testiranje je eden pomembnih delov razvoja programske opreme, saj zagotavlja, da so vse napake razvrščene in program deluje tako, kot je bilo mišljeno. Testiranje programskega izdelka ima lahko več korakov in več postopkov. V tem članku si bomo ogledali enega od pomembnih pristopov k postopku testiranja, Belo testiranje.

Kaj je testiranje bele škatle?

Testiranje belega polja se imenuje tudi preskušanje osnovne kode, preskušanje jasnih okenc, odprto testiranje in strukturno testiranje. Temeljna ideja tega pristopa k testiranju programske opreme je proučitev notranje strukture in kode programa za njegovo testiranje.

Pri testiranju belega polja lahko preizkuševalec vidi celotno kodo programa in nalogo opravi, kako preveriti delovanje vhodov in izhodov v programu. Za razliko od testiranja črne škatle, ki je bolj osredotočeno na testiranje funkcionalnosti programa, se pri White Box Testing ukvarja s testiranjem notranjih struktur programa. Takšen pogled na program nam omogoča, da si prizadevamo za izboljšanje dizajna, uporabnosti in izboljšanje izdelka.

Kot ugibate, je imenoval testiranje bele škatle ali steklene škatle, ker lahko tester vidi kodo in druge dele programa.

Po čem se testiranje belega polja razlikuje od testiranja s črno škatlo

Če ste v preteklosti tipkali nožne prste, sem prepričan, da ste naleteli na testiranje Black Boxa. Največja razlika med belim testiranjem in preizkušanjem črne škatle je v tem, da za razliko od testiranja črne škatle, ki se izvaja z uporabniškega vidika, testiranje belega polja poteka s stališča razvijalca.

Z drugimi besedami, pristop White Box Testing namesto da bi program pogledal od zunaj, vidi notranjo kodo in jo preizkusi.

Kako se izvaja testiranje bele škatle?

Proces testiranja belega polja lahko razdelimo na dva glavna koraka.

1. Razumevanje kode

Sprva se bo moral preizkuševalec testiranja v beli škatli naučiti kodo aplikacije. Glede na dejstvo, da je pri beli škatli namenjeno razumevanju in preizkušanju celotnega internega koda programa, vsakdo, ki je zadolžen za preizkušanje kode, ne bi smel imeti le dobrega znanja programiranja, ampak tudi potreboval, da se dobro pouči z jezikom izhodne kode.

Varnost je eden od pomembnih vidikov testiranja belega polja, zato bo moral tudi preizkuševalec biti dober pri varnih praksah kodiranja.

2. Ustvarjanje testnih primerov in njihovo izvajanje

Ko je kodo preskusila skupina, jo lahko začne preizkušati, da preveri njen pravilni tok in strukturo. V ta namen bodo preizkuševalci napisali kodo za nekaj testnih primerov, ki bodo poskušali prečkati vse vrstice kode, ki so prisotne v programu.

To je mogoče tudi pri ročnem testiranju, ki vključuje preizkus in napako. Testerji lahko uporabljajo tudi nekatera avtomatizirana orodja za testiranje, kot sta JUnit in NUnit.

Primer testiranja belega polja

Če želite bolje razumeti koncept testiranja bele škatle, si oglejte spodnjo kodo:

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

Kot smo že omenili, je cilj testiranja belega polja prečkati vse veje, zanke in izjave, ki so prisotni v kodi. Glede na to lahko naredimo 2 testna primera, enega, kjer sta oba vhoda pozitivna in drugega, kjer sta oba vhoda negativna cela števila.

Primer:

  • A = 10 in B = 20
  • A = -10 in B = -20

Tehnike testiranja bele škatle

Ena najpopularnejših tehnik testiranja belega polja se imenuje analiza pokritosti s kodo. Ta tehnika poskuša odpraviti morebitne vrzeli v naboru testnih primerov in določa odseke aplikacije, ki jih testni primeri ne uporabljajo. Ko odkrijemo te vrzeli, lahko ustvarimo primere za ogled in preverjanje netestiranih delov kode, kar ima za posledico bolj poliran izdelek.

Sledi nekaj tehnik analize pokritosti:

  • Pokrivanje izjav: Pri tej metodi poskušamo vsaj enkrat prečkati vse stavke v kodi. To zagotavlja, da je vsa koda preizkušena.
  • Zajetje veje: Ta metoda je načrtovana za prečkanje vsake veje odločilnih točk v kodi. To zagotavlja, da so vse odločitve vsaj enkrat preizkušene.

Obstaja tudi nekaj drugih tehnik testiranja, tukaj je le nekaj:

  • Pokrivanje pogojev: V tej tehniki testiranja poskrbimo, da so v kodi zajeti vsi pogoji, na primer:

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

Kot lahko vidite, imamo tukaj 2 pogoja: A == 0 in B == 0. Zdaj ti pogoji prejmejo TRUE in FALSE kot vrednosti. En možen primer je lahko:

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

  • Pokrivanje več pogojev: To je nekoliko naprednejše od zadnjega. Kot ugibate, vsaj enkrat preizkusimo vse možne kombinacije in vse možne izide. Tu je spodoben primer:

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

Od tod tudi. Zahtevamo 4 testne primere za 2 pogoja.

Če torej ni n pogojev, bomo potrebovali 2 n testnih primerov.

  • Temeljenje preskušanja poti: V tej tehniki testiranja belega polja naredimo graf pretočnega nadzora in nato izračunamo njegovo ciklomatično kompleksnost, ki je število neodvisnih poti. Z uporabo ciklomatične zapletenosti lahko najdemo minimalno število testnih primerov, ki jih lahko oblikujemo za vsako neodvisno pot diagrama toka.
  • Testiranje z zanko: zanke so eno izmed najbolj uporabljanih orodij v orožju programerja. Ker so ti jedri toliko algoritmov, je smiselno imeti samo tehniko testiranja, ki temelji na zankah. Obstajajo lahko tri vrste zank: Enostavna, ugnezdena in združena. Oglejmo si, kako se bo preizkuševalec spopadel s teh tehnik:

1. Enostavne zanke: Za zanko, ki je preprosta v zasnovi in ​​ima velikost n, lahko oblikujemo nekaj testnih primerov, ki naredijo naslednje:

  • Preskoči omenjeno zanko.
  • Zank prečkajte samo enkrat.
  • Imejte 2 prehoda
  • Imejte poljubno število prehodov, ki je manjše od njegove velikosti.
  • n-1 in n + 1 prehajata skozi zanko.

2. ugnezdene zanke: Za kodo z ugnezdenimi zankami začnemo z najnižjo zanko in nato gremo navzven, dokler ne pridemo do skrajne zunanje zanke.

3. Združene zanke: V primeru teh zank. Preprost preizkus zanke uporabljamo enkrat za drugim in v primeru, da združena zanka ni neodvisna, lahko z njimi ravnamo tako, kot smo to storili z ugnezdenimi zankami.

Prednosti

Zdaj, ko smo videli, kaj je ta metoda preskušanja in kako deluje. Oglejmo si nekaj prednosti tega.

  • Preizkušanje belega polja ima preprosta in jasna pravila, s katerimi lahko preizkuševalec ve, kdaj je testiranje opravljeno.
  • Tehnike testiranja bele škatle je enostavno avtomatizirati, zato ima razvijalcu najem manj testerjev in manjše stroške.
  • Pokaže ozka grla, kar omogoča optimizacijo programerjem precej enostavno.
  • Preskusna skupina lahko začne s svojim delom, ne da bi morali čakati, da razvojna skupina dokonča razvoj uporabniškega vmesnika.
  • Ker so v večini primerov kode zajete vse poti kod, je preizkušanje kode več.
  • Pomaga pri odstranjevanju delov kode, ki niso bistveni za funkcionalnost programa.

Slabosti

  • Precej obdavčuje vire. Če želite opraviti testiranje, boste potrebovali nekoga, ki zelo dobro pozna vašo kodo, da bo v skupini za testiranje in je sam dober programer. Ta vrsta znanja in spretnosti poveča stroške testiranja.
  • V številnih primerih zaradi časovne omejitve ali proračunskih omejitev ni mogoče preizkusiti vseh možnih pogojev v kodi.
  • Ker testiranje belega polja temelji na preverjanju funkcionalnosti obstoječe kode, v programu ne najdete manjkajoče funkcionalnosti.
  • Če je kateri koli del kode preoblikovan in na novo napisan, morajo preizkuševalci znova napisati testne primere.

Orodja za testiranje bele škatle

Zdaj, ko ste seznanjeni s prednostmi, slabostmi in tehnikami testiranja belega polja, si lahko ogledamo nekaj priljubljenih orodij, ki jih lahko preizkuševalci uporabijo za testiranje bele škatle.

  • JSUnit.net

To je orodje za testiranje JavaScript. JSUnit je del podjetja Junit in njegovega odprtokodnega sistema za testiranje enot, ki ga je mogoče uporabiti za testiranje belega polja. JSUnit je popolnoma odprta koda pod GNU Public License 2.0, kar pomeni, da tudi za komercialno uporabo razvijalcu ni treba plačati nobene licenčnine.

  • CppUnit

Tako kot JSUnit tudi CppUnit velja za del JUnit. Orodje lahko odda v navadnem besedilu ali formatu XML, odvisno od potrebe preizkuševalca in lahko ustvari preizkuse enot z lastnimi razredi. CppUnit je licenciran pod LGPL.

  • Veracode

Čeprav ni brezplačna za uporabo, ima Veracode nekaj zmogljivih orodij, ki jih je mogoče uporabiti za preizkušanje .NET, C ++, Java in nekaterih drugih jezikov. Preizkušanje belega polja je mogoče izvesti tudi za aplikacije, namenjene namizju, spletu in mobilnim aplikacijam.

  • NUnit

To je okvir za testiranje enot in je bil napisan v C #. Orodje podpira vse razpoložljive jezike .Net in podpira tudi test, ki temelji na podatkih. Funkcionalnost je pametna, lahko deluje tako v vzporedni kot v sočasni izvedbi in lahko nudi okvir razreda in preizkusne aplikacije za tekače. Značilna lastnost NUnit je, da je dokaj enostaven za uporabo.

  • JUnit

Kot lahko ugibate po njegovem imenu, je JUnit orodje za avtomatizacijo testiranja enot na Javi. Kombi JUnit je enostavno integriran z IDE-ji, kot so eclipse, Macen ACT, itd. Podpira testno usmerjen razvoj in lahko sinhronizira obstoječe teste tudi z novo ustvarjenimi. JUnit je popolnoma odprtokoden in brezplačen za uporabo za kakršno koli oblikovanje Java.

  • CSUnit

Tako kot Nunit je tudi CSUnit zasnovan za podporo testiranju enot v .Net Framework. Podpira jezike, kot sta C # in VB.Net. CSUnit ima vgrajeno podporo za prakse faktoringa in druge vrste praks, ki se uporabljajo v prilagodljivem razvojnem pristopu SDLC.

Zaključek

Testiranje ima zelo pomembno mesto v procesu razvoja programske opreme, pri čemer je White Box Testing dragocen pristop k temu. Čeprav je ta pristop testiranja lahko drag in dolgotrajen, je še vedno edini način, da zagotovimo, da so bili v postopku testiranja zajeti vsi deli kode.

Najpomembnejši del testiranja belega polja je, kako je preizkuševalec seznanjen s kodo. Nekdo, ki je zadolžen za testiranje pristopa WBT, ki nima dobre roke z izvorno kodo in uporabljenim programskim jezikom, bo povzročil veliko težav. Tudi odvisno samo od bele škatlice testiranje ni dobra ideja, saj ne zajema manjkajoče funkcionalnosti. Za bolj zajetni pristop k razvoju je treba opraviti testiranje bele škatle in testiranje črne škatle, saj bodo nato zajeti največje napake, pomanjkljivosti in preostale lastnosti, ki jih je treba dodati, preden lahko izdelek odpremite.

Priporočeni članki

To je vodnik za testiranje belega polja. Tu smo razpravljali o tem, kako se s pomočjo primerov in različnih tehnik belega testiranja z orodji izvaja preskušanje belega polja. Obiščite lahko tudi druge naše predlagane članke, če želite izvedeti več -

  1. Vprašanja o intervjuju za programsko opremo
  2. Poklic pri testiranju programske opreme
  3. Vprašanja o intervjuju za igranje iger
  4. Vprašanja za intervju z ETL
  5. Pokrivanje kode proti preskusni pokritosti | Top 4 razlike, ki se jih morate naučiti
  6. Orodja za zajetje kode | Top 6 Orodja za pokritje kode