Regressionstestfall
!!Regressionstestfall
En beskrivning av de olika rubrikerna nedan finns [här|Generella underhållbarhetskrav].
!Kravtext
Systemet skall levereras tillsammans med automatiserade regressionstestfall. När testerna startats skall ingen mänsklig inblandning behövas innan resultatet rapporteras. Som resultat av testerna skall en rapport som visar vilka testfall som är uppfyllda respektive inte uppfyllda skapas. Testfallen skall ge satstäckning (eng. statement coverage) på minst 80%. Alla verktyg som behövs för att köra testerna samt instruktioner för hur testerna körs skall levereras med systemet.
!Förklaring
Ett stort problem vid förändring av mjukvara är att det är lätt att av misstag föra in fel utan att upptäcka att man gjort det. Tack vare att regressionstestfallen är automatiska är det lätt att utföra testerna när en förändring gjorts och på så sätt kan man upptäcka fel som råkat komma med. Naturligtvis är det ingen garanti för att alla fel upptäcks, men det är en klar förbättring jämfört med att inte ha några automatiserade regressionstestfall alls.
Att testfallen skall ge satstäckning på minst 80% innebär att 80% av satserna i programmet måste köras av minst ett testfall. Detta kan tyckas vara lite, men i praktiken är det svårt, och därför dyrt, att kräva mycket hög satstäckning.
!Kostnad
Att använda automatiserade regressionstestfall är att rekommendera för i princip all systemutveckling eftersom det förenklar utvecklingsarbetet på så sätt att fel i systemet hittas tidigare. Det förekommer därför att utvecklare använder sådana. Kostnaden att skapa automatiserade regressionstestfall är relativt hög, men nyttan för någon som ska underhålla systemet är även den relativt hög.
!Anpassningar
Man kan välja olika procentsats för satstäckning. Vi rekommenderar en procentsats i intervallet 70-95%. Högre satstäckning än 95% kan bli mycket dyrt eftersom det är svårt att i praktiken skapa testfall som kör all programkod.
Det finns flera alternativa mått på hur stor del av programkoden som genomlöpts av testfallen. Satstäckning har fördelarna att vara lätt att definiera, lätt att mäta och att vara tämligen neutral för vilket programmeringsspråk som används.
Vi rekommenderar inte att nöja sig dokumenterade testfall som kan utföras manuellt, eftersom den stora nyttan med regressionstestfall vid underhåll av systemet kommer av att det är snabbt gjort att köra dem efter varje förändring som gjorts.
!Relation till andra krav
Instruktionernas utformning påverkas av eventuella generella dokumentationskrav.
Som krav på tredjepartskomponenter kan man kräva att speciella verktyg ska användas för testerna.



