Účel
Tento dokument představuje závaznou metodiku a technický standard pro zajišťování kvality (QA) v rámci celého ekosystému SISTA. Pravidla jsou postavena na principu „Quality by Design“ a jsou nedílnou součástí vývojového cyklu všech dodavatelů i interních týmů.
Procesní model toku testování
Následující schéma znázorňuje tok změny od vývoje až po produkci, povinné kontrolní brány (Quality Gates QG1–QG6), prostředí a odpovědné role. Selhání kterékoliv brány blokuje postup do další fáze.
1. Strategické cíle
Cílem testování v projektu SISTA je:
-
Minimalizace manuálních zásahů prostřednictvím hloubkové automatizace napříč systémovými vrstvami (Unit, API, E2E).
-
Zajištění stoprocentní regresní stability při nasazování nových verzí.
-
Zavedení centralizovaného dohledu nad kvalitou kódu prostřednictvím nástroje SonarQube v CI/CD.
-
Maximalizace efektivity a konzistence testování napříč všemi dodavatelskými týmy.
-
Test-Driven Development (TDD) je preferovanou metodou vývoje.
2. Role a odpovědnosti
2.1. Obecné
-
Odpovědnost DEV týmu:
-
Každý vývojový tým je plně zodpovědný za kvalitu svého kódu. To zahrnuje psaní automatizovaných testů souběžně s vývojem (unit testy, integrační testy, API testy), dodávání reportů pokrytí (JaCoCo, Istanbul/nyc, Coverage.py) integrovaných do CI/CD pipeline, udržování testů aktuálních při refaktoringu, provádění komplexních manuálních testů před předáním k akceptaci a opravu selhávajících testů ve svých sadách do 48 hodin.
-
-
Odpovědnost Interního testovacího týmu (ITT):
-
Interní testovací tým SISTA odpovídá za revizi a kontrolu správnosti manuálních a akceptačních testovacích scénářů, správu a údržbu centrální sady Smoke a E2E testů (Playwright), provádění zátěžového testování a výkonnostního reportingu, metodickou podporu garantů při přípravě akceptačních scénářů, reporting testovacích metrik a KPI (viz sekce 14) a správu centrálního nástroje pro testovací scénáře.
-
-
Odpovědnost Garanta TRSu:
-
Vytváří komplexní akceptační scénáře dle byznysových požadavků. Vydává finální akceptační rozhodnutí (PŘIJATO / PODMÍNĚNĚ PŘIJATO / VRÁCENO K PŘEPRACOVÁNÍ). Spolupracuje s ITT na přípravě Smoke a E2E testů. Udržuje akceptační scénáře v čase a ověřuje změny realizované přes Freelo. Odpovídá za go/no-go rozhodnutí před nasazením na produkci na základě výsledků všech Quality Gates.
-
-
Odpovědnost Ops týmu:
-
Zajišťuje stabilitu testovacích prostředí a spolehlivost CI/CD linek včetně notifikačních kanálů. Monitoruje testovací prostředí (dostupnost, výkon), spravuje testovací credentials a secrets (HashiCorp Vault nebo ekvivalent) a zajišťuje obnovu a anonymizaci dat na testovacích prostředích.
-
2.2. RACI matice
Rozdělení odpovědností pro každý typ testu:
| Typ testu | Dev tým | ITT | Garant | Ops |
|---|---|---|---|---|
Unit testy |
R |
A |
– |
– |
Integrační testy |
R |
A |
– |
I |
API testy |
R |
A |
C |
– |
Manuální testy |
R |
C |
A |
– |
Smoke testy |
C |
R |
A |
I |
E2E testy |
C |
R |
A |
I |
Akceptační testy |
C |
R |
A |
– |
Zátěžové testy |
C |
R |
A |
C |
Bezpečnostní testy |
R |
C |
I |
A |
|
|
Poznámky
|
-
Odpovědnost R/A:
-
Accountable (A) je oddělen od Responsible (R) – tým, který test vykonává, není zároveň tím, kdo nese konečnou odpovědnost a schvaluje. Accountable nese podle typu testu ITT (unit, integrační, API), garant (manuální, smoke, E2E, akceptační, zátěžové) nebo Ops (bezpečnostní); viz matice výše.
-
-
Pro přechod mezi R a A platí specifická pravidla:
-
Responsible předává Accountable výstupy testů (reporty pokrytí, výsledky běhů, dokumentaci); Accountable potvrzuje splnění prostřednictvím objektivních kontrolních bran (Quality Gates), namátkové kontroly a revize a nese konečnou odpovědnost za uvolnění – nikoli opětovným přezkoušením. Konkrétní podoba předání R→A pro jednotlivé typy testů bude upřesněna v provozní směrnici testování.
-
3. Detailní matice testovacích aktivit
| Typ testu | Nástroje | Účel | Prostředí | Frekvence | Výstup |
|---|---|---|---|---|---|
Unit testy |
JUnit, Jest, pytest |
Pokrytí logiky komponent (min. 80 %). |
Lokálně / CI |
Každý commit/MR |
JUnit XML + coverage |
Integrační |
Testcontainers, WireMock |
Interakce mezi službami a ext. systémy. |
CI Build |
Na vyžádání |
JUnit XML |
API testy |
Postman/Newman, REST Assured |
Validace API (pozit. i negat. scénáře). |
CI / TEST |
Každý commit/MR |
JUnit XML + OpenAPI |
Smoke testy |
Playwright |
Základní funkčnost po nasazení. |
TEST/STAGING/PROD |
Kontinuálně |
HTML + screenshot (video) |
E2E testy |
Playwright |
Kompletní uživatelské flow. |
STAGING |
1× denně |
HTML + video/screenshot |
Manuální |
Dle šablony |
UX, edge cases, vizuální kontrola. |
TEST/STAGING |
Před akceptací |
Testovací protokol |
Akceptační |
Dle šablony |
Soulad s byznys požadavky. |
STAGING |
Před PROD |
Akceptační protokol |
Zátěžové |
k6, JMeter |
Chování při špičkách. |
STAGING |
Před velkým releasem |
Zátěžová zpráva |
Bezpečnostní |
SonarQube, OWASP ZAP, Trivy |
Zranitelnosti v kódu a závislostech. |
CI / STAGING |
Build (SAST), release (DAST) |
Security report |
4. Automatizace a kontrola kvality
4.1. Unit testy
Unit testy jsou integrální součástí vývojového cyklu každého modulu.
-
CI/CD pipeline spouští testy automaticky s každým buildem.
-
Reporty o pokrytí jsou generovány (JaCoCo, Istanbul/nyc, Coverage.py) a předávány do SonarQube.
-
SonarQube aplikuje Quality Gate:
-
Pokrytí kódu ≥ 80 % (byznys logika; exkluze: generovaný kód, DTO, konfigurace).
-
Žádné blocker nebo critical issues.
-
Code smells max. 5 na 1000 řádků.
-
-
Exkluze z měření pokrytí musí být explicitně definovány v SonarQube konfiguraci a schváleny ITT.
4.2. API testy
Všichni dodavatelé jsou povinni integrovat automatizované API testy do CI/CD.
-
Výstupní formát: JUnit XML (povinný pro integraci s CI/CD).
-
Testovací scénáře pokrývají:
-
Korektní i nekorektní vstupy (pozitivní i negativní testy).
-
Validaci HTTP status kódů.
-
Validaci struktury odpovědí dle OpenAPI/Swagger.
-
Ověření zpětné kompatibility při změnách API.
-
-
Možnosti implementace:
-
Varianta A – Decentralizovaná: Tým si zvolí framework (Postman CLI, REST Assured, Karate). CI/CD zpracuje JUnit XML výstupy.
-
Varianta B – Centrální šablona: ITT poskytne šablonu (Playwright/Postman), dodavatelé adaptují.
-
|
|
Volba varianty je na dohodě Dev týmu s ITT. V obou případech je JUnit XML povinný.
|
4.3. Integrační testy
Integrační testy ověřují interakci mezi službami nebo s externími systémy.
-
Pro simulaci závislostí: Testcontainers (DB, message brokery), WireMock (externí API).
-
Zakázáno volat reálné externí registry v integračních testech (viz 6, Správa testovacích dat a prostředí).
-
Integrační testy se spouštějí na vyžádání (manuálně nebo cíleným spouštěním pipeline), nikoliv automaticky s každým commitem.
-
Selhání integračních testů musí být vyřešeno před nasazením na vyšší prostředí.
4.4. Manuální testy
Manuální testy slouží k ověření scénářů obtížně pokrytých automatizací (složité edge-case chování, ověření UX aspektů, vizuální kontrola).
-
Provádějí je Dev týmy před předáním k akceptaci.
-
Protokoly mohou být vyžádány k revizi ze strany ITT nebo garantů.
Testovací protokol používá standardizovanou šablonu s následujícími sloupci:
| Sloupec | Popis |
|---|---|
Test Case ID |
Jednoznačný identifikátor testovacího scénáře (např. TC001). |
Název testu |
Stručný popis testované funkčnosti. |
Popis kroku |
Detailní posloupnost akcí, které tester provádí (včetně případných prerekvizit). |
Vstupní data |
Data potřebná pro provedení testu (uživatel, heslo, testovací záznamy apod.). |
Očekávaný výstup |
Co by se mělo stát při správném chování systému. |
Výsledek #N |
Pass / Fail – výsledek N-tého běhu testu. |
Skutečný výstup #N |
Co se skutečně stalo při N-tém běhu. |
Tester #N |
Jméno osoby, která test provedla. |
Datum testu #N |
Datum provedení N-tého běhu. |
Poznámky #N |
Doplňující informace, screenshoty, logy. |
|
|
Poznámky
|
4.5. Akceptační testy
Akceptační testy jsou závěrečnou fází před převzetím funkčnosti.
-
Garanti služeb připravují scénáře ve spolupráci s ITT.
-
Testy se provádějí na STAGING.
-
Akceptační protokol dokumentuje:
-
Testované scénáře a výsledky (PASS/FAIL).
-
Seznam připomínek a požadovaných úprav.
-
Rozhodnutí: PŘIJATO / PODMÍNĚNĚ PŘIJATO / VRÁCENO K PŘEPRACOVÁNÍ.
-
-
Podmíněné přijetí:
-
Funkčnost je akceptována s výhradami. Výhrada nesmí být Critical nebo High. Všechny výhrady musí mít přiřazený úkol s termínem opravy (max. 14 kalendářních dnů). O podmíněném přijetí rozhoduje garant TRSu.
-
4.6. Smoke a E2E testy
Smoke a E2E testy spravuje ITT ve spolupráci s Dev týmy a garanty.
-
Smoke testy: základní funkčnost systému (přihlášení, načtení klíčových stránek). Běží kontinuálně na TEST, STAGING i PROD.
-
E2E testy: kompletní uživatelské flow. Běží 1× denně na STAGING.
-
E2E testy generují screen/video evidenci pro ladění a audit.
-
Selhání smoke testu na PROD spouští incident postup (viz Section 9.2, “Postup při selhání na PROD”).
4.7. Zátěžové testy
Zátěžové testy ověřují chování systému při očekávané a špičkové zátěži.
-
Provádí ITT ve spolupráci s Ops týmem na STAGING.
-
Zátěžový profil (počet uživatelů, scénáře, ramping) definuje ITT na základě produkčních dat.
-
Akceptační prahy: response time p95 a p99 pod definovanými limity.
-
Prahy stanovuje ITT na základě baseline měření a produkčních dat před každým testem a schvaluje je garant a Ops.
-
Před prvním testem se provede baseline měření pro budoucí porovnání.
-
Podrobnosti k výstupní zprávě viz Section 11.2, “Výkonnostní reporting”.
4.8. Bezpečnostní testy
Bezpečnostní testování je povinnou součástí vývojového cyklu.
-
SAST: SonarQube bezpečnostní pravidla běží s každým buildem.
-
Dependency scanning: Trivy nebo Snyk kontroluje zranitelnosti v závislostech s každým buildem.
-
DAST: OWASP ZAP nebo ekvivalent běží před každým velkým releasem na STAGING.
-
Klasifikace dle CVSS: Critical (9.0–10.0), High (7.0–8.9), Medium (4.0–6.9), Low (0.1–3.9).
-
Akceptační kritérium: 0 Critical a 0 High. Medium musí mít přiřazený úkol s termínem.
5. Quality Gates a vymahatelnost pravidel
Quality Gates jsou kontrolní body v CI/CD pipeline. Selhání blokuje postup do další fáze. Obejití není přípustné bez formálně schválené výjimky.
| Gate | Kdy | Kontrola | Blokuje |
|---|---|---|---|
QG1 – Build & Unit |
Každý commit/MR |
Kompilace, unit testy, coverage ≥ 80 % |
Merge do develop |
QG2 – SonarQube |
Každý commit/MR |
Blocker/critical = 0, smells ≤ 5/1000 |
Merge do develop |
QG3 – API testy |
Merge do develop |
API testy 100 % PASS |
Deploy na TEST |
QG4 – Staging |
Deploy na STAGING |
Smoke + E2E 100 % PASS |
Postup k akceptaci |
QG5 – Akceptace |
Před PROD |
Akceptační protokol schválen |
Deploy na PROD |
QG6 – Security |
Před PROD |
0 Critical/High (CVSS) |
Deploy na PROD |
5.1. Proces výjimek
V odůvodněných případech lze Quality Gate dočasně obejít:
-
Žadatel (vedoucí Dev týmu) podá písemný požadavek s odůvodněním.
-
Schválení provádí garant TRSu po konzultaci s ITT.
-
Výjimka je časově omezena (max. 14 kalendářních dnů).
-
Evidence v centrálním trackeru (Jira/Freelo) s odkazem na úkol opravy.
-
Po vypršení: automatická re-evaluace. Pokud není problém opraven, nutno znovu schválit.
5.2. Nestabilní (flaky) testy
Nestabilní test = selhává v > 10 % běhů za posledních 7 dnů bez změny kódu.
-
Nesmí dlouhodobě zůstávat v testovacích sadách.
-
Oprava nebo dočasná deaktivace do 48 hodin od identifikace.
-
Deaktivace evidována v trackeru s úkolem na opravu (termín max. 14 dnů).
-
Odpovědnost: Dev tým (unit/integrační/API), ITT (smoke/E2E).
6. Správa testovacích dat a prostředí
Klíčem ke stabilnímu testování je kontrola nad daty a prostředími:
| Prostředí | Účel | Přístup | Obnova dat | Specifika |
|---|---|---|---|---|
DEV/lokální |
Unit, integrační testy |
Dev tým |
Na vyžádání |
Mockované závislosti |
TEST |
Integrace, API testy |
Dev + ITT |
Týdně (automat.) |
Sdílené, syntetická data |
STAGING |
UAT, E2E, zátěžové |
ITT + Garanti |
Před release cyklem |
Kopie PROD (anonymizovaná) |
PROD |
Smoke po nasazení |
Ops + ITT (read-only) |
N/A |
Reálná data |
-
Idempotentnost:
-
Každý automatizovaný test si musí připravit vlastní data (pomocí API nebo DB seeding) a následně po sobě prostředí vyčistit. Testy nesmí záviset na datech vytvořených jinými testy.
-
-
Mockování externích služeb:
-
Je zakázáno v testech volat reálné externí registry (IS VaVaI, CEDR, RES, Bisnode/MagnusWeb). Musí být využity simulátory (WireMock, vlastní mock služby), které vrací deterministické odpovědi.
-
-
Izolace prostředí:
-
Prostředí TEST je určeno pro integrační pokusy, STAGING slouží jako věrná kopie produkce pro finální UAT a zátěžové testy.
-
-
Anonymizace dat:
-
Kopie produkčních dat na STAGING musí být anonymizována v souladu s GDPR. Anonymizaci zajišťuje Ops tým.
-
-
Testovací účty a credentials:
-
Uloženy v bezpečném úložišti (HashiCorp Vault nebo ekvivalent). Je zakázáno používat produkční credentials v testovacích prostředích. Rotace min.1× za 90 dnů. Zákaz ukládání do repozitáře se týká produkčních a reálných credentials a secrets; fiktivní neprodukční testovací účty (např. generátor projektů na STAGING/Linksoft, osoby neexistující na produkci) jsou přípustné, doporučeně však mimo repozitář (seed data / Vault) nebo jasně označené jako neprodukční.
-
-
Seed data:
-
Referenční datová sada je verzována společně s kódem v Git. Při změně DB schématu se aktualizují i seed data.
-
Správa: Dev tým dané služby.
-
7. Akceptační kritéria (Definition of Done)
Žádný kód nesmí být nasazen na produkci, pokud nesplňuje následující kritéria:
-
Code Coverage:
-
Min. 80 % pokrytí unit testy (SonarQube). Exkluze (generovaný kód, DTO, konfigurace) schváleny ITT. SonarQube Quality Gate: Žádné blocker nebo critical issues. Code smells max. 5 na 1000 řádků. Žádné nové security hotspots bez review. Regresní testy: 100 % úspěšnost všech automatizovaných sad (unit, integrační, API, smoke, E2E). Dev tým rozšiřuje regresní sadu při nové funkcionalitě.
-
-
API testy:
-
100 % úspěšnost pro dotčená API rozhraní včetně ověření návratových kódů, struktury odpovědí a negativních scénářů. Změny API nesmí porušit zpětnou kompatibilitu bez zavedení nové verze API.
-
-
Bezpečnostní testy:
-
0 Critical a 0 High zranitelností (CVSS). Medium musí mít přiřazený úkol s termínem opravy.
-
-
Akceptační testy:
-
Akceptační protokol schválen garantem (PŘIJATO nebo PODMÍNĚNĚ PŘIJATO). Revize ITT s potvrzením pokrytí všech byznys scénářů.
-
-
Zátěžové testy:
-
Služba je odolná vůči očekávané zátěži. Response time p95/p99 v definovaných limitech. Zátěžová zpráva schválena ITT a Ops.
-
|
|
Poznámky
|
8. Používané nástroje a technologie
| Kategorie | Nástroje | Poznámka |
|---|---|---|
Unit testy & Coverage |
JaCoCo, Istanbul/nyc, Coverage.py |
Dle technologie (Java/Kotlin, JS/TS, Python) |
Integrační testy |
Testcontainers, WireMock |
Simulace DB, brokerů, externích API |
API testování |
Postman/Newman, REST Assured, Karate |
Výstup JUnit XML |
E2E a Smoke |
Playwright |
Centrálně spravované ITT |
Zátěžové |
k6, JMeter |
Dle preference ITT |
Statická analýza |
SonarQube (on-premise) |
Quality Gate v CI/CD |
Bezpečnost |
SonarQube (SAST), OWASP ZAP (DAST), Trivy |
SAST průběžně, DAST před releasem |
CI/CD |
GitLab CI |
Pipeline v repozitáři |
Správa testů |
Dle rozhodnutí ITT (TestRail, Xray, Git) |
Centrální úložiště scénářů |
9. CI/CD linka a notifikační proces
Celý proces je řízen automatizovanou linkou v Kubernetes:
-
Pre-deployment:
-
Build, unit testy, integrační testy (na vyžádání), statická analýza (SonarQube), dependency scan (Trivy). [QG1 + QG2]
-
-
Deploy na TEST:
-
Automatické nasazení image. Spuštění API testů. [QG3]
-
-
Deploy na STAGING:
-
Automatické nasazení. Smoke testy (kontinuálně), E2E testy (1× denně). Před releasem: zátěžové a DAST testy. [QG4]
-
-
Akceptace:
-
Garant provede akceptační testy na STAGING, vydá akceptační protokol. [QG5 + QG6]
-
-
Deploy na PROD:
-
Automatické nasazení. Post-deployment smoke testy.
-
-
Monitoring:
-
Kontinuální sledování chybovosti a výkonu po nasazení
-
9.1. Rollback
Pokud smoke nebo E2E testy selhou po nasazení na STAGING, je zablokován postup do další fáze a odeslána notifikace do kanálu; na STAGING se neprovádí automatický rollback. Dev tým analyzuje příčinu a opraví před dalším pokusem.
Před vyhodnocením selhání jako blokujícího je nutné vyloučit nestabilní (flaky) nebo infrastrukturní příčinu – rollback ani blokace se nespouští na základě prokazatelně flaky/infrastrukturního selhání.
Pokud smoke testy selžou na PROD: okamžitý automatický rollback, spuštění incident postupu (viz Section 9.2, “Postup při selhání na PROD”). DB migrace musí být navrženy zpětně kompatibilně (umožňují rollback).
9.2. Postup při selhání na PROD
-
Automatický rollback na poslední stabilní verzi.
-
Notifikace: GoogleChat + email vlastníkovi služby + Ops on-call.
-
Ops ověřuje stabilitu po rollbacku (smoke testy).
-
Dev tým provádí Root Cause Analysis (RCA) do 48 hodin.
-
Opravená verze prochází kompletní pipeline od začátku.
9.3. Notifikační proces
Jakékoliv selhání v kterémkoliv kroku odesílá okamžitou notifikaci do dedikovaného kanálu v Google Chat s odkazem na logy selhání.
-
Obsah: název služby, fáze pipeline, typ selhání, odkaz na build log.
-
Reakční čas: vlastník služby do 4 pracovních hodin od nahlášení incidentu interním testovacím týmem po analýze důvodu selhání testu. Nevyžaduje se nepřetržitý (24/7) provoz – garantují se pevné reakční lhůty dle severity (zejména Critical a High).
-
Eskalace při nereakci: vedoucí Dev týmu.
10. Správa defektů
Životní cyklus defektu: New → Assigned → In Progress → Fixed → Verified → Closed. Evidence v centrálním trackeru (Jira/Freelo). Verifikaci opravy provádí nahlašovatel, nikoliv autor opravy.
| Závažnost defektu | Definice | Lhůta na opravu |
|---|---|---|
Critical |
Systém je nepoužitelný, dochází ke ztrátě nebo poškození dat, byl nalezen bezpečnostní incident. |
4 hodiny (hotfix) |
High |
Klíčová funkcionalita systému je nefunkční a nelze ji nahradit jinou funkcionalitou. |
24 hodin |
Medium |
Funkčnost systému je omezena, existuje však náhradní funkcionalita nebo workaround. |
5 pracovních dnů |
Low |
Vizuální nedostatek, drobná nepřesnost bez dopadu na funkčnost systému, UX zlepšení. |
Další sprint |
|
|
Důležité
|
11. Speciální postupy
11.1. Bug Hunt kampaně
Před každým velkým releasem organizuje TAČR Bug Hunt – časově omezené, intenzivní manuální testování celého systému týmem analytiků, testerů a zástupců byznysu s cílem odhalit chyby v UX alogice, které nelze podchytit automatickým testováním.
-
Délka: 1–3 pracovní dny dle rozsahu releasu.
Velký release vyhlašuje pravidelná schůzka k testování (resp. vedení / VK) – typicky na konci MT, u velkých úprav služeb a před klíčovými termíny (např. měsíc před podáváním monitorovacích zpráv).
-
Účastníci: analytici, ITT, zástupci byznysu, garanti služeb.
-
Defekty reportovány se štítkem „BugHunt-[datum]“.
-
Exit kritérium: všechny Critical/High z Bug Hunt opraveny před releasem.
11.2. Výkonnostní reporting
Výstupem zátěžových testů je standardizovaný dokument, který musí obsahovat:
-
Účel testu a testovaná služba.
-
Metodika (nástroj, typ zátěže, scénáře).
-
Zátěžový profil (počet uživatelů, ramping, délka).
-
Výsledky: odezvy endpointů (průměr, medián, p95, p99), chybovost, throughput.
-
Využití infrastruktury (CPU, RAM, síť).
-
Porovnání s baseline.
-
Doporučení pro škálování.
-
Závěr: VYHOVĚL / NEVYHOVĚL. Zpráva archivována v projektové dokumentaci, schvalována ITT a Ops.
12. Testování požadavků z Freelo
Změny realizované mimo scope zadání MT (např. prostřednictvím Freelo, případně změny hrazené z DNS či technodluhových MT) podléhají zjednodušenému, ale povinnému testovacímu režimu. Testovací režim je jednotný napříč rámcovými dohodami (RD) i DNS; liší se pouze fází vývoje.
Každá změna MUSÍ před nasazením splňovat:
-
Manuální ověření garantem požadavku.
-
Existenci alespoň jednoho testovacího scénáře (manuálního nebo automatizovaného).
-
Pokud změna ovlivňuje backend nebo API, musí být doplněn alespoň jeden automatizovaný test. Technické posouzení (nutnost testu, dopad na backend/API) provádí Dev tým v rámci code review, kterým prochází každá změna kódu (i z Freelo či DNS); garant posuzuje byznysovou stránku. Žádná změna kódu neobchází code review.
-
Projití CI/CD pipeline bez chyb (všechny QG).
|
|
Důležité
|
13. Správa testovacích scénářů
-
Všechny scénáře (manuální i automatizované) uloženy v centrálním nástroji (ITT).
-
Verzování a review proces při změnách.
-
Mapovatelnost na byznysový požadavek (traceability: požadavek → scénář → výsledek).
-
Nová funkcionalita = nové/aktualizované scénáře.
-
Neaktuální scénáře se archivují, nemažou.
14. Metriky a KPI
ITT měsíčně reportuje:
| Metrika | Definice | Cíl |
|---|---|---|
Code coverage |
Pokrytí byznys logiky unit testy |
≥ 80 % |
Defect escape rate |
Defekty nalezené až na PROD vs. celkem |
< 5 % |
Flaky test rate |
Nestabilní testy v sadách |
< 2 % |
Mean time to fix |
Průměrná doba opravy selhávajícího testu |
< 48 h |
Regresní úspěšnost |
Úspěšnost automat. regresních sad |
≥ 99 % |
Akceptační úspěšnost |
Akceptace bez vrácení |
≥ 90 % |
|
|
Poznámky
|
Závěr
-
Platnost dokumentu
Pravidla testování představují mantinely pro Dev týmy, přičemž účastníci rámcové dohody jsou povinni tato pravidla dodržovat. Zároveň také platí, že zadavatel podporuje jejich průběžnou aktualizaci a to dle závěrů Archa rady, z úrovně řízení projektu či dobré praxe.
-
Odborný garant
Odborný garant |
Dominik Kyjevský |
Kontakt |
|
Verze |
2 |
Datum poslední revize |
17/06/2026 |
Termíny a definice
- SISTA
-
Informační systém TAČR pro správu a hodnocení podpory výzkumu a vývoje; ekosystém služeb, kterého se tato pravidla týkají.
- QA (Quality Assurance)
-
Zajišťování kvality – soubor činností zaručujících, že dodávka splňuje požadavky.
- CI/CD
-
Kontinuální integrace a nasazování; automatizovaná linka, která buduje, testuje a nasazuje kód.
- Quality Gate (QG)
-
Kontrolní bod v CI/CD pipeline; jeho nesplnění blokuje postup do další fáze.
- Dev tým
-
Vývojový (dodavatelský či interní) tým odpovědný za kvalitu svého kódu a automatizované testy.
- ITT (Interní testovací tým)
-
Tým SISTA spravující centrální Smoke/E2E sady, revidující manuální a akceptační scénáře, provádějící zátěžové testy a reporting metrik.
- Garant (garant TRSu)
-
Vlastník byznysových požadavků dané služby; připravuje akceptační scénáře a vydává akceptační rozhodnutí.
- Ops tým
-
Tým provozu; zajišťuje stabilitu prostředí, CI/CD linky, správu credentials a obnovu dat.
- Unit test
-
Test izolované logiky komponenty.
- Integrační test
-
Ověření interakce mezi službami nebo s externími systémy.
- API test
-
Validace API rozhraní včetně pozitivních i negativních scénářů.
- Manuální test
-
Ruční ověření obtížně automatizovatelných scénářů (UX, edge-case); provádí Dev tým před předáním k akceptaci.
- Akceptační test
-
Závěrečné ověření souladu s byznysovými požadavky; provádí garant na prostředí STAGING.
- Smoke test
-
Rychlé ověření základní funkčnosti systému po nasazení.
- E2E test (End-to-End)
-
Ověření kompletního uživatelského flow napříč systémem.
- Regresní test
-
Ověření, že nové změny nerozbily stávající funkčnost.
- Zátěžový test
-
Ověření chování systému při očekávané a špičkové zátěži.
- Bezpečnostní test
-
Hledání zranitelností v kódu a závislostech (SAST, DAST, dependency scan).
- SAST / DAST
-
Statická analýza bezpečnosti zdrojového kódu (SonarQube) / dynamická analýza běžící aplikace (OWASP ZAP).
- Coverage (pokrytí kódu)
-
Podíl kódu pokrytého automatizovanými testy; cíl >= 80 % byznys logiky.
- TDD (Test-Driven Development)
-
Vývoj řízený testy – testy se píší před implementací.
- Flaky test
-
Nestabilní test selhávající ve více než 10 % běhů bez změny kódu.
- DoD (Definition of Done)
-
Sada akceptačních kritérií, která musí být splněna před nasazením na PROD.
- Baseline
-
Referenční měření výkonu pro budoucí porovnání.
- CVSS
-
Standard klasifikace závažnosti zranitelností (Critical / High / Medium / Low).
- Bug Hunt
-
Časově omezená intenzivní manuální testovací kampaň před velkým releasem.
- RACI
-
Matice odpovědností: Responsible (vykonává), Accountable (schvaluje), Consulted (konzultován), Informed (informován).
- Prostředí (DEV / TEST / STAGING / PROD)
-
DEV/lokální – vývoj a unit testy; TEST – integrační a API testy na syntetických datech; STAGING – akceptační, E2E a zátěžové testy na anonymizované kopii produkce; PROD – produkce s reálnými daty.
- MT
-
Minitendr - Zakázka/úkol dodávky SW realizovaný dle definovaného zadání (např. MT112, MT124)
- Freelo
-
Nástroj pro řízení úkolů a požadavků; zahrnuje změny realizované mimo zadání MT.
- RD / DNS
-
Rámcová dohoda / dynamický nákupní systém – režimy zadávání veřejných zakázek u dodavatelů.