Black-box Testing – testovanie čiernej skrinky

Black-box Testing – testovanie čiernej skrinky
4 MIN
04 sep 2023

Testovanie čiernej skrinky (black-box testing) sa označuje aj ako testovanie založené na špecifikácii testovaného systému. Na rozdiel od testovania bielej skrinky (white-box testing) sa pri testovaní čiernej skrinky nevyžaduje znalosť vnútornej architektúry a kódu aplikácie.

Definícia testovania čiernej skrinky

Testovanie čiernej skrinky je typ testovania, pri ktorom sa aplikácia testuje na základe špecifikácií jej požiadaviek bez potreby znalosti jej vnútornej architektúry.

Vlastnosti testovania čiernej skrinky

  • Testuje funkčné aj nefunkčné požiadavky aplikácie.
  • Nevyžaduje sa znalosť/prístup ku kódovaniu/návrhu/vnútornej architektúre softvéru.
  • Testeri môžu pracovať nezávisle od vývojárov, čím sa zabezpečí objektívne testovanie zamerané na koncového používateľa.

Techniky testovania čiernej skrinky

Nižšie sú uvedené niektoré z najbežnejších typov techník testovania čiernej skrinky:

Rozdelenie tried ekvivalencie (Equivalence class partitioning)

Rozdelenie na triedy ekvivalencie zahŕňa rozdelenie vstupných údajov do logických skupín alebo tried ekvivalencie. Predpokladá sa, že všetky dátové položky ležiace v triede ekvivalencie budú aplikáciou spracované rovnakým spôsobom, keď budú odovzdané ako vstup.

Napr. pre softvér, ktorý zisťuje druhú mocninu čísla, môžeme mať rôzne triedy ekvivalencie ako – všetky kladné čísla, záporné čísla, desatinné čísla, záporné desatinné čísla atď.

Jeho výhodou je – celkový čas vykonávania testu sa skracuje, pretože počet testovacích údajov sa výrazne znižuje.

Analýza hraničných hodnôt (Boundary value analysis)

Analýza hraničných hodnôt je technika testovania čiernej skrinky, ktorá úzko súvisí s rozdelením tried ekvivalencie. Pri tejto technike analyzujeme správanie aplikácie s testovacími údajmi nachádzajúcimi sa na hraniciach tried ekvivalencie.

Napr. pre triedy ekvivalencie so vstupom medzi 0 a 100 by testovacie údaje pomocou analýzy hraničných hodnôt boli 0 a 100.

Jej výhodou je – ľahšie a rýchlejšie sa nájdu chyby, pretože hustota chýb na hraniciach je väčšia.

Rozhodovacie tabuľky (Decision tables)

Testovanie pomocou rozhodovacích tabuliek sa používa na testovanie správania aplikácie na základe rôznych kombinácií vstupných hodnôt. Rozhodovacia tabuľka má v každom riadku rôznu sadu kombinácií vstupov a im zodpovedajúce očakávané výsledky.

Graf príčin a následkov (Cause-effect graph)

Testovanie grafu príčin a následkov sa vykonáva pomocou grafického znázornenia vstupu, t. j. príčiny, a výstupu, t. j. následku. Pokrytie grafov príčin a následkov môžeme zistiť na základe percenta kombinácií testovaných vstupov z celkového počtu možných kombinácií.

Testovanie prechodu stavu (State transition testing)

Testovanie prechodov stavov je založené na modeli stavového stroja. Pri tejto technike testujeme aplikáciu tak, že graficky znázorňujeme prechod medzi jednotlivými stavmi aplikácie na základe rôznych udalostí a akcií.

Testovanie prípadov použitia (Use case testing)

Testovanie prípadov použitia je typ testovania, ktoré sa vykonáva pomocou prípadov použitia. Pri tejto technike testujeme aplikáciu pomocou prípadov použitia, ktoré predstavujú interakciu aplikácie s rôznymi aktérmi.

diagram postupu testovania čiernej skrinky s krokmi
Black-box testing

Ako testovať čiernu skrinku?

Po oboznámení sa s technikami testovania čiernej skrinky sa naučme jednotlivé kroky typického testu čiernej skrinky.

  • Prvým krokom je kontrola špecifikácií požiadaviek poskytnutých aplikáciou. Požiadavky by mali byť poskytnuté v riadne zdokumentovanom súbore SRS.
  • Tester zhromaždí rôzne pozitívne testovacie scenáre a negatívne testovacie scenáre, aby overil, či ich testovaný systém spracúva správne. Tým sa zabezpečí dobré pokrytie testov. 
  • Testovacie prípady sa vykonajú a výstup sa overí v porovnaní s očakávanými výsledkami. Tento proces slúži na označenie úspešného alebo neúspešného výsledku testu.
  • Neúspešné testovacie prípady sa posielajú späť vývojovému tímu na opravu chýb.
  • Po oprave sa vykoná opakovaný test, aby sa skontrolovali a zabezpečili všetky úspešne vykonané testovacie prípady. 

Výhody testovania čiernej skrinky

  1. Testy sa vykonávajú z pohľadu používateľa. Je teda vyššia šanca, že sa splnia očakávania zákazníka.
  2. Existuje objektívne testovanie, pretože tester aj vývojár pracujú nezávisle.
  3. Je vhodné na testovanie veľmi rozsiahlych systémov.
  4. Nie sú potrebné žiadne technické znalosti ani jazykové špecifikácie.
  5. Testovacie prípady možno navrhnúť hneď po dokončení požiadaviek.

Black-box vs. White-box testing

Rozdiel medzi black-box testovaním a white-box testovaním je jednou z najčastejších otázok na pohovore o testovaní. Obe sú rovnako dôležité a vykonávajú sa podľa situácie. Tu je niekoľko rozdielov, ktoré vnesú jasno do oboch techník.

Black-box testingWhite-box testing
Nevyžaduje sa ani znalosť implementácie.Celé vnútorné fungovanie SUT (system under test – testovaný systém) overuje tester, ktorý má o ňom úplné znalosti.
Zameriava sa na overenie funkčných požiadaviek na softvér.Zameriava sa na optimalizáciu kódu.
Toto testovanie zvyčajne vykonávajú testeri softvéru.Toto testovanie zvyčajne vykonávajú vývojári softvéru, pretože majú znalosti o vnútornej architektúre a implementácii aplikácie.
Je to časovo menej náročné.Je to relatívne časovo náročnejšie.
Typy – funkčné testovanie, nefunkčné testovanie, regresné testovanie atď.Typy testovania bielych skriniek – testovanie ciest, testovanie loop cyklov, testovanie podmienok atď.