1. diel - Úvod do praktického testovania softvéru Nové
V úvodnom tutoriále kurzu praktického testovania projektov si vysvetlíme, prečo je dôležité testovať. Predstavíme si základné prístupy k testovaniu softvéru, vrátane validácie formulárov, testovaniu single-page a multiple-page aplikácií alebo testovanie responsivity. Zameriame sa tiež na rozdiely medzi User Experience (UX) a User Interface (UI), aby sme zaistili komplexný pohľad na testovanie.
Minimálne požiadavky
Pre úspešné absolvovanie kurzu je nutná znalosť jazyka Python aspoň v rozsahu našich kurzov:
- Základná konštrukcia jazyka Python,
- Objektovo orientované programovanie v Pythone,
- Testovanie v Pythone.
A ďalej tiež znalosti z kurzu:
Praktické testovanie projektov je nadväzujúcim bodom osnovy vyššie, ktorý by mal každý dobrý programátor poznať, aby jeho práca mala skutočnú hodnotu.
Úvod do testovania softvéru
Testovanie softvéru je nevyhnutnou súčasťou vývoja, ktorá zaisťuje, že aplikácia spĺňa požiadavky, je spoľahlivá, bezpečná a užívateľsky prívetivá.
Testovanie softvéru je proces overovania a validácie, ktorý má za cieľ:
- Odhaliť chyby v aplikácii.
- Overiť, že aplikácia spĺňa špecifikáciu.
- Zaistiť, že aplikácia funguje podľa očakávania koncových užívateľov.
Testovanie softvéru sa radí medzi dobré praktiky vývoja softvéru a pomáha odhaľovať chyby už počas procesu vývoja, čím minimalizuje náklady na ich neskoršie opravy.
Postup testovania softvéru
Postup testovania softvéru zahŕňa nasledujúce kroky:
- zber požiadaviek – identifikácia toho, čo má byť testované,
- plánovanie testov – výber vhodných metód a nástrojov,
- príprava testovacích prípadov – definovanie scenárov a dát pre testovanie,
- vykonanie testov – manuálne alebo automatizované spustenie testovacích prípadov,
- identifikácia a oprava chýb – zaznamenanie nájdených problémov a ich oprava,
- uzavretie testovania – analýza výsledkov, vytvorenie správy o testovaní a príprava softvéru na nasadenie.
Postup vidíme na nasledujúcom diagrame:

Druhy testovania softvéru
Existujú dva hlavné typy testovania:
- Manuálne testovanie – Ide o testy vykonávané ručne testermi, ktorí aplikáciu kontrolujú podľa definovaných scenárov.
- Automatizované testovanie – Automatizované testovanie používa na vykonávanie testov softvér, čo vedie k rýchlejšiemu a efektívnejšiemu testovaniu. Automatizácia je obzvlášť užitočná pri testovaní rozsiahlych aplikácií alebo opakujúcich sa úloh.
Testovanie rôznych druhov aplikácií
Teraz si predstavíme rôzne druhy aplikácií a popíšeme si, na čo sa pri ich testovaní zamerať.
Formuláre a ich validácia
Formuláre slúžia na načítanie užívateľských vstupov a sú kľúčovou súčasťou väčšiny webových aplikácií. Validácia zaisťuje, že používatelia zadávajú dáta v správnom formáte a minimalizujú sa chyby.
Pri formulároch testujeme:
- Validáciu povinných polí – Či užívateľ nemôže odoslať formulár bez vyplnenia povinného poľa.
- Formáty vstupu – Či vstupy zodpovedajú očakávaným
formátom (napr. mailová adresa obsahuje
@
a doménu). - Hranice vstupu – Či sú zadávané dáta v povolenom rozsahu (napr. minimálna a maximálna dĺžka hesla).
- Chybové hlášky – Či je zobrazená chybová hláška jasná a zrozumiteľná.
- Zabezpečenie vstupu – Či formulár odoláva útokom, ako je SQL injection alebo XSS.
Testovací scenár pre validáciu e-mailu
Ukážme si príklad testovacieho scenára na zadanie e-mailu:
Testovací prípad | Vstup | Očakávaný výsledok |
---|---|---|
platný e-mail | user@example.com | Formulár je odoslaný úspešne. |
neplatný e-mail | user@com | Zobrazí sa chybové hlásenie. |
prázdné pole | (žiadny vstup) | "Toto pole je povinné." |
Single-page aplikácie (SPA)
SPA sú webové aplikácie (stránky), ktoré načítajú obsah dynamicky bez nutnosti znova načítať celú stránku. Celú single-page aplikáciu teda predstavuje jediná stránka, ktorá sa stiahne zo servera. Po stiahnutí je u klienta prítomná kompletná aplikácia a klient už nikdy nemusí prejsť na inú stránku. SPA minimalizuje server a kladie dôraz na klientsku časť. To prináša nové výzvy na testovanie. Príkladom SPA sú stránky www.gmail.com alebo www.netflix.com.
SPA beží vo webovom prehliadači a komunikuje so vzdialeným serverom prostredníctvom aplikačného rozhrania, tzv. API. API slúži ako prostredník medzi aplikáciou a serverom, umožňuje načítanie a odosielanie dát bez nutnosti znova načítať celú stránku. Viac si o API vysvetlíme v ďalších lekciách.
Princíp technológie single-page application znázorňuje tento diagram:

Na obrázku vidíme klienta (napr. používateľa s otvoreným Netflixom vo webovom prehliadači), ako komunikuje cez rôzne vrstvy aplikácie so vzdialeným serverom, ktorý mu posiela dáta. Dáta sa prenášajú vo formáte JSON alebo XML a aplikácia ich spracováva pomocou JavaScriptu.
Vďaka lokálnemu úložisku môže aplikácia fungovať aj bez internetu. Navigačné API umožňuje plynulé prechody medzi stránkami bez opätovného načítania.
Pri SPA sa zameriavame na:
- Načítanie obsahu – Overujeme, že sa dynamicky načítavajú dáta pri zmene stavu a kontrolujeme rýchlosť načítania.
- URL a smerovanie – Overujeme, či zmena URL zodpovedá očakávanému obsahu.
- Interakcia užívateľa – Testujeme tlačidlá, formuláre a interaktívne prvky.
- Funkčnosť pri strate pripojenia – Ak je špecifikáciou požadovaná podpora offline režimu, simulujeme výpadok internetu a overujeme, že aplikácia správne zachováva dáta, obnovuje spojenie a synchronizuje zmeny po opätovnom pripojení.
Multiple-page aplikácie (MPA)
Multiple-page aplikácie sú tradičné webové aplikácie, kde každá akcia vyžaduje načítanie novej stránky. Aplikácia teda beží na serveri. Na základe požiadaviek od klienta sa vygeneruje nová webová stránka a pošle sa klientovi. Napr. web ITnetwork, z ktorého teraz text čítate, je MPA. Každá lekcia je nová stránka.
Graficky vyzerá situácia takto:

MPA vyžadujú testovanie:
- Prechodov medzi stránkami – Overenie, že navigácia medzi stránkami funguje správne.
- Stavu relácií – Kontrola, že sa relácia užívateľa prenáša medzi stránkami (napr. prihlásenie).
- Stavu formulárov – Overenie, že sa dáta správne odovzdávajú medzi stránkami.
- Načítanie zdrojov – Testovanie, že sa načítajú všetky potrebné zdroje, ako sú CSS a JavaScript.
Responzívne stránky
Responzívne stránky sú stránky, ktoré sa dokážu prispôsobiť veľkosti displeja zariadenia podľa určitých pravidiel definovaných najčastejšie pomocou takzvaných breakpointov. Breakpointy nastavujeme, od akej šírky zariadenia sa má aplikovať určitý CSS štýl, aby bol obsah prehľadný na mobilných telefónoch, tabletoch aj počítačoch.
Testovanie responzívneho designu
Pri testovaní sa zameriavame na:
- Layout – Overenie, že sa prvky správne prispôsobujú veľkosti obrazovky.
- Interakcie - Kontrola, že sú tlačidlá a formuláre ľahko použiteľné na mobile.
- Rôzne zariadenia – Testovanie na rôznych rozlíšeniach (mobil, tablet, desktop).
Na videu nižšie vidíme, ako sa obsah stránky prispôsobuje menšiemu displeju:

Pre testovanie responzívnych stránok môžeme využiť vývojársku konzolu prehliadača (F12), ktorá umožňuje simulovať rôzne druhy zariadení, veľkosti a rozlíšenia obrazovky.
User Experience a User Interface
Termín User Experience (UX) označuje odbor, ktorý sa zaoberá zlepšovaním kvality interakcie užívateľa s produktmi, ako sú webové stránky, aplikácie, stroje alebo iné systémy. UX sa zameriava na to, aby produkty boli nielen ľahko použiteľné, ale aj príjemné a prínosné pre užívateľov.
UX sa niekedy mylne zamieňa s User Interface (UI), teda "užívateľským rozhraním". Tieto dve disciplíny však nie sú synonymá, aj keď spolu úzko súvisia. UI design sa zameriava na vizuálne a interaktívne prvky rozhrania, ako sú farby, tlačidlá, typografia alebo usporiadanie prvkov. UX design naopak zahŕňa celý proces tvorby užívateľskej skúsenosti - od analýzy potrieb užívateľov, cez návrh a testovanie prototypov, až po finálnu podobu produktu.
Pokiaľ napríklad vytvoríme rozhranie, ktoré je vizuálne atraktívne, ale ťažko použiteľné, môžeme povedať, že takýto produkt má dobré UI, ale zlé UX. Naopak produkt, ktorý sa ľahko ovláda, ale nie je vizuálne príťažlivý, bude mať dobré UX, ale slabé UI. V ideálnom prípade však UX aj UI spolupracujú, aby vytvorili produkt, ktorý je funkčný, ľahko použiteľný a esteticky príjemný.
UX sa teda zameriava na to, ako ľahko, efektívne a príjemne môžu používatelia produkt používať. UI zase rieši, ako tento produkt vyzerá a ako používatelia interagujú s jednotlivými prvkami. Obe disciplíny spoločne tvoria základ kvalitnej užívateľskej skúsenosti.
Testovanie UX a UI
Testovanie UX zahŕňa napríklad používateľské testy, heatmapy alebo spätnú väzbu od používateľov. UI testovanie overuje konzistenciu dizajnu, kontrasty farieb a čitateľnosť textu.
Pozrime sa na toto riešenie rozhrania výťahových tlačidiel:

Vidíme, že rozhranie je neprehľadné a používateľa bude miasť. Dobré rozhranie, nielen výťahu, ale aj webu či programu, musí byť na prvý pohľad pochopiteľné a ľahko použiteľné.
Druhým príkladom môže byť rozhranie autorádia a prevodovky:

Veľkým strieborným kolieskom môže vodič ovládať automatickú prevodovku, kolieskom napravo si môže upravovať hlasitosť. Nepozornému vodičovi by sa mohlo stať, že namiesto zosilnenia rádia vyradí prevod. Rozhranie a jeho použiteľnosť je jedným z rozhodujúcich faktorov pri výbere produktu, nepraktické rozhranie môže teda používateľa odradiť.
V nasledujúcej lekcii, Úvod do REST API a moderných webových aplikácií, si vysvetlíme, prečo sa moderné aplikácie vytvárajú pomocou API servera a ako taký server funguje.