Prečo testovanie nikdy nevyjde z módy?
Spomeň si, aké to bolo, keď si naposledy chcel použiť čokoľvek, čo nefungovalo tak, ako si potreboval. Ako si sa cítil? Nahnevane? Zúfalo? Frustrovane? Tak si skús predstaviť, že by sa veci, najmä softvér, pred uvádzaním na trh netestovali... Dnes už takmer každý z nás pre prácu a bežný život využíva niekoľko druhov technologických zariadení. Od kávovaru, ktorý nám pripraví rannú kávu, označovač cestovného lístka cestou do práce, až po appku na zakúpenia parkovného (a to sme len pri ranných činnostiach). Vidíš, aká tenká je hranica medzi plynulým a pekným ránom a otrasným ránom plným hnevu? Sú to (aj) funkčné veci, bez ktorých sa nezaobídeme.
Boli obdobia, kedy sa testeri považovali za „klikačov“ a testovanie bolo len nutnosťou na poslednú chvíľu. Roky vývoja technológií však spôsobili, že testovanie si vyslúžilo ústrednú pozíciu v životnom cykle vývoja softvéru a mnohé produkty sú testované v každej fáze tohto cyklu. Z testovania sa stala nepretržitá činnosť a v dôsledku tohto posunu sa vyvinuli aj testovacie funkcie a činnosti. Reakciou na túto zmenu je aj to, že je stále potrebné veľké množstvo Software Testerov.
Čo je Testovanie?
Testovanie softvéru je okrem zabezpečenia jeho bezchybného fungovania aj metódou kontroly, či skutočný softvérový produkt zodpovedá očakávaným požiadavkám. Zahŕňa spustenie softvérových/systémových komponentov ich tempom pomocou manuálnych alebo automatických nástrojov na vyhodnotenie jednej alebo viacerých vlastností, ktoré sú predmetom záujmu.
Cieľom testovania softvéru je nájsť chyby, medzery, alebo doplniť chýbajúce požiadavky. Počas vývoja softvéru sa chyby môžu objaviť v ktorejkoľvek fáze jeho životného cyklu.
Správne testovaný softvérový produkt zaisťuje spoľahlivosť, bezpečnosť a vysoký výkon, čo vedie k úspore času, nákladovej efektívnosti a spokojnosti zákazníkov.
Testovanie je dôležité najmä preto, že cena v dôsledku zlyhania softvéru môže byť skutočne vysoká.
Aký drahý a nebezpečný môže byť zle testovaný softvér?
Softvérové chyby môžu potenciálne spôsobiť finančné a ľudské straty. História vývoja je plná takýchto príkladov:
- V roku 1985 kanadský prístroj na radiačnú terapiu Therac-25 zlyhal v dôsledku softvérovej chyby a doručil pacientom smrteľné dávky žiarenia, pričom 3 ľudia zomreli a 3 ďalší boli vážne zranení.
- V máji 1996 softvérová chyba spôsobila, že na bankové účty 823 zákazníkov veľkej americkej banky bolo pripísaných 920 miliónov amerických dolárov.
- V apríli 1999 spôsobila softvérová chyba zlyhanie vypustenia vojenského satelitu v hodnote 1,2 miliardy dolárov, čo je najdrahšia nehoda v histórii.
- V roku 2008 sa otvoril terminál 5 letiska Heathrow, ktoré bolo v tom čase považované za veľkolepý vstup Británie do 21.storočia. Okrem iného sa pýšili novým systémom vybavovania zákazníkov a triedenia batožiny. Počas nasledujúcich 10 dní sa stratilo približne 42 000 tašiek a viac ako 500 letov bolo zrušených, čo stálo viac ako 16 miliónov libier.
- Na prelome rokov 2013-2014 automobily Nissan stiahli z trhu viac ako 1 milión áut z dôvodu zlyhania softvéru senzorov airbagov. V dôsledku tohto zlyhania softvéru boli hlásené dve nehody.
- Starbucks bol v roku 2015 nútený zatvoriť asi 60 percent obchodov v USA a Kanade kvôli zlyhaniu softvéru v jeho POS systéme. V jednom okamihu obchod podával kávu zadarmo, pretože nedokázali spracovať transakciu.
- V roku 2015 sa bojové lietadlo F-35 stalo obeťou softvérovej chyby, ktorá mu znemožňovala správne rozpoznať ciele.
- V apríli 2015 sa terminál Bloomberg v Londýne zrútil v dôsledku softvérovej chyby, ktorá postihla viac ako 300 000 obchodníkov na finančných trhoch. To prinútilo vládu odložiť predaj dlhu za 3 miliardy libier.
- Spoločnosť Tricentis zaoberajúca sa testovaním softvéru analyzovala v roku 2017 606 softvérových zlyhaní od 314 spoločností, aby lepšie pochopila obchodný a finančný vplyv zlyhaní softvéru. Správa odhalila, že tieto zlyhania softvéru postihli 3,6 miliardy ľudí a spôsobili finančné straty vo výške 1,7 bilióna dolárov a kumulatívny celkový počet 268 rokov prestojov.
Prečo testovať softvér?
Okrem finančných strát a potencionálneho nebezpečenstva existujú aj ďalšie dôvody, prejdime si však každý samostatne:
- Šetrí peniaze
Testovanie softvéru v prvom rade šetrí peniaze. Vývoj a implementácia softvéru zahŕňa niekoľko fáz. Každá fáza vyžaduje koordináciu a komunikáciu medzi viacerými tímami a každá fáza má zoznam spôsobov, ako by sa veci mohli pokaziť.
Zachytenie týchto problémov, keď je softvér už aktívny, je nočnou morou. Musia sa zmeniť úlohy zamestnancov, aby vyriešili problémy. A medzitým zákazníci nemôžu používať softvér. Vývojár tak neprichádza len o peniaze na priamych nákladoch na opravu softvéru, ale aj o peniaze prostredníctvom stratených potenciálnych transakcií.
Testovanie softvéru umožňuje včas zachytiť problémy a opraviť ich skôr, ako sa stanú katastrofami. Oprava softvéru je vo všeobecnosti vždy drahšia ako testovanie počas vývojových fáz.
- Vzbudzuje dôveru a spokojnosť zákazníka
Zvyšuje dôveru a spokojnosť zákazníkov. Testovanie produktu počas jeho životného cyklu vývoja buduje dôveru a spokojnosť zákazníkov, pretože poskytuje prehľad o silných a slabých stránkach produktu. V čase, keď zákazníci dostanú produkt, bol už niekoľkokrát vyskúšaný, testovaný a prináša kvalitu.
- Zlepšuje bezpečnosť
Nezabezpečený kód aplikácie môže zanechať slabé miesta, ktoré môžu útočníci zneužiť. Keďže väčšina aplikácií je dnes online, môžu byť hlavným cieľom kybernetických útokov a mali by byť dôkladne testované v rôznych fázach vývoja aplikácií. Napríklad, webová aplikácia zverejnená bez riadneho testovania softvéru sa môže ľahko stať obeťou útoku skriptovania medzi stránkami, pri ktorom sa útočníci pokúšajú vložiť škodlivý kód do webového prehliadača používateľa získaním prístupu cez zraniteľnú webovú aplikáciu. Netestovaná aplikácia sa tak stáva prostriedkom na doručovanie škodlivého kódu, ktorému sa dalo zabrániť správnym testovaním softvéru.
- Zlepšuje kvalitu produktu
Pokiaľ ide o príťažlivosť pre zákazníkov, dodanie kvalitného produktu je dôležitou metrikou, ktorú treba zvážiť. Výnimočný produkt môže byť dodaný len vtedy, ak je pred uvedením na trh efektívne otestovaný. Testovanie softvéru pomáha produktu prejsť kontrolou kvality a splniť kritériá a špecifikácie definované používateľmi.
- Zlepšenie procesu vývoja
Dnes je možné nájsť širokú škálu scenárov na redukciu chýb. Najlepšou cestou na zlepšenie vývoja je, ak testeri softvéru súbežne pracujú s vývojovým tímom, čo je užitočné aj pri zrýchlení procesu vývoja.
- Jednoduché pridávanie nových funkcií
Čím je kód prepojenejší a starší, tým je jeho zmena náročnejšia. Testy pôsobia proti tejto tendencii kalcifikácie tým, že umožňujú vývojárom s istotou pridávať nové funkcie. Pre začínajúceho vývojára môže byť zmena starších častí kódu desivá, ale len pomocou testov dokáže zistiť, či niečo dôležité neporušil.
Kým bude existovať vývoj, bude nutné aj testovanie. Žiaden zákazník nebude spokojný, ak softvér nebude fungovať podľa požiadaviek a predstáv. Testeri zohrávajú dôležitú úlohu, môžu pomôcť podniku vyrábať kvalitný produkt, ktorý by si získal dôveru zákazníkov. Testovanie má teda v technologickom svete tú lepšiu budúcnosť! Ak ju chceš mať aj Ty, študuj s IT v kurze:
Štúdium otvárame dvakrát ročne, a to vždy vo februári a v septembri. Konkrétne termíny začiatku sú uvedené pri každom programe. Za včasné prihlásenie v rámci zľavového countdownu Ti vieme poskytnúť zľavu až do výšky 10% z celkovej ceny kurzovného.
Chcem vedieť viac