Hva er programvaregresjon?
Regresjon av programvare er en feil i programmering av programvare som får programvaren til å regresere effektivt på ett eller flere områder. Det er to hovedtyper av programvaregresjon: funksjonell og ikke-funksjonell. Funksjonell betyr at programmet fungerer i riktige hastigheter, men en eller flere funksjoner fungerer ikke, mens ikke-funksjonelle betyr at alle funksjoner fungerer, men hastigheten er dramatisk redusert. En hendelse, for eksempel en oppgradering, er vanligvis årsaken til regresjon. Regresjonstesting av programvare for å sikre at ingen regresjon har eller vil oppstå.
Funksjonell programvare Regresjon er en måte programregresjon kan manifestere seg. Når dette skjer, vil programmet fortsette å kjøre i full fart, slik at brukeren kanskje ikke legger merke til regresjonen med det første. I denne manifestasjonen er det visse funksjoner som ikke fungerer lenger. For eksempel, hvis et program kan søke etter filer, kan det hende at den funksjonen ikke lenger fungerer. Dette kan påvirke tilbehørsfunksjonene - de som ikke er brukt - eller den viktigste funksjonenpå programmet.
Ikke-funksjonell programvare-regresjon er farligere og lettere å legge merke til, selv om alle funksjoner fremdeles fungerer. I denne manifestasjonen får regresjonen programmet til å gå saktere, ellers vil utdataene fra programmet være betydelig mindre. Mangelen på hastighet betyr at programmet også kan bli sårbar for ondsinnet koding og angrep, og setter både programmet og datamaskinen det er i faresonen for hacking. Hastigheten kan bli så langsom at det kan være umulig å bruke programmet.
For at programvare regresjon skal oppstå, må en såkalt hendelse finne sted. Denne hendelsen endrer kodingen av programvaren og introduserer disse feilene, enten med vilje - noe som er sjelden - eller utilsiktet. Utvikleren prøver kanskje å fikse en feil eller oppdatere versjonen, men introduserer feil kode som regreser programmet. Den mest typiske hendelsen er en oppgradering,Fordi dette direkte påvirker programmets koding. Andre hendelser inkluderer versjoner eller konfigurasjonsendringer.
For å lindre sjansene for programvare regresjon, brukes regresjonstesting vanligvis. Denne typen testing ser på det nye programmet og sammenligner det med alle gamle versjoner av programmet. Den kjører deretter programmeringen gjennom en test for å se om det er tegn på regresjon og for å sikre at all koding er funksjonell. Eventuelle tegn på regressert eller ikke-fungerende kode vil bli brakt tilbake til utvikleren eller brukeren og vil rapportere hva som har regressert eller hvor regresjonen er funnet.