Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
statnice:bakalar:b6b36ts1 [2025/05/28 14:34] – [Princip] prokop | statnice:bakalar:b6b36ts1 [2025/05/28 15:42] (current) – [Testovací strategie: princip metody Business Driven Test Management] prokop | ||
---|---|---|---|
Line 359: | Line 359: | ||
* Klíčová součást Test Driven Development (TDD), kde slouží i jako specifikace výsledku. | * 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), | ||
+ | * ** 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í, | ||
+ | * 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. | ||
- | ===== Automatizované testy založené na simulaci akcí uživatele v uživatelském rozhraní systému: princip testu, příklad technologie, rozdíl | + | ==== Příklad technologie |
- | ===== Testovací strategie: | + | * **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ř. | ||
+ | |||
+ | ==== Rozdíl | ||
+ | | 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ší, | ||
+ | | 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 | ||
+ | * 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, | ||
+ | * Pomáhá sladit očekávání mezi zadavatelem, | ||
+ | * Zajišťuje, | ||
+ | |||
+ | ==== Princip | ||
+ | * 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 | ||
+ | * analýzu rizik, | ||
+ | * test levels, | ||
+ | * druhy testů | ||
+ | * 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, | ||
+ | * **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žší. | ||
+ | |||
+ | === Souvislosti mezi částmi === | ||
+ | * 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 přizpůsobuje prioritám, rozpočtu a časovým omezením. | ||
+ | * Celý proces je propojený v hlavní řídicí tabulce, která zajišťuje přehlednost, |