Čo je manuálne testovanie?

Čo je manuálne testovanie?
10 MIN
20 jún 2023

Keď je vytvorená softvérová aplikácia, je nevyhnutné ju podrobiť testovaniu. Len tak vieme overiť, že produkt spĺňa nielen funkcionálnu špecifikáciu, ale rovnako aj nefunkcionálne požiadavky, ako napríklad výkon (performance), použiteľnosť (accessibility) alebo bezpečnosť (security).

Testovanie sa môže vykonávať manuálne alebo pomocou nástrojov na automatizované testovanie. Keďže táto časť sa venuje manuálnemu testovaniu, predpokladáme, že všetky testy sa vykonávajú manuálne.

V tejto kapitole sa budeme venovať formálnej definícii, procesu, výhodám a obmedzeniam manuálneho testovania, tipom, ktorým by mal každý manuálny tester venovať pozornosť a na záver si povieme o bežných mýtoch spojených s manuálnym testovaním.

Obsah

“Manuálne testovanie je forma testovania, pri ktorej manuálne overujeme splnenie požiadaviek aplikácie prostredníctvom vykonávania preddefinovanej sady testovacích prípadov ( tzv. test cases) a bez použitia akéhokoľvek automatizačného nástroja.”

Proces manuálneho testovania

Poďme sa zoznámiť s celým procesom manuálneho testovania a porozumieť rôznym aktivitám, ktoré sa vykonávajú pri manuálnom testovaní akéhokoľvek softvéru.

  • Porozumenie požiadavkám – Začíname zhromažďovaním a analyzovaním všetkých požiadaviek. Táto fáza je kľúčovou súčasťou testovania, pretože požiadavky tvoria základ alebo bázu testovacích prípadov (test cases) a celkového testovania aplikácie.
  • Plán a stratégia testovania – V tejto fáze sa definuje dokument obsahujúci rozsah a ciele testovania (testovací plán) a rozhoduje sa o zásadách, ktoré budú určovať, akým spôsobom sa bude testovanie vykonávať (testovacia stratégia).
  • Vytvorenie testovacích prípadov – Po plánovaní testovania a definovaní testovacej stratégie nasleduje príprava testovacích prípadov na základe funkčných a nefunkčných požiadaviek aplikácie.
  • Vykonávanie testovacích prípadov a zaznamenávanie defektov alebo bugov – Po príprave testovacích prípadov a dostupnosti aplikácie na testovanie sa začína s vykonávaním testovacích prípadov. Každý prípad sa označuje ako úspešný alebo neúspešný a pri každom neúspechu sa zaznamenáva defect alebo bug.
  • Opakované testovanie a regresia – Po oprave defektov vývojármi sa opakujú testy, ktoré pôvodne zlyhali a následne sa vykonáva aj regresné testovanie. Cieľom regresného testovania je zabezpečiť, že opravené defekty nebudú mať negatívny vplyv na už existujúcu funkcionalitu.
  • Zdieľanie výsledkov testovania – Po dokončení celého testovacieho cyklu sa výsledky testovania zdieľajú s príslušnými zainteresovanými stranami. Prezentované sú aj s problémami, ak sa vyskytnú.

Výhody manuálneho testovania

Pozrime sa na niektoré z jeho výhod:

  • Manuálne testovanie pomáha nájsť defekty v softvéri pred jeho odovzdaním zákazníkovi, a tak podporuje zvyšovanie kvality produktu.
  • Pomáha pri včasnom identifikovaní defektov. Defekty zistené zákazníkom alebo dokonca neskôr v priebehu používania aplikácie sú spojené s vyššími nákladmi spojenými s idenfikovaním a opravou. Efektívne vykonávané manuálne testovanie pomáha týmto situáciám včasným odhalením defektov a zlyhaní predchádzať.
  • Pomáha zabezpečiť dodržiavanie nielen funkčných, ale aj nefunkčných požiadaviek – a to výkonu, použiteľnosti a spoľahlivosti pre používateľa.

Nevýhody manuálneho testovania

  • Časová náročnosť – Z časového hľadiska považujeme manuálne testovanie za pomerne náročné, nakoľko IT testeri musia vytvárať vyčerpávajúce testovacie prípady a následne vykonávať postupne jednotlivé kroky testovacích prípadov. Dokumentácia výsledkov testov s reálnymi výsledkami je tiež časovo náročná aktivita.
  • Vyžaduje viac zdrojov – V porovnaní s automatizovaným testovaním je pri manuálnom testovaní potrebných viac zdrojov na vytvorenie a vykonávanie testovacích prípadov.
  • Náchylné na ľudské chyby – Manuálne testovanie veľmi závisí od schopnosti alebo zručnosti osoby vytvárajúcej a vykonávajúcej testovacie prípady. Aj s preddefinovanými požiadavkami a krokmi testu môžu dvaja testeri dospieť k odlišným výsledkom testu na základe svojho porozumenia a skúsenosti.
  • Nie všetky testy môžu byť vykonané manuálne – niektoré testy, ako napríklad výkonnostné testy (performance testing), testovanie bezpečnosti alebo testovanie scenárov pri distribučnom testovaní (distributed testing) nemožno vykonávať efektívne bez akýchkoľvek automatizačných, výkonnostných alebo bezpečnostných nástrojov.

Tipy pre lepšie manuálne testovanie

Ak sa chceš v manuálnom testovaní zdokonaliť, zosumarizovali sme pre teba niektoré tipy a predpoklady, ktoré ti pomôžu stať sa lepším manuálnym testerom.

  • Investuj do odbornej prípravy a rozvoja zručností – Proces vzdelávania je nevyhnutnou súčasťou procesu na ceste stať sa efektívnym manuálnym testerom. V dnešnej dobe dynamického softvérového priemyslu je dôležité udržiavať krok s rýchlymi technologickými zmenami a novými trendmi v oblasti testovania softvéru. Bez toho by sme mohli zaostávať za konkurenciou a nebyť schopní dosahovať optimálne výsledky.
  • V nepretržite sa meniacom prostredí softvérového testovania je tiež nevyhnutné udržiavať si kontakt s komunitou testovacích profesionálov. Účasť na odborných konferenciách, školeniach a stretnutiach poskytuje príležitosť zdieľať skúsenosti, učiť sa od iných a získať nové perspektívy na testovanie softvéru.
  • Posilňuj schopnosť analyzovať a porozumieť požiadavkám softvéru. Táto schopnosť je jednou z kľúčových zručností, ktorú by mal mať každý manuálny tester. Dôležité je tiež logické myslenie a schopnosť detailne rozbiť požiadavky na testovacie scenáre. Toto umožňuje testerovi identifikovať všetky možné situácie, ktoré by mohli ovplyvniť správne fungovanie softvéru a zároveň navrhnúť adekvátne testovacie prípady.
  • Rozširuj si znalosti v oblasti testovacích techník a nástrojov – manuálni testeri by mali byť oboznámení s rôznymi typmi testov, ako sú napríklad testovanie jednotiek, integračné testovanie, regresné testovanie a testovanie použiteľnosti. Je tiež potrebné zoznámiť sa s rôznymi nástrojmi, ktoré uľahčujú a automatizujú testovací proces.
  • Získavaj relevantné skúsenosti z praxe – Vzdelávanie a prax sú úzko prepojené. Získanie praktických skúseností v testovaní softvéru je nenahraditeľné. Len tak je možné zlepšiť svoje schopnosti a pochopiť, ako sa rôzne typy softvéru správajú a reagujú na rôzne testovacie scenáre. Skúsenosti v praxi tiež umožňujú testerovi vyvinúť si intuíciu a odhaľovať potenciálne problémy, ktoré by mohli ovplyvniť kvalitu softvéru.
  • Rozvíjaj komunikačné schopnosti – Tester potrebuje pri svojej práci komunikovať s rôznymi zainteresovanými stranami, vrátane vývojárov, manažérov a niekedy aj klientov. Dobré komunikačné zručnosti pomáhajú v efektívnom zhromažďovaní požiadaviek, pretože jasne vyjadrené otázky pomáhajú predchádzať akýmkoľvek nezrovnalostiam v požiadavkách.

Na záver je nutné zdôrazniť, že neustále vzdelávanie a rozvoj zručností sú kľúčovými faktormi pre úspech v oblasti manuálneho testovania softvéru. Prax a skúsenosti spolu s odbornou prípravou umožňujú testerom dosiahnuť lepšie výsledky a prispieť k vytváraniu kvalitnejších a spoľahlivejších softvérových produktov.

Mýty o manuálnom testovaní

Automatizácia a AI nahradia manuálne testovanie

Sú druhy testovania, ktoré môžu byť vykonané len človekom ako exploratívne testovanie, testovanie použiteľnosti, testovanie UI testing, atď. a pre konvenčný spôsob testovania. Manuálne testovanie sa vyžaduje, kým nedosiahne aplikácia určitú stabilitu a nebudú napísané skripty pre automatizované testovanie.

Testovanie začína až po dokončení vývoja

Proces testovania môže začať už v fáze získavania požiadaviek a v súlade s činnosťami vývoja softvéru môže testovanie prelínať všetky fázy vývoja softvéru.

Testovanie je jednoduchá práca

Efektívne testovanie vyžaduje úplnú znalosť aplikácie, ktorá sa má testovať, znalosť oblasti, štruktúry databázy a často aj znalosť vnútornej architektúry.

Testovanie zvyšuje náklady projektu

Cieľom testovania je zabezpečiť kvalitu softvéru a včasné zistenie chýb. Chyby zistené v skorých fázach aplikácie a pred dodaním projektu výrazne znížia náklady na opravu chýb.

  • Automatizácia a umelá inteligencia celkom nahradia manuálne testovanie – Po prvé, existuje mnoho druhov testovania, ktoré môže vykonávať iba človek, ako napríklad exploratívne testovanie (exploratory testing), testovanie použiteľnosti, testovanie používateľského rozhrania (UI testing) atď. Po druhé, aj pre konvenčnú formu testovania je potrebné manuálne testovanie, kým aplikácia nezíska stabilitu a nebudú napísané skripty pre automatizáciu. Navyše, dosiahnutie 100 percentnej automatizácie testovania je takmer nemožné, takže manuálne testovanie tu s nami určite zostane i naďalej.
  • Testovanie začína až po dokončení vývoja – Proces testovania môže začať už v fáze získavania požiadaviek a v súlade s činnosťami vývoja softvéru môže testovanie prelínať všetky fázy vývoja softvéru. Veľmi bežným modelom , ktorý tento prístup implementuje, je V-model.
  • Testovanie je jednoduchá práca – Efektívne testovanie vyžaduje úplnú znalosť aplikácie, ktorá sa má testovať, znalosť oblasti, štruktúry databázy a často aj znalosť vnútornej architektúry. Okrem toho musí tester dôkladne testovať každý aspekt aplikácie bez predpokladov a jasne komunikovať problémy vývojárom. Testovanie sa teda nedá považovať za jednoduchú prácu.
  • Testovanie zvyšuje náklady projektu – Cieľom testovania je zabezpečiť kvalitu softvéru a včasné zistenie chýb. Chyby zistené v skorých fázach aplikácie a pred dodaním projektu výrazne znížia náklady na opravu chýb. Preto testovanie v dlhodobom horizonte nezvyšuje náklady na projekt, naopak pomáha znížiť náklady na opravu chýb.

Záver

V tomto príspevku sme sa pokúsili pokryť tému manuálneho testovania. Od definície až po potreby, obmedzenia, tipy a mýty. Ak sa chceš naučiť rôzne koncepty manuálneho testovania, odporúčame ti našu sériu tutoriálov o softvérovom testovaní.

V tejto sérii tutoriálov sme nielen pokryli teoretické aspekty softvérového testovania, ale poskytli sme aj praktické zdroje, ako sú testovacie prípady pre rôzne scenáre, tutoriály o testovaní rôznych typov aplikácií a podobne.