Regresní testování – kontrola po každé změně

Slovník · Jan Zedníček ·

Regresní testy hlídají, aby úprava jedné části aplikace nerozbila jinou, která už fungovala. Po každé změně se znovu spustí a porovnají výsledky s těmi, o kterých víme, že jsou správné.

Regresní testování je druh testování software, při kterém se po změně znovu spustí testy už hotových funkcí a ověří se, že dávají stejné výsledky jako předtím. Regrese je chyba, kterou způsobila změna jinde: úprava jedné obrazovky nebo výpočtu nechtěně změní chování jiné části. Proto je dobré spouštět regresní testy automaticky a pokud možno celé, nejen pro oblast, které se změna týkala.

Základem je sada příkladů se známým správným výsledkem. U finanční aplikace to jsou hlavně výpočty: kupón v různých konvencích, AÚV k různým dnům a daň pro různé druhy investorů. Očekávané výsledky se nepočítají znovu stejným kódem. Zapíšou se jednou a ověří jinou cestou, třeba ručně v Excelu nebo podle příkladu v emisních podmínkách. Regresní test pak hlídá, že se nezmění. Nezachytí ale chybu, kterou autor kódu i ten, kdo zapsal očekávaný výsledek, udělali stejně, protože pravidlo z emisních podmínek pochopili stejně špatně. Na tu je potřeba výpočet nezávislý na obou.

Příklad

Sada obsahuje případ z ukázkové emise: investor, fyzická osoba rezident, 10 kusů, kupón 138,63 Kč, úrok 10 × 138,63 = 1 386,30 Kč, očekávaná daň 207 Kč a výplata 1 179,30 Kč. Dejme tomu, že vývojář upraví zaokrouhlení u AÚV a omylem změní společnou funkci, kterou používá i výpočet daně. Daň se začne zaokrouhlovat za každý kus zvlášť: 138,63 × 0,15 = 20,7945 Kč, dolů na koruny 20 Kč, za 10 kusů 10 × 20 = 200 Kč.

Regresní test ohlásí rozdíl 207 − 200 = 7 Kč dřív, než se změna dostane k uživatelům, i když se úprava daně vůbec netýkala. Ukázková emise má 20 takových investorů, takže na jedné výplatě by emitent srazil a odvedl o 20 × 7 = 140 Kč méně daně, než měl, a chybějící daň by musel doplatit z vlastních peněz.

Jaké další cesty ověření výpočtů mají smysl vedle regresních testů, popisuje článek Testování finančních výpočtů.

Všechny pojmy ve slovníku