Wat is softwareregressie?
Softwareregressie is een bug in softwareprogrammering die ervoor zorgt dat de software op een of meer gebieden effectief achteruitgaat. Er zijn twee hoofdtypen van softwareregressie: functioneel en niet-functioneel. Functioneel betekent dat het programma op de juiste snelheid werkt, maar een of meer functies werken niet, terwijl niet-functioneel betekent dat alle functies werken, maar de snelheid drastisch wordt verlaagd. Een gebeurtenis, zoals een upgrade, is meestal de oorzaak van regressie. Regressietesten controleren software om te verzekeren dat er geen regressie is of zal plaatsvinden.
Functionele softwareregressie is een manier waarop regressie van programma's zich kan manifesteren. Wanneer dit gebeurt, blijft het programma op volle snelheid doorgaan, zodat de gebruiker de regressie in eerste instantie misschien niet merkt. In deze manifestatie zijn er bepaalde functies die niet meer werken. Als een programma bijvoorbeeld naar bestanden kan zoeken, werkt die functie mogelijk niet meer. Dit kan van invloed zijn op accessoire-functies - die niet vaak worden gebruikt - of op de hoofdfunctie van het programma.
Niet-functionele softwareregressie is gevaarlijker en gemakkelijker op te merken, hoewel alle functies nog steeds werken. In deze manifestatie maakt de regressie het programma langzamer, of zal de uitvoer van het programma aanzienlijk minder zijn. Het gebrek aan snelheid betekent dat het programma ook kwetsbaar kan worden voor kwaadaardige codering en aanvallen, waardoor zowel het programma als de computer waarop het wordt uitgevoerd, kunnen worden gehackt. De snelheid kan zo langzaam worden dat het onmogelijk kan zijn om het programma te gebruiken.
Om softwareregressie te laten plaatsvinden, moet een zogenaamde gebeurtenis plaatsvinden. Deze gebeurtenis wijzigt de codering van de software en introduceert deze bugs, opzettelijk - wat zeldzaam is - of onbedoeld. De ontwikkelaar probeert mogelijk een bug op te lossen of de versie bij te werken, maar introduceert ten onrechte een code die het programma regresseert. De meest typische gebeurtenis is een upgrade, omdat deze rechtstreeks van invloed is op de codering van het programma. Andere gebeurtenissen omvatten versie- of configuratiewijzigingen.
Om de kansen op softwareregressie te verkleinen, wordt meestal gebruik gemaakt van regressietests. Dit type testen kijkt naar het nieuwe programma en vergelijkt het met alle oude versies van het programma. Vervolgens voert het de programmering door een test uit om te zien of er enig teken van regressie is en om ervoor te zorgen dat alle codering functioneel is. Alle tekenen van regressie of niet-functionerende code worden teruggebracht naar de ontwikkelaar of gebruiker en zullen rapporteren wat is teruggevallen of waar de regressie is gevonden.