Exploratory testing – prieskumné testovanie

Definícia prieskumného testovania (exploratory testing definition)

Prieskumné testovanie (exploratory testing) je typ testovania softvéru, pri ktorom si tester môže vybrať akúkoľvek možnú metodiku testovania softvéru. Ide o nepísaný prístup k testovaniu softvéru. Pri prieskumnom testovaní využívajú softvéroví testeri svoje poznatky, vedomosti, zručnosti a schopnosti.

Prieskumným testovaním sa overuje funkčnosť a činnosť softvéru, ako aj identifikujú funkčné a technické chyby v ňom. Cieľom prieskumného testovania je optimalizovať a zlepšiť softvér všetkými možnými spôsobmi. Často sa vykonáva ako technika testovania čiernej skrinky (black-box testing).

Prečo prieskumné testovanie?

Pri skriptovanom testovaní najprv navrhneš testovacie prípady a neskôr pristúpiš k ich vykonaniu. Naopak, prieskumné testovanie je simultánny proces navrhovania a vykonávania testov, ktoré sa vykonávajú súčasne. Neskriptované vykonávanie testov je zvyčajne nepremyslená činnosť, pri ktorej testeri vykonávajú kroky testu a porovnávajú skutočné výsledky s očakávanými.

Kedy by si mal použiť prieskumné testovanie?

  • V prípade, že do tímu prichádza nový tester, ktorý sa potrebuje rýchlo oboznámiť s aplikáciou a poskytnúť rýchlu spätnú väzbu.
  • Vhodné je vtedy, keď je potrebné preskúmať produkty z pohľadu používateľa.
  • Prieskumné testovanie je užitočné v scenároch, keď je potrebná skorá iterácia, pretože tímy nemajú veľa času na štruktúrovanie testovacích prípadov.
  • Prieskumné testovanie zabezpečuje, aby tester nevynechal okrajové (hraničné – edge cases) prípady, ktoré môžu viesť ku kritickým poruchám kvality.
  • Prieskumné testovanie možno použiť na pomoc pri unit testoch, dokumentovať testovacie prípady a použiť testovacie prípady na rozsiahle testovanie počas neskorších šprintov.
  • Kritické testovacie prípady boli otestované a prieskumné testy nevykonávaš ako náhradu za právne alebo bezpečnostné požiadavky.
  • Prieskumné testovanie sa zdá byť efektívnejšie pri hľadaní chýb ako iné druhy testov.
  • Nemáš napísané testovacie prípady a chceš otestovať svoj produkt bez nich.

Kedy používať prieskumné testovanie

Zdroj: guru99.com

Rozdiely medzi skriptovaným a prieskumným testovaním

Skriptované testovanie (structured testing) Exploratory testing
Usmernené na základe požiadaviek Usmerňovanie na základe požiadaviek a skúmanie počas testovania
Určenie testovacích prípadov v dostatočnom predstihu Určenie testovacích prípadov počas testovania
Potvrdenie testovania s požiadavkami Skúmanie systému alebo aplikácie
Kladie dôraz na predpovedanie a rozhodovanie Kladie dôraz na prispôsobivosť a učenie
Zahŕňa potvrdené testovanie Zahŕňa skúmanie
Je o kontrolných testoch Ide o zlepšenie návrhu testov
Ako keď prednášaš prejav – čítaš z návrhu Je to spontánne ako konverzácia.
Vedie ťa skript Vedie ťa tvoja myseľ

Typy prieskumného testovania (exploratory testing types)

1. Aktívne prieskumné testovanie (Active Exploratory Testing)

Aktívne prieskumné testovanie spočíva v tom, že tester navrhne automatizovaný skript pre svoje kontroly, ktorý vykoná iný tester. Tieto skripty v prípade potreby zohľadňujú predchádzajúce testy. Obaja testeri si zvyčajne počas postupu kontroly vymenia úlohy, aby dvakrát skontrolovali spoľahlivosť týchto skriptov a procesov.

Aktívne testy majú širšie pokrytie. Tieto skripty umožňujú aj lepšiu dokumentáciu, čo uľahčuje reprodukciu všetkých problémov, ktoré testeri nájdu.

2. Pasívne prieskumné testovanie (Passive Exploratory Testing)

Pasívne prieskumné testovanie si vyžaduje len jedného testera, hoci práca vo dvojici by mohla proces ešte viac zefektívniť. Tento prístup zahŕňa špecifický softvér, ktorý zaznamenáva činnosti testera – poskytuje mu jednoduché kroky na zopakovanie akéhokoľvek problému, ktorý odhalí. Zvyčajne je to vo forme videa s komentárom testera, ktorý krok za krokom vysvetľuje jeho činnosť.

Nahrávanie procesu testovania tiež poskytuje prehľad o výkonnosti aplikácie vrátane toho, ako rýchlo reaguje na vstupné požiadavky. Pasívne testovanie poskytuje testerom aj vývojovému tímu množstvo podrobných informácií o fungovaní softvéru.

Techniky prieskumného testovania (exploratory testing techniques)

Prieskumné testovanie sa zvyčajne uskutočňuje formou „prehliadky“ – tester skúma softvér čo najefektívnejším spôsobom. Existujú rôzne prehliadky, z ktorých si tím môže vybrať, vrátane:

Prehliadky podľa príručky (guidebook tours)

Tento prístup uprednostňuje zvýraznenú funkčnosť aplikácie, pričom presne kopíruje spôsob, akým bežný používateľ pracuje so softvérom a odhaľuje problémy, ktoré by prirodzene našiel.

Prehliadky histórie (history tours)

Táto prehliadka kontroluje najstaršie funkcie aplikácie, aby sa uistila, že sú stále funkčné, to je dôležité najmä vtedy, ak vývojári pridali nové funkcie, ktoré sú s ňou v rozpore.

Prehliadka peňazí (money tour)

Tento prieskumný test kontroluje kritické funkcie aplikácie, konkrétne tie, za prístup ku ktorým zákazníci a klienti platia peniaze – tie majú zvyčajne najvyššiu prioritu u testovacieho tímu.

Prehliadka zločinu (crime spree tour)

Testeri niekedy aktívne pracujú na rozbití aplikácie alebo vyvolaní negatívnych scenárov, napríklad zadaním neplatných informácií a skúmaním, ako na to aplikácia reaguje.

Prehliadka zadných uličiek (back alley tour)

Tento proces zahŕňa funkcie, ktoré pravdepodobne využije menej zákazníkov, tie sú rovnako dôležité pre akýkoľvek prístup k testovaniu, najmä preto, že budú interagovať s inými funkciami.

Intelektuálna prehliadka (intellectual tour)

Táto prehliadka posúva aplikáciu ďalej, testuje najzložitejšie funkcie s vyššími (niekedy maximálnymi) hodnotami, aby sa určila rýchlosť spracovania softvéru.

Prístupy k prieskumnému testovaniu (exploratory testing approach)

1. Prieskumné testovanie voľným štýlom (freestyle exploratory testing)

Testovanie voľným štýlom zahŕňa ad hoc prístup ku kontrole aplikácie. Má málo pravidiel, ktoré treba zohľadniť, takže jeho účinnosť môže byť rôzna, niektoré softvéry a komponenty si vyžadujú robustnejšiu metodiku.

2. Prieskumné testovanie založené na scenároch (scenario-based exploratory testing)

Testovanie založené na scenároch využíva reálne situácie ako základ každého testu, napríklad overovaním vstupov, ktoré používatelia pravdepodobne vykonajú počas typickej prevádzky tohto softvéru. Testeri sa usilujú zabezpečiť, aby každý nimi navrhnutý scenár zodpovedal tomu, ako používateľ pracuje s aplikáciou.

3. Prieskumné testovanie založené na stratégii (strategy-based exploratory testing)

Testovanie založené na stratégii zahŕňa širokú škálu špecifických metód vrátane testovania hraničných hodnôt, techník ekvivalencie, techník založených na rizikách a ďalších. To vo všeobecnosti uprednostňuje testerov, ktorí sú už s aplikáciou oboznámení, pretože môžu vytvoriť stratégie šité na mieru, ktoré zahŕňajú tieto jednotlivé metódy.

Prístup založený na stratégii sa zameriava predovšetkým na funkčnosť softvéru (a jeho vnútorné fungovanie) bez toho, aby sa zaoberal možnými scenármi, ktoré by mohli používateľa priviesť k problémom, ktoré sa objavia.

Ako vykonávať prieskumné testy

Nasleduje postup krok za krokom ako vykonávať prieskumné testovanie, ktoré sa nazýva aj riadenie testov na základe relácie:

1) Vytvorenie klasifikácie chýb

  • Kategorizuj bežné typy chýb zistené v minulých projektoch.
  • Analyzuj analýzu hlavných príčin problémov alebo chýb.
  • Nájdi riziká a vypracuj nápady na testovanie aplikácie.

2) Charta testovania (exploratory testing charter)

Charta testov by mala navrhovať:

  1. čo sa má testovať,
  2. ako sa to môže testovať,
  3. čo je potrebné preskúmať.

Nápady na testovanie sú východiskovým bodom skúmania testovania. Testovacia charta pomáha určiť, ako by koncový používateľ mohol systém používať.

Template pre chartu testovania nájdeš tu – exploratory testing charter template

3) Časový rozsah

  • Táto metóda zahŕňa dvojicu testerov, ktorí spolu pracujú najmenej 90 minút.
  • Počas týchto 90 minút by nemalo dôjsť k žiadnemu prerušeniu.
  • Časový box sa môže predĺžiť alebo skrátiť o 45 minút.
  • Táto relácia nabáda testerov, aby reagovali na reakciu systému a pripravili sa na správny výsledok.

4) Preskúmanie výsledkov

  • Vyhodnotenie chýb,
  • poučenie z testovania,
  • analýza oblastí pokrytia.

5) Debriefing

  • Zostavenie výstupných výsledkov,
  • porovnanie výsledkov s chartou,
  • kontrola, či je potrebné ďalšie testovanie.

Osvedčené postupy prieskumného testovania

Počas prieskumného vykonávania je potrebné vykonať nasledujúce kroky:

  • Poslanie testovania by malo byť veľmi jasné.
  • Viesť si poznámky o tom, čo je potrebné testovať, prečo je to potrebné testovať a posúdenie kvality produktu.
  • Sledovanie otázok a problémov vznesených počas prieskumného testovania.
  • Lepšie je vytvoriť dvojice testerov na efektívne testovanie.
  • Čím viac testujeme, tým je väčšia pravdepodobnosť, že vykonáme správne testovacie prípady pre požadované scenáre.
  • Rozdelenie softvéru na moduly pre jednoduchšie testovanie a efektívnejšie pokrytie testami.
  • Vytvorenie kontrolného zoznamu všetkých funkcií, ktoré sa majú otestovať, aby si žiadnu nevynechal.
  • Začni s testovaním základných používateľských scenárov. S postupom testovania ho rozšír o ďalšie funkcie, ktoré sa majú testovať.
  • Skontroluj grafické používateľské rozhranie v porovnaní so štandardmi v testovacej charte.
  • Zaznamenávaj problémy, ktoré sa vyskytli počas testov.

Výhody prieskumného testovania

  • Toto testovanie je užitočné, keď nie sú k dispozícii dokumenty s požiadavkami alebo sú k dispozícii čiastočne.
  • Odhaľuje chyby, ktoré sú bežne ignorované inými technikami testovania.
  • Pomáha rozšíriť predstavivosť testerov vykonávaním stále väčšieho počtu testovacích prípadov, čo v konečnom dôsledku zvyšuje aj produktivitu.
  • Toto testovanie preniká do najmenšej časti aplikácie a pokrýva všetky požiadavky.
  • Toto testovanie pokrýva všetky typy testovania a zahŕňa rôzne scenáre a prípady.
  • Generovanie nových nápadov počas vykonávania testov.
  • Pri prieskumnom testovaní môžu testeri anotovať chyby, pridávať tvrdenia (assertions) a hlasové poznámky a tak sa používateľský príbeh premení na testovací prípad.
  • Pomáha formalizovať zistenia a automaticky ich zdokumentovať. Každý sa môže zúčastniť na prieskumnom testovaní pomocou vizuálnej spätnej väzby, čo umožňuje tímu rýchlo sa prispôsobiť zmenám a uľahčuje agilný pracovný postup.
  • Integrácia prieskumného testovania s nástrojmi, ako je Jira, umožňuje zaznamenanú dokumentáciu priamo exportovať do testovacích prípadov.

Nevýhody prieskumného testovania

  • Toto testovanie závisí výlučne od schopností a znalostí testera.
  • Vzhľadom na ad-hoc povahu testovania v prieskumnom testovaní sa testy vykonávajú náhodne a preto nie sú vhodné na dlhšie vykonávanie a nie je možné opakovať rovnakú metodiku testovania.

Príklad prieskumného testu (exploratory testing example)

ConnectX, (fiktívna) platforma sociálnych médií, sa rozhodla uskutočniť prieskumný test, aby zabezpečila kvalitu a spoľahlivosť svojich funkcií zverejňovania príspevkov. Spoločnosť ConnectX naplánovala prieskumný test počas fázy vývoja veľkej aktualizácie aplikácie, aby sa zabezpečilo komplexné pokrytie testovacích prípadov v rámci regresného testovania a testovania nových funkcií.

Pridelený tester vykonal prieskumný test tak, že sa prihlásil do svojho testovacieho účtu a prešiel na domovskú stránku. Preskúmal dostupné možnosti vytvorenia nového príspevku a otestoval rôzne kombinácie textového a mediálneho obsahu. Pozornosť venoval tomu, ako aplikácia spracúva rôzne scenáre, napríklad nahrávanie obrázkov, videí alebo odkazov. Okrem toho otestoval nastavenia ochrany osobných údajov a overil, či sú správne použité.

Tester nahlásil niekoľko chýb, vrátane:

  • prípady, keď sa nahraté obrázky nezobrazovali na telefónoch so systémom Android, ktoré boli držané vo vodorovnej polohe,
  • prípady, keď sa nastavenia súkromia neuplatňovali správne, pretože si mohol vidieť súkromné e-maily iných používateľov, keď si stlačil tlačidlo „skontrolovať“ na jednom z ich príspevkov v kanáli.

Spoločnosť ConnectX dokázala problémy vyriešiť ešte pred releasom aktualizácie aplikácie pre svojich používateľov. Výsledkom bolo zlepšenie používateľského zážitku. Testy našli cenné chyby, ktoré neexistovali vo vnútri testovacích prípadov a pri prístupe založenom len na testovacích prípadoch by sa neobjavili.

Nástroje prieskumného testovania (exploratory testing tools)

Nástroje na debuggovanie: Nástroje na ladenie môžu testerom pomôcť rýchlejšie a efektívnejšie identifikovať a izolovať chyby počas prieskumného testovania.

Record and playback: Tieto nástroje umožňujú testerom nahrávať akcie alebo interakcie s aplikáciou a následne ich prehrávať s cieľom zopakovať rovnaké správanie. To môže byť užitočné pri automatizovanom regresnom testovaní alebo pri vytváraní reprodukovateľných testovacích prípadov.

Exploratory testing: Nástroje prieskumného testovania

1) Xray Exploratory App (XEA)

Aplikácia Xray Exploratory App (XEA) zjednodušuje proces prieskumného testovania tým, že ti poskytuje nástroje na získavanie dôkazov a jednoduché zdieľanie tvojich poznatkov. XEA uľahčuje proces tvorby dokumentácie, takže môžeš pokryť viac netestovaného kódu, objaviť nové scenáre testovania a nájsť ťažko odhaliteľné chyby.

2) Bug Magnet

Bug Magnet je tester relácií pre prehliadače Chrome a Firefox. Nástroj ti pomôže zahrnúť bežné problematické hodnoty a okrajové prípady. Je to jeden z najlepších prieskumných nástrojov, ktorý poskytuje jednoduchý prístup počas prieskumných testovacích relácií.

3) Exploratory Testing Chrome Extension

Ide o rozšírenie prehliadača Chrome, ktoré sa používa na prieskumné testovanie webu. Toto rozšírenie nahlasuje chyby, nápady, poznámky. Dokáže robiť screenshoty, trackuje URL automaticky, dokáže session testovania exportovať v JSON, CSV alebo HTML formáte.

4) qTest Explorer

qTest je ľahko použiteľné, škálovateľné riešenie na správu testov, ktoré umožňuje testerom centralizovať a urýchliť správu testov. Nástroj qTest na prieskumné testovanie zjednodušuje a zefektívňuje každý krok procesu QA.

5) Azure Test Plans

Azure Test Plans je kľúčovou súčasťou platformy Azure spoločnosti Microsoft a umožňuje testerom získavať bohaté údaje v mnohých scenároch. Táto možnosť je vhodná pre desktopové aj webové aplikácie a zároveň poskytuje end-to-end traceability, ktorá má jasný záznam o vývoji softvéru.

Tento prístup si však často vyžaduje hlbšiu integráciu so službou Azure, a preto je na úkor flexibility.

Záver

Prieskumné testovanie má čo ponúknuť spoločnostiam vyvíjajúcim softvér všetkých druhov, pretože dopĺňa skriptové testovanie a mnohé ďalšie kontroly.

Pomocou prieskumného testovania môžu tímy zabezpečujúce kvalitu testovať aplikácie na vyššej úrovni, čím sa zlepší kvalita výsledného softvéru a vývojárom sa pomôže odstrániť prípadné chyby, preto ho neodporúčame ignorovať.

Ak vieš po nemecky a hľadáš si prácu ako IT tester, prezri si naše benefity pre zamestnancov a reaguj na najnovšie ponuky práce.

O autorovi

Michaela Kojnoková

Agile Test Engineer

Po štúdiu informatiky na ŽU a TUKE som sa najviac ponorila do oblasti automatizácie testovania. Okrem toho sa venujem tvorbe webov, databázam, dátovej analytike, umelej inteligencii a strojovému učeniu. Mám rada cestovanie, šport a najviac si užívam čas strávený v prírode s mojimi blízkymi. LinkedIn

Daj nám o sebe vedieť