Aplikacia ktora nepadá

Sú veci, ktoré sú súčasťou programovania a zákazník o nich ani nemusí vedieť. Jednou takou je aj automatické testovanie aplikácie. Predstaviť si to môžeme ako robota, ktorý vyskúša funkčnosť každej jednej maličkosti na vašom webe - od objednávkového formulára až po správne zobrazenie formátu času pri produkte. V dnešnom článku si povieme o testovaní niečo viac a dozviete sa, či by ho mal aj váš projekt obsahovať.

ČO TAK TO TROŠKA OTESTOVAŤ?

V jednoduchosti - automatické testovanie je zoznam krokov, ktoré treba v aplikácii otestovať predtým, ako ju poskytnete zákazníkom.

Môže to vyzerať napríklad aj takto:

  1. Zobrazí sa úvodná stránka?
  2. Zobrazia sa na úvodnej stránke nejaké produkty?
  3. Majú tieto produkty správny termín dodania?
  4. Keď kliknem na tlačidlo Objednať, otvorí sa mi nákupný košík?
  5. Dá sa v nákupnom košíku vyhľadať daná adresa?
  6. Evidujem objednávku po jej odoslaní v systéme?

 

Je to len malý výpočet veci, ktoré treba na stránke skontrolovať, ale aj týchto pár vecí dokáže dať naozaj zabrať. Pri malej aplikácií je takýchto krokov poľahky aj 100! Všetky skontrolovať si vyžaduje množstvo času a takéto testovanie je náchylné na chybu ľudského faktora, kde mi môže nevedomky nejaká chyba újsť. Čas sú peniaze a keď na niečo zabudneme, výsledkom môže byť nefunkčnosť aplikácie a nespokojní zákazníci. Hotová katastrofa.

“A NEŠLO BY TO LACNEJŠIE?”

Existujú nástroje viacerých typov a ktorú možno konkrétnejšie popíšem niekedy inokedy, ale tieto nástroje pomáhajú podobný zoznam krokov, aký som spomínal vyššie, zapísať do kódu a vykonať tak všetky testy v rámci jednotiek minút. Nieje to však zadarmo. Naprogramovanie takýchto testov zaberie určitý (nemalý) čas. Zatiaľ čo ručné kliknutie na úvodnú stránku a skontrolovanie jej funkčnosti zaberie človeku pol minúty, zautomatizovanie môže zabrať aj 10-15 minút času. To príliš nesedí do podnadpisu vyššie. Či?

ALE PREČO VLASTNE TESTY CHCEME?

Otvorene vám v dvoch reálnych prípadoch poviem, prečo sú testy potrebné a čomu by sme zabránili, keby sme ich v týchto projektoch mali.

Púšťal som do obehu novú verziu aplikácie, čo robím bežne a mal som zoznam vecí, ktoré treba skontrolovať. Jeden či dva body som pri tej repetitíve vynechal. Bola to “maličkosť”, ale zároveň kritická vec - odskúšanie filtra na stránke na vyfiltrovanie otvorených reštaurácii. Čo čert nechcel, táto vec prestala fungovať a nefungovala ďalšie 2 hodiny, kým nám to zákazník nenahlásil.

V druhom prípade som mal na stránke so zoznamom reštaurácií vypísať, či majú otvorené. Na prvý pohľad možno jednoduchá vec, no bol za tým ukrytý zložitejší algoritmus, ktorý bral do úvahy asi 12 rôznych stavov. Keď som jeden stav zapracoval, musel som ho otestovať tak, ako v prvom odseku tohto článku. Potom som zapracoval druhý stav - otestovať, tretí - otestovať. Nanešťastie sa stala chybička a prvý prestal fungovať. Musel som to znova testovať a opäť zisťovať, kde sa stala chyba. Kým som zapracoval tých 12 stavov (a každý jeden som musel pretestovať x-krát), prešli tri hodiny. Pritom stačilo napísať jediný test a ušetril by som nielen kopec nervov sebe, ale hlavne peniaze klientovi.

PRE KOHO SÚ TESTY VHODNÉ

V predošlom odstavci sme si povedali len dva príklady, pravda je však taká, že podobných je naozaj veľa. Program aplikácie je neskutočne komplexnou a zložitou vecou a aj malý zásah do jednej súčasti môže znefunkčniť niektorú ďalšiu.

Pre koho sú teda takéto testy vhodné? Ako bolo popísané v prvom príklade, pre každého, kto chce zabezpečiť čo najlepšiu funkčnosť aplikácie. Väčšinou je to vtedy, keď ju poskytujete tretej strane. Ak ju používate len vy alebo vaši kolegovia, pravdepodobne vám krátkodobá nefunkčnosť jedného filtru nebude prekážať.

Potom je tu druhý príklad, keď je aplikácia zložitá a vložené investície do jej testovania vám vo finále celkové náklady znížia.