Regressionstestning är processen för att validera modifierad programvara för att upptäcka om nya fel har införts i tidigare testad kod och för att ge förtroende för att ändringar är korrekta. Eftersom regressionstest är en dyr process har forskare föreslagit metoder för att välja regressionstest som ett sätt att minska en del av denna kostnad. Dessa tekniker försöker minska kostnaderna genom att välja och köra endast en delmängd av testfallen i ett programs befintliga testsvit. Även om det har gjorts vissa analytiska och empiriska utvärderingar av enskilda tekniker, har enligt vår kunskap endast en jämförande studie, som fokuserar på en aspekt av två av dessa tekniker, rapporterats i litteraturen. Vi utförde ett experiment för att undersöka de relativa kostnaderna och fördelarna med flera regressionstester. Tillstånd att göra digital / papperskopia av en del av eller allt detta verk för personligt eller klassrum användning beviljas utan avgift förutsatt att kopiorna inte görs eller distribueras för vinst eller kommersiella fördelar, upphovsrättsmeddelandet, titeln på publikationen, och dess datum visas, och meddelande ges att kopiering är med tillstånd av ACM, Inc. Att kopiera på annat sätt, att publicera, att posta på servrar, eller att omfördela till listor, kräver föregående specifikt tillstånd och / eller en avgift. minska försöken med regressionstest och upptäcka fel i modifierade program. Våra resultat belyser flera skillnader mellan teknikerna och avslöjar väsentliga kompromisser som bör beaktas när man väljer en teknik för praktisk tillämpning.  När utvecklare underhåller ett programvarusystem, de periodiskt regression testa det, i hopp om att hitta fel som orsakas av deras ändringar och ge förtroende för att deras ändringar är korrekta. För att stödja denna process skapar utvecklare ofta en första testsvit, och sedan återanvända den för regressionstestning. Den enklaste regressionstestningsstrategin, omtesta alla, kör om varje testfall i den ursprungliga testsviten. Detta tillvägagångssätt kan dock vara oöverkomligt dyrt att återställa alla testfall i testsviten kan kräva en oacceptabel tid. En alternativ metod, valet av regressionstest, kör endast om en delmängd av den ursprungliga testsviten. Detta tillvägagångssätt är naturligtvis ofullständigt, eftersom metoder för att välja ut väl regressionstester kan ha avsevärda kostnader och kan förkasta testfall som skulle kunna avslöja fel, eventuellt minska feldetekteringens effektivitet. Denna avvägning mellan den tid som krävs för att välja ut och köra testfall och feldetekteringsförmågan hos de testfall som körs är central för valet av regressionstest. Eftersom det finns många sätt att närma sig denna kompromiss, har en mängd olika urvalsmetoder föreslagits (t.ex., Agrawal et al. [1993] Chen m.fl. [1994, Harrold och Soffa [1988], Hartmann och Robson [1990], Leung and White [1990], Ostrand and Weyuker [1988] och Rothermel och Harrold [1997]. Även om det har gjorts vissa analytiska och empiriska utvärderingar av enskilda tekniker [Chen et al. 1994; Rosenblum och Weyuker 1997b; Rothermel och Harrold 1997; ] såvitt vi vet har endast en jämförande studie, som fokuserar på en aspekt av två av dessa tekniker, rapporterats i litteraturen [Rosenblum och Rothermel 1997]. Vi antar att olika metoder för att välja regressionstest skapar olika avvägningar mellan kostnaderna för att välja ut och genomföra testfall, och behovet av att uppnå tillräcklig feldetekteringsförmåga. Eftersom det har gjorts få kontrollerade experiment för att kvantifiera dessa kompromisser, genomförde vi en sådan studie. Våra resultat indikerar att valet av algoritm för regressionstest väsentligt påverkar kostnadseffektiviteten av regressionstestning. Nedan går vi igenom relevant litteratur, beskriver de testurvalsmetoder vi undersökt och presenterar vår experimentella design, analys och slutsatser.
Harrold och Soffa föreslog en dataflödestäckning baserad regressionstest val teknik REF.
An empirical study of regression test selection techniques
{'venue': 'TSEM', 'journal': None, 'mag_field_of_study': ['Engineering', 'Computer Science']}