Pokrytie testami (test coverage) hovorí, ktorý kód sa vykoná pri behu automatizovanej testovacej sady. Podľa jazyka a nástroja vie zaznamenať riadky, vetvy, príkazy alebo funkcie. Coverage poskytuje dôkaz o tom, kde existujú automatizované kontroly, no nedokazuje, že tieto kontroly overujú správne správanie.
Čo coverage meria
Nástroj na meranie coverage sleduje vykonávanie kódu. Ak test zavolá funkciu, jej riadky sa môžu započítať ako pokryté. Ak test prejde len jednou stranou podmienky, druhá vetva zostane nepokrytá. Rôzne merania preto odpovedajú na rôzne otázky o tej istej testovacej sade.
| Typ coverage | Čo zaznamenáva | Čo nedokazuje |
|---|---|---|
| Pokrytie riadkov | Riadky vykonané testami | Správne výstupy ani prítomnosť asercií |
| Pokrytie vetiev | Prejdené výsledky rozhodovaní | Kompletné biznis scenáre |
| Pokrytie funkcií | Zavolané funkcie | Že sa kontroluje zmysluplné správanie |
| Pokrytie príkazov | Vykonané príkazy | Bezpečnú interakciu medzi komponentmi |
Dáta o coverage treba čítať spolu s testami. Sada vie kód vykonať bez toho, aby kontrolovala jeho výsledok. Rovnako vie chrániť kritické správanie malým počtom cielených testov a rutinný kód nechať nepokrytý.
Prečo je legacy coverage nerovnomerné
Staršie systémy často obsahujú kód z rôznych období, od rôznych tímov a s odlišnými zvyklosťami v testovaní. Jadrové moduly môžu mať rozsiahle unit testy, kým plánované úlohy, integračné body alebo toky v používateľskom rozhraní stoja na manuálnych kontrolách. Niektoré testy už v aktuálnom builde nemusia bežať alebo môžu závisieť od prostredí, ktoré sa ťažko obnovujú.
Audit legacy codebase overuje, či sa testovacia sada dá spustiť, čo pokrýva a čo jej asercie skutočne chránia. Zároveň identifikuje biznisovo kritické cesty, ktorým chýba spoľahlivé overenie aj vtedy, keď celkový report vyzerá zdravo.
Ako coverage ovplyvňuje refactoring
Coverage pomáha tímu rozhodnúť, kde si pred zmenou správania rozprestrieť záchrannú sieť. Cieľom je zachytiť, čo systém aktuálne robí na hranici, ktorá sa presúva alebo prepisuje.
Praktický postup vyzerá takto:
- Spustite existujúcu sadu. Zistite, ktoré testy sú v aktuálnom prostredí spoľahlivé.
- Zmapujte kritické správanie. Prepojte biznis toky s kódom, ktorý ich implementuje.
- Nájdite nepokryté cesty. Sústreďte sa na cesty, ktorých sa plánovaná zmena dotkne.
- Doplňte overenie. Použite unit, integračné alebo end-to-end testy na vhodnej hranici.
- Meňte po malých krokoch. Kontroly spúšťajte pri presune každej časti.
Prečo je toto číslo v generovanom kóde zavádzajúce
Keď sa kód a testy generujú spoločne v jednom kroku, očakávanie, ktoré test overuje, sa môže odvodiť priamo z implementácie namiesto z pôvodnej požiadavky. Test potom len opisuje, čo kód už aj tak robí, a to vrátane jeho chybných častí. Výsledkom je testovacia sada, ktorá prejde veľkú časť codebase, no potvrdí len minimum podstatných vecí: asercie skontrolujú, či funkcia niečo vrátila, nie či vrátila správnu vec, a chybové vetvy sa zavolajú, ale ich správanie sa nikdy neoverí.
Čítanie samotných testov má vyššiu výpovednú hodnotu ako sledovanie percent. Ktoré asercie by reálne zlyhali, ak by sa zmenilo správanie? Sú cesty spracúvajúce peniaze, práva a osobné údaje pokryté špecifickými testami? Prejdú testy aj po zámernom vložení chyby? Posledná kontrola je najrýchlejší spôsob, ako rozoznať skutočnú testovaciu sadu od dekoratívnej. Rovnaká disciplína platí aj pre riziko závislostí (dependency risk) a je veľkou súčasťou toho, čo odlišuje "vibe coding" od "agentic engineering".
Čo coverage nenahradí
Coverage neodhalí, či sú požiadavky správne, či produkčné dáta neobsahujú neočakávané prípady, ani či dva komponenty nezdieľajú nezdokumentovaný predpoklad. Tieto otázky si vyžadujú doménovú znalosť, dôkazy z reálneho behu systému a architektonickú analýzu.
Chýbajúce alebo nespoľahlivé testy môžu tvoriť časť technického dlhu, najmä tam, kde sa tímy vyhýbajú zmenám v dôležitom kóde, pretože si výsledok nevedia overiť. Analýza coverage pomáha tento dlh ohraničiť a podporuje prevzatie neznámej codebase tým, že ukáže, kde automatizované dôkazy existujú a kde ich musí dodať review.