Regressionstestning teori och praktik Lic. Emelie Engström emelie.engstrom@cs.lth.se Software Engineering Research Group LUND UNIVERSITY Sweden SWELL the Swedish Research School in Software Verification and 1
Disposition Regressionstestning... vad är det? vad vet vi? hur gör vi? 2
Regressionstestning......vid utveckling över tid 3
Regressionstestning......vid utveckling över tid [http://www.extremeprogramming.org] 4
Regressionstestning......vid återanvändning 5
Regressionstestning......vid testning på flera nivåer 6
Definition regression testing. Selective retesting of a system or component to verify that modifications have not caused unintended effects and that the system or components still complies with its specified requirements. [IEEE 610.12-1990] 7
Levels (views of the system) LUND UNIVERSITY Flera dimensioner av regressionstest Test cases Acceptance test System test Integration test Unit test Coverage Items Expectations, Quality requirements Functional requirements, Design Interfaces, Implementation Repetitive tests across versions across variants across levels Redundancy? Versions (evolution in time) 8
Regressionstestning - teori Urval (Selection) Testa ändringar och möjliga bieffekter Kodanalys Prioritering (Prioritization) Oberoende av ändringar Surrogat Reducering (Reduction or Minimization) Eliminera redundans Permanent eller tillfälligt 9
Regressionstestning teori och praktik Mycket forskning (30 år) Litet genomslag Komplex kontext Få studier i industrin Kombinerade metoder An empirical evaluation of regression testing based on fix-cache recommendations [Engström10] Improving Regression Testing Transparency and Efficiency with History Based Prioritization - an Industrial Case Study [Engström11] 10
Regressionstestning - praktik Fokusgrupp diskussioner 15 deltagare 10 företag Enkät 32 svarande 29 företag 11
Fokusgrupp Vad är regressionstestning? När regressionstestar ni? Hur regressionstestar ni? Vilka är era utmaningar med avseende på regressionstetning? Vilka är era styrkor med avseende på regressionstestning? 12
Enkät 13
Enkät 14
Enkät 15
Analys av resultaten Vad? Upprepad testning efter ändringar Nya versioner Nya konfigurationer bugfixar Nya lösningar Ny hårdvara... Hitta fel eller mäta kvalitet Mängd och frekvens styrs av Bedömd risk Omfattning och typ av ändring Tillgängliga resurser 16
Analys av resultaten När? På olika nivåer system, integration, enhet I olika skeden Så tidigt som möjligt, så sent som möjligt, kontinuerligt 17
Analys av resultaten Hur? Komplett omtestning Prioritering och urval Statisk och dynamisk testsvit Expertbedömning Manuellt / Automatiskt 18
Analys av resultaten Utmaningar! Testfallsurval Påverkansanalys Analys av täckningsgrad Spårbarhet mellan krav och test Automatisk vs. manuell testning Kostnadsmodell Testmiljö Design för testbarhet Beroenden i mjukvaran Avgränsning 19
Analys av resultaten Goda erfarenheter! Automatisera på nivåer under användargränssnittet Regressionstesta kontinuerligt Skifta fokus mellan olika testrundor Visualisera progressen Koppla kvalitetsattribut till varje testfall 20
Sammanfattning Definitioner är allmänt vedertagna Praxis varierar Kontexten är avörgande Samarbete mellan industri och akademi behövs 21
Photo: Tom Harris LUND UNIVERSITY Pågående forskning Test Scope Selection History Based Testing Alignment 22
Tack! Frågor? Kommentarer? Idéer? emelie.engstrom@cs.lth. se 23