Mikuláš je tu! Získaj 90 % extra kreditov ZADARMO s promo kódom CERTIK90 pri nákupe od 1 199 kreditov. Len do nedele 7. 12. 2025! Zisti viac:
NOVINKA: Najžiadanejšie rekvalifikačné kurzy teraz s 50% zľavou + kurz AI ZADARMO. Nečakaj, táto ponuka dlho nevydrží! Zisti viac:

2. diel - Testovacie prípady

V predchádzajúcej lekcii, Úvod do automatizovaného testovania softvéru, sme si ukázali prínosy automatizácie a predstavili si projekt, s ktorým budeme pracovať.

V tomto tutoriáli kurzu praktického testovania projektov si pripomenieme, ako pracovať s nástrojom Jira a zoznámime sa s konkrétnymi testovacími prípadmi, na ktoré sa v priebehu kurzu zameriame.

Testovacie prípady v Jire

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 – Pridanie osoby.

Následne sme v lekciách Plánovanie testov v Jira - Testovacie prípady pre front-end a Plánovanie testov v Jira - Testovacie prípady pre back-end 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. K tomu si vytvoríme ďalšie testovacie prípady v Jira, ktoré zaradíme do nového – štvrtého šprintu, aby sme tak mali automatizované testovanie oddelené.

Ak ste neabsolvovali kurz manuálneho testovania, vytvorte si v Jira nový projekt s názvom "Billing system". V tomto projekte si následne vytvoríme nový šprint a testovacie prípady pre automatizované testovanie.

Očakávame, že účastníci už majú skúsenosti s návrhom testovacích prípadov, orientujú sa v Jire a rozumejú základom testovacieho procesu, na ktoré v tomto kurze priamo nadväzujeme a ďalej ich rozvíjame smerom k automatizácii. Ak tieto znalosti nemáte, odporúčame najskôr absolvovať kurz Praktické testovanie projektov - Manuálne testovanie.

Vytvorenie nového šprintu

V sekcii Backlog si vytvoríme nový šprint. Kliknite na tlačidlo Create sprint:

Vytvorenie nového šprintu - Praktické testovanie projektov - Automatizované testovanie

Šprint premenujeme. Klikneme na ... a zvolíme Edit sprint:

Editácia šprintu - Praktické testovanie projektov - Automatizované testovanie

Ako nový názov zadáme Sprint 4 - Automation. Môžeme tu tiež nastaviť dobu trvania šprintu, obvykle to bývajú 1–2 týždne. Alternatívne môžeme nastaviť počiatočný a konečný dátum šprintu. Nás bude teraz najviac zaujímať posledné pole, v ktorom definujeme cieľ šprintu (Sprint goal). Tu teda vyplníme krátky popis našej testovacej úlohy - "Test the basic functionality of the application, including CRUD operations (create, read, update, delete), with an emphasis on input validation and display in the user interface." a potvrdíme tlačidlom Update:

Úprava šprintu v Jire - Praktické testovanie projektov - Automatizované testovanie

Výsledok bude vyzerať takto:

Pripravené šprinty v backlogu - Praktické testovanie projektov - Automatizované testovanie

Testovanie front-endu pomocou Selenia

Na automatizované testovanie webového rozhrania využijeme nástroj Selenium, ktorý umožňuje programovo ovládať webový prehliadač (napr. Chrome alebo Firefox), 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.

Na testovanie front-endu si vytvoríme tieto testovacie prípady:

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

TC11 – Adding an invoice

Ako prvé si pripravíme a otestujeme TC11 - Adding an invoice - Selenium. V backlogu zvolíme pri štvrtom šprinte + Create:

Create issue - Praktické testovanie projektov - Automatizované testovanie

Ďalej vyberieme typ Task (obrázok fajky v modrom štvorčeku), je možné, že tento typ tu bude automaticky prednastavený, ak nie, rozklikneme si ikonku a vyberieme správny typ:

Výber typu - Praktické testovanie projektov - Automatizované testovanie

Pomenujeme ho TC11 - Adding an invoice - Selenium a stlačíme Enter:

Vytvorenie testovacieho prípadu - Praktické testovanie projektov - Automatizované testovanie

Kliknutím na názov prípadu sa nám v pravej časti stránky otvorí možnosť editácie:

Editácia testovacieho prípadu - Praktické testovanie projektov - Automatizované testovanie

Kliknutím na ID testovacieho prípadu v hlavičke ho môžeme otvoriť v samostatnom okne:

Otvorenie testovacieho prípadu v samostatnom okne - Praktické testovanie projektov - Automatizované testovanie

Pripravené polia vyplníme podľa tabuľky:

Názov poľa Text, ktorý budeme vkladať
Description The test case verifies whether the user can successfully add a new invoice in the application and whether it is correctly displayed in the list.
Preconditions • The user is on the "Invoices" screen.
  • The application is running at http://localhost:3000.
Test Steps 1. The user clicks on the "Invoices" tab in the top menu.
  2. Clicks the "New Invoice" button.
  3. Waits for the form to appear.
  4. Fills in the "Invoice Number" field (e.g., 12345).
  5. Selects the first item in the "Supplier" dropdown.
  6. Selects the second item in the "Customer" dropdown.
  7. Fills in the issue date, due date, product, price, VAT, and note.
  8. Clicks the "Save" button.
  9. After submission, verifies that the new invoice appears in the invoice list.
  10. Verifies that the invoice price matches the expected value.
Expected Results • After clicking the "Save" button, the new invoice is saved.
  • The invoice is immediately displayed in the invoice list with the filled-in data including the correct price.
Acceptance Criteria • The user must be able to add an invoice when all required fields are filled in.
  • After successful saving, the new invoice appears in the invoice list with correct data.

V testovacom prípade sme najskôr vyplnili popis, aby tester vedel, ktorú časť kódu testuje a čo presne má byť overené. Pomocou Preconditions zaistíme, že test začína v správnom kontexte a nie je potrebné vykonávať zbytočné prechody v aplikácii. Testovacími krokmi overujeme, že aplikácia funguje podľa očakávania, keď používateľ zadá platné údaje. Tento scenár simuluje bežné použitie aplikácie.

Body uvedené v časti Expected Results slúžia na vymedzenie správneho fungovania systému a zabezpečenie predvídateľného správania pri rôznych scenároch. V poslednom poli máme stanovené jasné podmienky, ktoré musia byť splnené, aby bol testovací prípad úspešne dokončený. Tým zaisťujeme, že vývojový tím aj tester majú jednotné porozumenie tomu, čo sa testuje a aké sú požiadavky na funkčnosť.

Negatívne scenáre sme si už vyskúšali v manuálnom testovaní. Tu sa v rámci automatizácie zameriame iba na overenie pozitívneho scenára.

Výsledok bude vyzerať takto:

TC11 – Adding an invoice – Selenium - Praktické testovanie projektov - Automatizované testovanie

TC12 - Deleting an invoice

V ďalšom testovacom prípade budeme kontrolovať funkčnosť zmazania faktúry. Vytvoríme si nový testovací prípad a pomenujeme ho TC12 - Deleting an invoice - Selenium.

Než sa pozriete na riešenie, skúste si testovací prípad najprv navrhnúť sami. Riešenie testovacieho prípadu nájdete skryté pod šípkou, ktorú si môžete rozkliknúť v prípade, že si nebudete vedieť rady. Slúži iba ako pomocník, nie na priame opisovanie.

Názov poľa Text, ktorý budeme vkladať
Description The test case verifies whether the user can successfully delete an existing invoice in the application and whether the deletion is reflected in the invoice list.
Preconditions • The user is on the "Invoices" screen.
  • At least one invoice exists in the system and is ready for deletion.
Test Steps 1. The user clicks on "Invoices" in the top menu.
  2. Searches for the invoice by number (e.g., 12345).
  3. Clicks the "Delete" button for the corresponding invoice.
  4. Confirms any confirmation dialog (if displayed).
  5. Verifies that the invoice has been removed from the list.
Expected Results • The invoice is successfully deleted after clicking "Delete".
  • The invoice is no longer displayed in the invoice list.
Acceptance Criteria • The user must be able to delete an existing invoice.
  • After deletion, the invoice disappears from the list and is no longer available for viewing or editing.

Výsledok bude vyzerať takto:

TC12 – Deleting an invoice – Selenium - Praktické testovanie projektov - Automatizované testovanie

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, hromadne ich spúšťať 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:

  • TC13 – Editing a person - Overíme, či server umožní upraviť údaje u existujúcej osoby a či sa zmeny správne uložia.
  • TC14 – 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ť v 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ť.

TC13 – Editing a person

V ďalšom testovacom prípade budeme kontrolovať funkčnosť editácie osoby. Vytvoríme si nový testovací prípad a pomenujeme ho TC13 – Editing a person - pytest.

Na testovanie back-endu budeme potrebovať URL adresu (endpoint) a JSON kód, ktorý môžeme zistiť v API dokumentácii k nášmu projektu. V API dokumentácii si nájdeme endpoint na editáciu osoby a pomocou týchto údajov vyplníme v Jira príslušné polia:

Názov poľa Text, ktorý budeme vkladať
Description The test case verifies whether the API allows editing an existing person record and whether the logic of hiding the original record and creating a new one is correctly executed.
Preconditions • At least one person with all required fields exists in the database.
  • The API is available at http://localhost:8000/api/persons/{id}/.
Test Steps 1. Send a PUT request to the endpoint /api/persons/{id}/ with a new identification number, keeping other data unchanged.
  2. Verify that the API returns status code 200 OK.
  3. Verify that the original person record has the attribute hidden set to True.
  4. Verify that a new person record exists with the updated identification number.
Expected Results • The API returns a 200 OK status response.
  • The original record is marked as hidden (hidden = True).
  • A new person record exists with the new identification number.
Acceptance Criteria • Editing a person via the API is successful and complies with application rules: the original record is hidden, a new record is created, and the data matches the request.

Výsledok bude vyzerať takto:

TC13 – Editing a person – pytest - Praktické testovanie projektov - Automatizované testovanie

TC14 – Deleting a person

V ďalšom testovacom prípade budeme kontrolovať funkčnosť zmazania osoby. Vytvoríme si nový testovací prípad a pomenujeme ho TC14 – Deleting a person - pytest.

Než sa pozriete na riešenie, skúste si testovací prípad najprv navrhnúť sami. Riešenie testovacieho prípadu nájdete skryté pod šípkou, ktorú si môžete rozkliknúť v prípade, že si nebudete vedieť rady. Slúži iba ako pomocník, nie na priame opisovanie.

Názov poľa Text, ktorý budeme vkladať
Description The test case verifies whether the API allows "deleting" a person and whether this operation correctly changes the person's status to "hidden" (hidden = True) instead of physically deleting the record from the database.
Preconditions • At least one person with all required fields exists in the database.
  • The API is available at http://localhost:8000/api/persons/{id}/.
Test Steps 1. Send a DELETE request to the endpoint /api/persons/{id}/.
  2. Verify that the API returns status code 204 No Content.
  3. Verify that the person record has the attribute hidden set to True.
Expected Results • The API returns a 204 No Content status response.
  • The original person record is not physically deleted but is marked as hidden (hidden = True).
Acceptance Criteria • The API must allow "logical deletion" of a person.
  • After successful deletion, the person must no longer appear in the list of active persons.
  • The hidden attribute must be correctly set.

Výsledok bude vyzerať takto:

TC14 – Zmazanie osoby – pytest - Praktické testovanie projektov - Automatizované testovanie

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.


 

Predchádzajúci článok
Úvod do automatizovaného testovania softvéru
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ísala Jana Zimčíková
Avatar
Užívateľské hodnotenie:
5 hlasov
Autorka se věnuje IT a technologiím. Ovládá Javu, Spring Boot, SQL i frontend a chce pomáhat lidem objevit svůj potenciál v IT světě.
Aktivity