Co je to softwarová regrese?
Softwarová regrese je chyba v programování softwaru, která způsobuje, že software účinně regresuje v jedné nebo více oblastech. Existují dva hlavní typy softwarové regrese: funkční a nefunkční. Funkční znamená, že program pracuje správnou rychlostí, ale jedna nebo více funkcí nefunguje, zatímco nefunkční znamená, že všechny funkce fungují, ale rychlost se dramaticky snižuje. Událost, jako je upgrade, je obvykle příčinou regrese. Regresní testování kontroluje software, aby se zajistilo, že nedochází ani nebude probíhat regrese.
Funkční softwarová regrese je jedním ze způsobů, jak se může regresní program projevit. V takovém případě bude program pokračovat v plné rychlosti, takže si uživatel nemusí nejprve všimnout regrese. V tomto projevu existují určité funkce, které již nefungují. Pokud například program může vyhledat soubory, nemusí tato funkce fungovat. To může ovlivnit doplňkové funkce - ty, které se běžně nepoužívají - nebo hlavní funkci programu.
Nefunkční regrese softwaru je nebezpečnější a snáze si ji všimnete, přestože všechny funkce stále fungují. V tomto projevu regrese zpomalí běh programu nebo bude výstup programu výrazně nižší. Nedostatek rychlosti znamená, že program může být rovněž náchylný ke škodlivému kódování a útokům, čímž ohrožuje jak hacker, tak program i počítač, na kterém běží. Rychlost může být tak pomalá, že nebude možné program používat.
Aby došlo k regresi softwaru, musí se uskutečnit tzv. Událost. Tato událost mění kódování softwaru a zavádí tyto chyby, ať už záměrně - což je vzácné - nebo neúmyslně. Vývojář se možná pokouší opravit chybu nebo aktualizovat verzi, ale nesprávně zavádí nějaký kód, který program regresuje. Nejtypičtější událostí je upgrade, protože to přímo ovlivňuje kódování programu. Mezi další události patří změny verze nebo konfigurace.
Pro zmírnění šancí na regresi softwaru se obvykle používá regresní testování. Tento typ testování zkoumá nový program a porovnává jej se všemi starými verzemi programu. Potom provede programování testem, aby zjistil, zda existují nějaké známky regrese, a aby bylo zajištěno, že veškeré kódování je funkční. Jakékoli známky regresního nebo nefunkčního kódu budou vráceny zpět vývojáři nebo uživateli a budou hlásit, co došlo k regresi nebo kde je regrese nalezena.