Testovací dluh (z anglického test debt) je forma technického dluhu, která vzniká, když tým:
Na rozdíl od kódu, který „funguje“, testovací dluh sníží důvěru v kvalitu systému, zpomaluje vývoj a zvyšuje riziko regresí (návratu již opravených chyb).
Pojem vychází z analogie s technickým dluhem (Ward Cunningham, 1992), ale konkrétně se zaměřuje na testovací strategii a pokrytí. Testovací dluh se často akumuluje v raných fázích projektu, kdy tým „zrychluje vývoj“ tím, že testy ignoruje – což se později vyplácí náklady na ladění, manuální testování a nestabilitu systému.
| Typ dluhu | Popis | Příklad |
|---|---|---|
| Chybějící testy | Neexistují testy pro kritické části kódu. | Kód pro platbu v e-shopu nemá žádné jednotkové testy. |
| Povrchní testy | Testy existují, ale pokrývají jen „happy path“, ne okrajové případy. | Test ověřuje jen úspěšné přihlášení, ne špatné heslo. |
| Nespolehlivé testy (flaky tests) | Testy občas selžou bez změny kódu. | E2E test selže, pokud je server pomalý. |
| Nepřehledné testy | Testy jsou špatně čitelné, bez jasných asercí. | Test používá magická čísla a žádné komentáře. |
| Špatně umístěné testy | E2E testy pro logiku, kterou by měly pokrýt jednotkové testy. | Ověření výpočtu DPH probíhá přes UI místo jednotkového testu. |
| Manuální testovací scénáře bez automatizace | Důležité scénáře se opakují ručně. | Každé nasazení vyžaduje 2 hodiny manuálního testování košíku. |
Přestože není možné ho přesně kvantifikovat jako finanční dluh, lze použít následující metriky:
⚠️ Varování: Vysoké pokrytí ≠ kvalitní testy! Může být 100 %, ale testovat jen „že kód běží“.
| Aspekt | Technický dluh | Testovací dluh |
| ——– | —————- | —————- |
| Zaměření | Kvalita kódu, architektura | Kvalita a přítomnost testů |
| Důsledek | Těžší údržba kódu | Nízká důvěra v chování systému |
| Měřitelnost | Statická analýza (SonarQube) | Coverage, počet testů, flakiness |
| Splácení | Refaktoring, přepis | Psaní testů, zlepšování testovací strategie |
💡 Testovací dluh je často součástí technického dluhu, ale vyžaduje specifický přístup.