Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
statnice:bakalar:b6b36ts1 [2025/05/28 13:45] – [Jednotkové testy: princip testu, vlastnosti, které má mít jednotkový test, odlišnosti proti integračním testům.] prokopstatnice:bakalar:b6b36ts1 [2025/05/28 15:42] (current) – [Testovací strategie: princip metody Business Driven Test Management] prokop
Line 349: Line 349:
     * Nahrazení systému simulací (stub), pokud reálný systém není dostupný nebo je příliš drahý.     * Nahrazení systému simulací (stub), pokud reálný systém není dostupný nebo je příliš drahý.
     * Simulace odpovědí, zálohování stavu, přepínání konfigurací.     * Simulace odpovědí, zálohování stavu, přepínání konfigurací.
-===== Jednotkové testy: princip testu, vlastnosti, které má mít jednotkový test, odlišnosti proti integračním testům. =====+===== Jednotkové testy=====
 ==== Princip ==== ==== Princip ====
 +  * Odhalují chyby na úrovni kódu. 
 +  * Porovnávají výsledek volání metody/procedury s očekávaným výsledkem. 
 +  * Jsou napsané jako speciální část kódu, která kontroluje funkční část programu. 
 +  * Programátor je může psát sám přímo ke svému kódu. 
 +  * Unit testovací frameworky (např. JUnit, TestNG) poskytují podporu a zrychlují přípravu testů. 
 +  * Testy je možné opakovaně spouštět, často se integrují do build procedury. 
 +  * Klíčová součást Test Driven Development (TDD), kde slouží i jako specifikace výsledku.
 ==== Vlastnosti ==== ==== Vlastnosti ====
 +  * Nezávislost na jiných testech (test nesmí být prerekvizitou pro jiný test).
 +  * Minimální množství vstupních podmínek (preconditions), kde je to možné.
 +  * ** Jedna funkcionalita → Jeden unit test**
 +  * Přiměřený počet assertů, aby test zůstal přehledný a údržba nebyla zbytečně náročná.
 +  * Srozumitelný a jasný název metody testu, který popisuje, co test kontroluje.
 +  * Používání jednotného zdroje testovacích dat a konzistentní jmenné konvence.
 +  * Struktura testů by měla odpovídat objektové struktuře kódu (např. třídě odpovídá testovací třída).
 +  * Unit testy jsou určeny pouze pro kontrolu kódu, nikoliv konfigurace.
  
 ==== Unit test X Integration test ==== ==== Unit test X Integration test ====
 +| Aspekt | Jednotkové testy | Integrační testy |
 +|-|-|-|
 +| Úroveň | Testují jednotlivé bloky kódu (např. metody, třídy) izolovaně. | Testují spolupráci více komponent (modulů, služeb, systémů). |
 +| Zaměření | Ověření správnosti malých jednotek logiky. | Ověření správnosti propojení mezi jednotkami a jejich interakce. |
 +| Nástroje | Unit test frameworky (JUnit, TestNG). | Automatizační frameworky, integrační nástroje, end-to-end testy. |
 +| Komplexita | Nízká (zaměřeno na detaily). | Vyšší (zaměřeno na celý proces, komunikaci, integrace). |
 +| Účel | Rychlé odhalení chyb v kódu, prevence regrese. | Ověření, že jednotlivé části systému fungují dohromady správně. |
 +| Příklad | Test metody pro výpočet ceny. | Test propojení mezi platebním modulem a bankovní API. |
 +===== Automatizované testy založené na simulaci akcí uživatele v uživatelském rozhraní systému=====
 +==== Princip testu ====
 +  * **End-to-end (E2E)** testování simuluje chování reálného uživatele v aplikaci.
 +  * Ověřuje správnou funkčnost aplikace z pohledu uživatele – od začátku do konce.
 +  * Kontroluje nejen jednotlivé komponenty, ale i jejich **propojení, integraci a datovou konzistenci.**
 +  * Typické scénáře:
 +    * otevření aplikace (např. v prohlížeči),
 +    * zadání vstupů (kliknutí, psaní, potvrzování),
 +    * sledování odpovědí systému (zobrazení dat, reakce UI),
 +    * ověření správného dokončení procesu.
 +
 +==== Příklad technologie ====
 +  * **Selenium** – nástroj pro automatizaci webových prohlížečů.
 +  * Další příklady (BONUS):
 +    * Cypress.IO
 +    * Playwright
 +    * Robot Framework
 +    * TestCafe
 +    * Puppeteer
 +  * **Tyto nástroje umožňují:**
 +    * simulovat klikání, psaní, posouvání,
 +    * kontrolovat obsah stránek,
 +    * ověřovat výsledky akcí (např. přidání položky, dokončení platby).
 +
 +==== Rozdíl oproti jednotkovým testům ====
 +| Aspekt | E2E testy (testy UI) | Jednotkové testy |
 +|-|-|-|
 +| Úroveň | Testují celý systém (od uživatelského vstupu po backend a zpět). | Testují izolované části kódu (metody, funkce). |
 +| Zaměření | Uživatelská zkušenost, integrační funkce, procesy napříč systémem. | Logika a správnost jednotlivých bloků kódu. |
 +| Rychlost | Pomalejší, protože zahrnují více vrstev systému. | Velmi rychlé, běží přímo nad kódem. |
 +| Stabilita | Náchylné k chybám způsobeným změnami UI nebo závislostí. | Stabilní, méně závislé na okolí. |
 +| Nástroje | Selenium, Cypress, Playwright, TestCafe, Puppeteer. | JUnit, TestNG, NUnit, xUnit. |
 +| Účel | Ověření, že celý systém funguje pro uživatele. | Ověření, že logika kódu funguje podle očekávání. |
 +===== Testovací strategie: princip metody Business Driven Test Management =====
 +
 +=== Testovací Strategie Obecně ===
 +  * Testovací strategie je plán na vyšší úrovni, který definuje:
 +    * co budeme testovat,
 +    * jak budeme testovat,
 +    * s jakými prioritami,
 +    * s jakou intenzitou,
 +    * jakými metodami a nástroji.
 +  * Slouží jako vodítko pro celý testovací tým, aby všichni pracovali podle stejného rámce a cílů.
 +  * Obsahuje nejen technické aspekty, ale i organizační a byznysové pohledy – stejná terminologie, procesy, metriky
 +  * Pomáhá sladit očekávání mezi zadavatelem, managementem a testovacím týmem.
 +  * Zajišťuje, že se testování soustředí na oblasti s největším rizikem nebo nejvyšší byznys hodnotou.
 +
 +==== Princip metody Business Driven Test Management ====
 +  * Metoda BDTM (Business Driven Test Management) pochází z rámce TMAP Next.
 +  * Je určená hlavně pro větší testovací projekty, ale lze ji škálovat i na menší.
 +  * Jejím cílem je přímo propojit cíle byznysu s přípravou a prováděním testů.
 +  * Výstupem je velká tabulka, která propojuje:
 +    * testovací cíle (test goals),
 +    * požadavky a specifikace,
 +    * části testovaného systému,
 +    * analýzu rizik,
 +    * test levels,
 +    * druhy testů a jejich intenzitu,
 +    * zvolené test design techniky.
 +
 +=== Základní části metody ===
 +  * **Test goals (testovací cíle)**
 +    * Overall test goals (např. od investora, senior managementu).
 +    * Departmental test goals (např. od budoucích koncových uživatelů).
 +    * Pomáhají sjednotit očekávání kvality a odhalit rozpory mezi investorem a uživateli.
 +  * **Popis testovaného systému**
 +    * Přehled funkcí systému a jejich vazba na požadavky, procesy a kvalitativní aspekty (funkčnost, výkon, bezpečnost).
 +  * **Analýza rizik**
 +    * Hodnocení pravděpodobnosti selhání a možného dopadu.
 +    * Určení tříd rizika podle kombinace těchto faktorů.
 +  * **Určení priorit**
 +    * Podle tříd rizika určujeme, co testovat intenzivněji.
 +    * Priorita je odvozena z byznysového dopadu selhání, nikoliv jen z technického pohledu.
 +  * **Test levels**
 +    * Definujeme úrovně testování (např. vývojářské testy, systémové testy, UAT, testy v produkci).
 +    * Určujeme, jakou intenzitou se bude testovat na které úrovni.
 +  * **Intenzita testování**
 +    * Přizpůsobujeme intenzitu podle rizik a dostupných zdrojů.
 +    * Např. pro vysokorizikové oblasti vyšší pokrytí a intenzita, pro nízkorizikové nižší.
  
-===== Automatizované testy založené na simulaci akcí uživatele v uživatelském rozhraní systému: princip testu, íklad technologie, rozdíl oproti jednotkovým testům===== +=== Souvislosti mezi částmi ==
-===== Testovací strategie: princip metody Business Driven Test Managementjejí základní části jejich souvislosti=====+  * Test goals určují, co je potřeba ověřit → vazba na funkce systému a požadavky. 
 +  * Analýza rizik určuje priority a intenzitu testování pro jednotlivé oblasti. 
 +  * Test levels rozdělují testy podle fází a týmů. 
 +  * Intenzita testování se izpůsobuje prioritám, rozpočtu a časovým omezením
 +  * Celý proces je propojený v hlavní řídicí tabulcekterá zajišťuje přehlednost, konzistenci trasovatelnost.
Navigation

Playground

QR Code
QR Code statnice:bakalar:b6b36ts1 (generated for current page)