Přeskočit na obsah
_CORE
AI & Agentic Systems Core Information Systems Cloud & Platform Engineering Data Platform & Integration Security & Compliance QA, Testing & Observability IoT, Automation & Robotics Mobile & Digital Banking & Finance Insurance Public Administration Defense & Security Healthcare Energy & Utilities Telco & Media Manufacturing Logistics & E-commerce Retail & Loyalty
Reference Technologie Blog Know-how Nástroje
O nás Spolupráce Kariéra
CS EN
Pojďme to probrat

Test Automation

Bugy chytáme my, ne vaši uživatelé.

Navrhujeme a implementujeme automatizované testovací strategie od unit testů po end-to-end scénáře. Napojené na CI/CD, běžící při každém commitu.

>80%
Test coverage
<10 min
CI pipeline
-70%
Regression bugs
99%
Release confidence

Proč automatizovat testy

Manuální testování nescaluje. Každá nová funkce zvětšuje regresní matici. Tým, který testuje ručně, buď zpomalí release cyklus, nebo přestane testovat. Obojí stojí peníze.

Automatizované testy nejsou luxus pro velké firmy. Jsou základní hygiena softwarového vývoje. Každý commit projde sadou testů, které za minuty ověří, že nic není rozbité. Vývojáři dostanou feedback okamžitě — ne za dva dny od QA týmu, který ručně proklikal dvacet scénářů.

Výsledek: Rychlejší releasy, méně bugů v produkci, vyšší důvěra v kód. Tým se soustředí na nové funkce místo hasení požárů.

Testovací pyramida

Nemá smysl psát jen E2E testy. Nemá smysl psát jen unit testy. Efektivní testovací strategie kombinuje všechny vrstvy — každá chytá jiný typ chyb, každá má jiný cost/benefit poměr.

Unit testy — základ pyramidy

Nejrychlejší, nejlevnější, nejspolehlivější. Testují izolované funkce, business logiku, utility, transformace dat. Běží za milisekundy, spouštíte je stokrát denně bez přemýšlení.

Co testovat na unit úrovni: - Výpočty, validace, konverze - Business rules a edge cases - Pure functions a utility moduly - State management logiku

Nástroje: Jest, Vitest, pytest, JUnit, XCTest — podle jazyka a stacku. Důležité není co, ale že se spouštějí automaticky při každém commitu.

Integrační testy — střed pyramidy

Ověřují, že komponenty spolupracují správně. API endpoint vrací správná data? Databázový dotaz funguje s reálným schématem? Message queue správně serializuje a deserializuje?

Integrační testy jsou pomalejší než unit testy, ale chytají celou kategorii bugů, které unit testy neodhalí — problémy na rozhraní mezi systémy, chyby v konfiguraci, nekompatibilní datové formáty.

Typické scénáře: - API contract testy (request → response validace) - Databázové integrace s testovací databází - Komunikace mezi microservices - Third-party API mocky a stuby

E2E testy — špička pyramidy

End-to-end testy simulují reálného uživatele. Otevřou prohlížeč, kliknou na tlačítko, vyplní formulář, ověří výsledek. Nejdražší na údržbu, ale nenahraditelné pro kritické uživatelské flow.

Klíčové pravidlo: E2E testy píšeme jen pro kritické cesty. Login, nákupní proces, platba, registrace — flow, kde bug přímo stojí peníze. Nekritické funkce testujeme na nižších vrstvách.

Playwright — náš default pro E2E

Playwright od Microsoftu je dnes nejlepší nástroj pro end-to-end testování webových aplikací. Cross-browser (Chromium, Firefox, WebKit), rychlý, stabilní, s výborným API.

Proč Playwright

Auto-waiting: Playwright automaticky čeká na elementy, animace, network requesty. Žádné sleep(5000) hacky, žádné flaky testy kvůli timing issues. Element je klikatelný? Klikne. Není? Počká.

Tracing a debugging: Každý test generuje trace — screenshot, DOM snapshot, network log, console output na každém kroku. Když test spadne v CI, otevřete trace viewer a vidíte přesně co se stalo. Žádné hádání.

Paralelizace: Testy běží paralelně out-of-the-box. 200 E2E testů za 3 minuty místo 45 minut sekvenčně. CI pipeline zůstává rychlý i s rostoucí test suite.

Codegen: Playwright umí nahrát uživatelskou cestu a vygenerovat test. Ideální pro rychlý start — nahrajete flow, upravíte assertions, máte test. Pak refaktorujete do robustní podoby s Page Object Modelem.

Page Object Model

Playwright testy strukturujeme do Page Objects — abstrakce nad stránkami aplikace. LoginPage.login(user, pass) místo opakovaného page.fill('#email', user); page.click('#submit'). Když se změní UI, opravíte jeden Page Object, ne dvacet testů.

Cypress pro component testy

Cypress má silnou pozici v component testování — izolované testování React/Vue/Angular komponent bez nutnosti spouštět celou aplikaci. Rychlý feedback loop, vizuální debugging, developer-friendly API.

Pro nové projekty typicky volíme Playwright pro E2E a Cypress pro component testy. Pro existující projekty s Cypress E2E suite respektujeme stávající investici a rozšiřujeme.

CI/CD integrace

Testy bez CI/CD jsou dobrovolné. A dobrovolné testy se přestanou spouštět.

Pipeline design

Každý pull request spouští testovací pipeline:

  1. Lint + type check (30s) — syntaktické chyby, type errors
  2. Unit testy (1-2 min) — business logika, utility
  3. Integrační testy (2-3 min) — API, databáze, services
  4. E2E testy (3-5 min) — kritické uživatelské flow
  5. Performance check (volitelný) — k6 smoke test proti staging

Fail fast: Pipeline skončí při prvním selhání. Unit test spadne za 30 sekund? Vývojář opraví za minutu. Nemusí čekat 10 minut na E2E výsledky.

Paralelizace a caching

GitHub Actions, GitLab CI, CircleCI — všechny podporují paralelní joby. Unit testy běží souběžně s lintem. E2E testy se shardují across multiple runners. Dependency cache zkracuje install time z minut na sekundy.

Náš benchmark: Kompletní test suite (500+ unit, 50+ integration, 30+ E2E) pod 10 minut. To je akceptovatelný feedback loop — vývojář pushne, jde na kafe, vrátí se k zeleným checkům.

k6 pro performance testy v CI

k6 od Grafana Labs píšete v JavaScriptu, běží v Go. Ideální pro performance testy integrované do CI/CD pipeline.

Smoke test v CI: Každý PR spustí rychlý k6 smoke test — 10 virtuálních uživatelů, 30 sekund. Nenahradí plný load test, ale chytí hrubé performance regrese: endpoint, který najednou odpovídá 5× pomaleji, memory leak v novém kódu.

Thresholds: k6 umí definovat performance budgety. Response time p95 > 500ms? Test selže, PR se nezamerguje. Performance regression caught before deploy.

Testovací strategie pro váš tým

Neexistuje univerzální testovací strategie. Závisí na stacku, týmu, release cyklu, business doméně. Co funguje pro fintech s regulatorními požadavky, je overkill pro interní admin tool.

Náš přístup:

  1. Audit — zmapujeme současný stav testování, identifikujeme největší rizika
  2. Strategie — navrhneme testovací pyramidu šitou na míru, vybereme nástroje
  3. Quick wins — implementujeme CI/CD pipeline a první testy pro kritické flow
  4. Iterace — postupně rozšiřujeme pokrytí, školíme tým, optimalizujeme pipeline

Nejdůležitější krok? Začít. Lepší 10 dobrých testů v CI než 200 testů v dokumentaci, které nikdo nespustí.

Technologický stack

E2E: Playwright, Cypress, Selenium (legacy).

Unit/Integration: Jest, Vitest, pytest, JUnit, Go testing, XCTest.

Performance: k6, Gatling, Artillery.

CI/CD: GitHub Actions, GitLab CI, CircleCI, Jenkins, Azure DevOps.

Reporting: Allure, Playwright HTML Reporter, custom dashboardy v Grafana.

Časté otázky

Závisí na rozsahu. Typický setup — CI/CD pipeline, E2E framework, základní test suite — zvládneme za 2-4 týdny. ROI se dostaví už po prvním zachyceném regression bugu v produkci, který by jinak stál hodiny manuální práce a ztracené zákazníky.

Playwright pro E2E (cross-browser, rychlý, spolehlivý), Cypress pro component testy a jednodušší E2E, k6 pro performance testy, Jest/Vitest pro unit testy. Výběr závisí na vašem stacku a týmu.

Ano. Začínáme characterization testy — zachytíme současné chování systému jako baseline. Pak postupně přidáváme testy kolem částí, které se mění nejčastěji. Není nutné testovat vše najednou — iterativní přístup funguje nejlépe.

První automatizované testy v CI/CD pipeline máte do týdne. Kompletní testovací strategii s E2E, integration a unit testy budujeme iterativně 4-8 týdnů. Výsledek: testy běží při každém pull requestu, vývojáři dostávají feedback za minuty.

Krátkodobě přidáte 10-15 minut na setup. Střednědobě ušetříte hodiny debuggingu. Dlouhodobě je to nejlepší investice do rychlosti — vývojáři refaktorují s jistotou, review je rychlejší, deploy je bezpečný.

Máte projekt?

Pojďme si o něm promluvit.

Domluvit schůzku