Zarábaj až 6 000 € mesačne! Akreditované rekvalifikačné kurzy od 0 €. Viac informácií.

1. diel - Úvod do automatizovaného testovania softvéru Nové

V tomto tutoriále kurzu praktického testovania projektov si predstavíme hlavné výhody automatizovaného testovania oproti manuálnemu prístupu. Pripomenieme si, ako pracovať s nástrojom Jira a zoznámime sa s konkrétnymi testovacími prípadmi, na ktoré sa v priebehu kurzu zameriame. Ukážeme si tiež, ako vyzerá testovací projekt a ako spustiť jeho klientsku aj serverovú časť.

Úvod do automatizovaného testovania softvéru

S rastúcou zložitosťou softvérových systémov a zrýchľujúcim sa vývojovým cyklom sa testovanie stáva neoddeliteľnou súčasťou moderného vývoja. Manuálne testovanie je síce dôležité, ale býva časovo náročné, náchylné k ľudským chybám a horšie škálovateľné. Práve tu prichádza k slovu automatizované testovanie, ktoré umožňuje efektívne, rýchle a opakovateľné overovanie funkčnosti aplikácií.

Automatizované testy výrazne skracujú čas potrebný na regresné testovanie, minimalizujú riziko opomenutia chýb a celkovo zvyšujú kvalitu softvéru. Navyše umožňujú vývojárom aj testerom rýchlo reagovať na zmeny v kóde a ihneď overiť, či nové úpravy neovplyvnili súčasnú funkcionalitu.

Minimálne požiadavky

Pre úspešné absolvovanie kurzu je nutná znalosť jazyka Python aspoň v rozsahu našich kurzov:

Z oblasti testovania predpokladáme aj znalosti z kurzov:

Na posledný z uvedených kurzov tento kurz priamo nadväzuje. Aj keď si niektoré kľúčové princípy z oblasti manuálneho testovania krátko pripomenieme, bez základnej orientácie v problematike praktického testovania nebude možné plne porozumieť preberaným témam.

Očakávame, že účastníci už majú skúsenosti s návrhom testovacích prípadov, orientáciou v Jira a rozumejú základom testovacieho procesu, na ktoré v tomto kurze priamo nadväzujeme a ďalej ich rozvíjame smerom k automatizácii.

Sprevádzkovanie testovacieho projektu

Pracovať budeme s projektom fakturačného systému z lekcie Fakturačný systém s REST API - Sprevádzkovanie projektu, kde v prípade problémov nájdete podrobnejší postup na spustenie oboch častí aplikácie.

Fakturačný systém sa skladá z dvoch častí:

  • Klientska časť fakturačného systému, spravujúca užívateľské rozhranie (front-end), je napísaná v javascriptovom frameworku React.
  • Serverová časť, riadiaca hlavne ukladanie a získavanie dát (back-end), potom v Python frameworku Django.

Databáza faktúr obsahuje osoby (podnikateľov), ktoré vystupujú ako odberatelia alebo dodávatelia:

Zoznam osôb v databáze faktúr - Praktické testovanie projektov - Automatizované testovanie

Na obrázku vyššie vidíme zoznam týchto osôb s možnosťou zobrazenia detailu, úpravy alebo zmazania záznamu. Môžeme samozrejme tiež pridať nový subjekt.

Pod záložkou Invoices nájdeme prehľad všetkých faktúr:

Zoznam faktúr v databáze faktúr - Praktické testovanie projektov - Automatizované testovanie

Faktúry je možné filtrovať podľa ceny, názvu odberateľa, dodávateľa alebo textu v popise. K dispozícii je aj prehľadná súhrnná a ročná bilancia.

Obe časti projektu (klient aj server) sú k dispozícii na stiahnutie v archíve tejto lekcie.

Príprava servera

Začneme spustením serverovej časti postavenej na Django REST Frameworku v Pythone.

Tento postup predpokladá, že máme na počítači nainštalovaný Python (pre server) a Node.js (pre klienta). Postup k prípadnej inštalácii týchto technológií nabehneme v lekcii Fakturačný systém s REST API - Sprevádzkovanie projektu

V rozbalenej zložke s projektom klikneme pravým tlačidlom myši na podpriečinok invoice_server/ a zvolíme možnosť Open in Terminal. Pokiaľ sme s projektom ešte vôbec nepracovali, bude nutné nainštalovať potrebné balíčky. Na to využijeme príkaz:

pip install <package_name>

V našom projekte využívame nasledujúce balíčky a knižnice:

  • django,
  • django-filter,
  • djangorestframework,
  • django-cors-headers,
  • pandas,
  • numpy.

V príkazovom riadku nakoniec spustíme Django projekt príkazom:

python manage.py runserver

Príprava klienta

Teraz sprevádzkováme klientsku časť aplikácie. Klikneme pravým tlačidlom myši na podpriečinok invoice-client/ a opäť zvolíme Open in Terminal.

Potrebné knižnice nainštalujeme príkazom:

npm install

Po dokončení inštalácie spustíme klienta príkazom:

npm start

V prehliadači zadáme adresu http://localhost:3000, kde aplikácia pobeží a zobrazí sa nám zoznam faktúr:

Zoznam faktúr v databáze faktúr - Praktické testovanie projektov - Automatizované testovanie

Obe časti aplikácie (klienta aj server) ukončíme v príslušnom termináli stlačením klávesovej skratky Ctrl + C.

Testovacie prípady v Jiře

Základy práce s nástrojom Jira sme si popísali v lekcii Plánovanie testov v Jira - Tvorba testovacích scenárov, kde sme tiež vytvorili prvý testovací prípad (test case) na manuálne testovanie, TC1 – Adding a person.

Následne sme v lekcii Plánovanie testov v Jira - Doplnenie testovacích prípadov doplnili ďalšie TC a všetko rozdelili do troch šprintov:

Rozdelenie testovacích prípadov do šprintov. - Praktické testovanie projektov - Automatizované testovanie

TC pre automatizované testovanie

V nasledujúcich tutoriáloch sa zameriame na automatizáciu testovacích prípadov. Ukážeme si, ako testovať obe vrstvy našej aplikácie pomocou bežne používaných nástrojov v Pythone.

Testovanie front-endu pomocou Selenia

Pre automatizované testovanie webového rozhrania využijeme nástroj Selenium, ktorý umožňuje programovo ovládať webový prehliadač (napr. Chrome alebo Firefox), podobne ako by s ním pracoval bežný používateľ. Počas tohto testovania Selenium kliká na prvky stránky, vypĺňa formuláre alebo overuje prítomnosť konkrétnych dát.

Pre testovanie front-end sme zvolili tieto testovacie prípady:

  • TC5 – Adding an invoice: Overíme, že po vyplnení formulára a jeho odoslaní sa nová faktúra správne uloží a zobrazí v zozname.
  • TC8 – Deleting an invoice: Otestujeme, že po kliknutí na tlačidlo Delete pri konkrétnej faktúre dôjde k jej odstráneniu z databázy a že užívateľ ju už neuvidí v zozname. Vďaka tomuto testu bude odstránená faktúra, ktorú sme vytvorili v predchádzajúcom automatickom teste (TC5 – Adding an invoice).

Oba testy tak tvoria uzavretý celok, ktorý overuje správnu funkčnosť systému pri práci so záznamami od ich vytvorenia až po ich odstránenie. Tieto scenáre zároveň pokrývajú základné funkcie, s ktorými sa používateľ najčastejšie stretáva (vytváranie a mazanie záznamov).

Testovanie back-endu pomocou pytestu

Serverovú časť aplikácie budeme testovať pomocou frameworku pytest, ktorý je široko používaný na automatizované testovanie v Pythone. Umožňuje prehľadne organizovať testy, spúšťať ich hromadne a vyhodnocovať ich výsledky.

Na rozdiel od testovania front-endu sa tu zameriame na overenie logiky a funkčnosti API, teda na to, či server správne reaguje na požiadavky typu editácie, mazania, získania dát a pod. Namiesto simulácie používateľa pracujeme priamo s požiadavkami HTTP.

Vybrané testovacie scenáre:

  • TC2 – Editing a person: Overíme, že server umožní upraviť údaje u existujúcej osoby a zmeny sa správne uložia.
  • TC4 – Deleting a person: Otestujeme, že po odoslaní požiadavky na zmazanie určitej osoby server záznam skutočne odstráni a nebude ho vracať v zozname.

Zmazanie osoby je v našej aplikácii odlišné od zmazania faktúry. V skutočnosti sa "zmazaná" osoba, ktorá môže figurovať na už vystavených faktúrach, v databáze iba skryje. Vďaka použitiu frameworku pytest sa po vykonaní týchto testovacích prípadov dáta v databáze automaticky vrátia do pôvodného stavu, takže testovanie nijako neovplyvní reálny obsah aplikácie.

Oba prípady pokrývajú dôležité akcie nad entitou osoby a zároveň overujú rôzne HTTP metódy (v našom prípade PUT a DELETE), čím si precvičíme prácu s REST API a testovanie rôznych typov požiadaviek.

Zvolená štvorica testovacích prípadov dobre reprezentuje základné funkcie oboch častí systému a umožní nám vytvoriť zmysluplný základ pre budúce rozšírenie automatizácie. Zameriavame sa na CRUD operácie (Create, Read, Update, Delete), ktoré sú jadrom väčšiny moderných aplikácií.

Výsledkom bude nielen vykonanie konkrétnych testov, ale aj vytvorenie základného testovacieho rámca, na ktorý bude možné ďalej nadviazať.

V nasledujúcej lekcii, Automatizované testovanie front-endu - Príprava prostredia, prejdeme k automatickému testovaniu projektu a pripravíme si prostredie pre automatizované testy front-endu.


 

Mal si s čímkoľvek problém? Stiahni si vzorovú aplikáciu nižšie a porovnaj ju so svojím projektom, chybu tak ľahko nájdeš.

Stiahnuť

Stiahnutím nasledujúceho súboru súhlasíš s licenčnými podmienkami

Stiahnuté 5x (255.08 kB)
Aplikácia je vrátane zdrojových kódov

 

Ako sa ti páči článok?
Pred uložením hodnotenia, popíš prosím autorovi, čo je zleZnakov 0 z 50-500
Všetky články v sekcii
Praktické testovanie projektov - Automatizované testovanie
Preskočiť článok
(neodporúčame)
Automatizované testovanie front-endu - Príprava prostredia
Článok pre vás napísal Filip Zeman
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
Autor se věnuje vývojem aplikací hlavně kolem technologií .NET a to jak ve sféře desktopové, mobilní, tak hlavně samozřejmě webové. Nepohrdne ani Reactem či Djangem.
Aktivity