Proces automatizovaného testovania: Kedy a ako (ne)automatizovať?

Zaujímaš sa o automatizované testovanie softvéru a chceš vedieť, čo všetko spadá pod proces automatizácie? V článku sa dozvieš, v akých prípadoch možno automatizovať aj to, kedy by si sa mal automatizovaniu, naopak, vyhnúť. V neposlednom rade si vyvrátime niektoré mýty o automatizácii testovania.

Automatizované testovanie umožňuje zautomatizovať manuálny testovací proces za pomoci technológie. Ide teda o špecifický typ softvérového testovania, ktorý je založený na automatizovanom vykonávaní testovacieho prípadu prostredníctvom automatizovaného nástroja. Cieľom je zefektívniť celkový proces vykonania testu rovnako ako prácu testera, skrátiť čas testovania, znížiť náklady a eliminovať chybovosť zapríčinenú ľudskou nepozornosťou so zámerom dosiahnutia čo najlepšej možnej kvality výsledného produktu.

Fázy automatizovaného testovania softvérových produktov a aplikácií

Proces automatizácie testov pozostáva zo súborov činností, ktoré sú rozdelené do 6 fáz podľa toho, kedy k nim prichádza v rámci testovania. Prvým a zároveň najdôležitejším krokom je pochopenie požiadaviek. To je nevyhnutné ešte pred tým, ako tester automatizácie začne s automatizovaním.

Na základe požiadavky totiž definuje rozsah automatizácie a vyberie správny automatizovaný nástroj, čo predstavuje dve ďalšie fázy. V rámci vymedzenia rozsahu je úlohou testera nájsť vhodné testovacie prípady, ktoré možno automatizovať. Následne prichádza na rad už spomínaná voľba nástroja. Pri nej prihliada na požiadavky, rozpočet a cieľ projektu, odbornosť i náročnosť programovania.

Odporúčame ti...

Pokiaľ si IT tester bez skúseností a hľadáš šikovný spôsob, ako sa stať testerom automatizácie, pomôcť ti môže práve automatizované testovanie kurz, ktorý ťa naučí potrebným základom pre prácu testera.

Aby sme mohli testovacie skripty opakovane využívať a aktualizovať, je potrebné vytvoriť a nastaviť automatizovaný framework. Vďaka skriptám budú aj robustné testy udržateľné. V ďalšom kroku prebieha príprava skriptov pre testovacie prípady, ktoré boli vybrané na automatizovanie.

Poslednou fázou je integrácia CI/CD, z angl. Continuous integration and continuous delivery. Tá sa v súčasnosti veľmi často využíva v IT spoločnostiach – ide o šikovný nástroj, ktorý umožňuje naplánovať spustenie testovacích prípadov na požiadanie či nastaviť automatické spustenie prípadov po ich nasadení do programu.

Ktoré testovacie prípady je možné zautomatizovať pri vývoji softvéru

Hoci so sebou automatizácia testov prináša mnohé výhody, nie všetky testovacie prípady sú pre ňu vhodné. Uvedieme si preto štyri prípady, v ktorých testy možno automatizovať. (Pozri si aj náš článok Manuálne vs. automatizované testovanie.)

  • Časovo náročné testy – automatizácia pomáha skracovať čas vykonania testov.
  • Opakované testovanie s veľkým súborom dát – v tomto prípade šetrí automatizovanie množstvo vynaloženého úsilia zo strany testera.
  • Testovanie kritickej funkčnosti programu – automatizáciu môžeme vykonať pri testovacích prípadoch zameraných na overovanie kritickej funkcionality aplikácie s najvyššou prioritou.
  • Paralelné testovanie – v niektorých prípadoch, ako napríklad pri paralelnom vykonávaní testu s viacerými používateľmi, nie je manuálne testovanie možné, prípadne je veľmi náročné ho zrealizovať.

Nie všetky testy sú vhodné na automatizovanie

Teraz, keď už vieš, čo automatizovať, je dôležité venovať pozornosť aj testovacím prípadom, ktoré nemožno/by nemali byť automatizované.

  • Zriedkavo používané funkcie, ktoré sú časovo náročné na napísanie – z hľadiska návratnosti investícií sa takýto typ funkcií neoplatí automatizovať.
  • Ešte netestované, novo navrhnuté testovacie prípady – pri nových prípadoch je vhodné vykonať najprv manuálne testovanie, ktoré je finančne menej nákladné, a to z dôvodu pravdepodobnej chybovosti nového programu.
  • Grafické používateľské rozhranie (GUI) – testovanie používateľského rozhrania je najlepšie realizovať pomocou manuálnych testov, pretože aj tá najmenšia zmena by mala za následok zlyhanie testovacích prípadov.
  • Testovanie použiteľnosti – so súčasne dostupnými technológiami nie je automatizáciu možné vykonať.
  • Prieskumné testovanie – tento druh testov sa nezaobíde bez neustáleho učenia sa o programe a simultánneho testovania, čo znemožňuje ich automatizáciu.

 

Tester pre automatizované testovanie pozera na monitor počítača
Automatizované testovanie znižuje čas potrebný na vykonanie testov

Kedy by sme mali využiť automatizované testovanie  softvéru?

S tvorbou automatizovaného frameworku je ideálne začať paralelne s vývojárskym tímom, a to po zadefinovaní všetkých možností automatizácie počas fázy plánovania testov. Na skriptovanie testovacích prípadov by mal byť program stabilný a bez častých zmien – vtedy môžeme začať s automatizovaním.

V akých prípadoch sa automatizované testovanie neodporúča

Existujú aj testovacie prípady, kedy automatizované testovanie nie je vhodné. Automatizáciu by napríklad IT tester automatizovaného testovania nemal vykonávať pri nedostatočných odborných znalostiach o automatizovanom nástroji a/alebo programovacom jazyku. Ak totiž nepozná úplný potenciál a všetky funkcionality používaného nástroja či programovacieho jazyka, je mimoriadne nepravdepodobné, že automatizáciu dovedie do šťastného konca.

S úspechom sa nestretne ani pri nesprávne zvolených testovacích prípadoch pre automatizovanie, ktoré sme uviedli vyššie, alebo pri programoch s častými zmenami. Tie si vyžadujú pravidelnú údržbu a s ňou spojené i vyššie náklady. Automatizáciu neodporúčame ani v prípade neefektívne napísaných testovacích skrípt, napríklad s obmedzeným či nedostatočným overením. V dôsledku toho by totiž mohli byť výsledky testov vyhodnotené ako falošne pozitívne, čím by sa mohli prekryť reálne chyby v aplikácii.

Mýty o automatizovanom testovaní

Spolu s automatizovaním testovacích prípadov prichádzajú na rad tiež mylné predstavy o tomto procese. Nižšie si predstavíme a rovno aj vyvrátime tie najbežnejšie mýty o automatizovanom  testovaní

  • Automatizovanie testov je nákladné – ak je automatizácia vykonávaná správne, môže z dlhodobého hľadiska znížiť náklady, ktoré by boli inak vynaložené na manuálne testovanie.
  • Môžeme vykonať úplnú automatizáciu – 100 % automatizácia je, žiaľ, možná iba vo veľmi špecifických programoch a nemožno ju realizovať vo všetkých testovacích prípadoch.
  • Najlepšími testermi automatizácie sú vývojári – každý tester by mal ovládať minimálne základy programovania, aby nájdených chybám aj rozumel a vedel s nimi náležite pracovať. Napriek tomu však na program stále potrebuje pozerať predovšetkým z pohľadu testera pre zabezpečenie čo najlepšej používateľskej skúsenosti.
  • Automatizované testovanie nahradí manuálne – nástup automatizácie so sebou síce priniesol prerozdelenie rol testerov na IT testerov manuálneho testovania a testerov pre automatizované testovanie, no manuálne overenie bude vždy potrebné pre finálnu kontrolu aplikácie. Automatizácia preto nie je a ani nebude schopná eliminovať potrebu pre manuálne testovanie.

Každý testovací prípad je jedinečný a podľa toho treba postupovať aj pri samotnom testovaní. Či už sa rozhodneš pre automatizáciu, alebo ostaneš verný manuálnemu testovaniu, svoje skills môžeš rozvíjať i u nás v msg life Slovakia. Za odplatu ti ponúkame premakané firemné benefity a nadštandardný IT tester plat. Uplatnenie v našom tíme si nájde IT tester bez praxe rovnako ako skúsený špecialita IT tester, tak neváhaj, pozri si voľné pracovné miesta a pošli nám tvoje CV ešte dnes.

Daj nám o sebe vedieť