Hvad er software-regression?
Softwareregression er en fejl i programmering af software, der får softwaren til at regressere effektivt på et eller flere områder. Der er to hovedtyper af software-regression: funktionel og ikke-funktionel. Funktionelt betyder, at programmet fungerer ved passende hastigheder, men en eller flere funktioner fungerer ikke, mens ikke-funktionelle betyder, at alle funktioner fungerer, men hastigheden reduceres dramatisk. En begivenhed, såsom en opgradering, er normalt årsagen til regression. Regressionstest kontrollerer software for at sikre, at ingen regression har eller vil forekomme.
Funktionel software-regression er en måde, som programregression kan manifestere sig på. Når dette sker, vil programmet fortsætte med at køre i fuld hastighed, så brugeren muligvis ikke bemærker regressionen først. I denne manifestation er der visse funktioner, der ikke fungerer mere. For eksempel, hvis et program kan søge efter filer, fungerer den funktion muligvis ikke længere. Dette kan påvirke tilbehørsfunktioner - dem, der ikke ofte bruges - eller programmets hovedfunktion.
Ikke-funktionel software-regression er mere farlig og lettere at bemærke, selvom alle funktioner stadig fungerer. I denne manifestation gør regressionen, at programmet kører langsommere, eller output af programmet vil være markant mindre. Manglen på hastighed betyder, at programmet også kan blive sårbart overfor ondsindet kodning og angreb, hvilket sætter både programmet og computeren, som det kører i fare for hacking. Hastigheden kan blive så langsom, at det kan være umuligt at bruge programmet.
For at softwarereegression skal finde sted, skal en såkaldt begivenhed finde sted. Denne begivenhed ændrer kodningen af softwaren og introducerer disse fejl, enten med vilje - hvilket er sjældent - eller utilsigtet. Udvikleren prøver muligvis at rette en fejl eller opdatere versionen, men introducerer forkert en kode, der regresserer programmet. Den mest typiske begivenhed er en opgradering, fordi dette direkte påvirker programmets kodning. Andre begivenheder inkluderer ændringer i version eller konfiguration.
For at lindre chancerne for software-regression anvendes der normalt regressionstest. Denne type test ser på det nye program og sammenligner det med alle gamle versioner af programmet. Derefter kører programmeringen gennem en test for at se, om der er noget tegn på regression, og for at sikre, at al kodning er funktionel. Eventuelle tegn på regresseret eller ikke-fungerende kode vil blive bragt tilbage til udvikleren eller brugeren og vil rapportere, hvad der er regresseret, eller hvor regressionen findes.