Att testa stora programvarupaket kan bli mycket tidsintensivt. För att ta itu med detta problem har forskare undersökt tekniker som Test Suite Minimering. Test Suite Minimering minskar antalet tester i en svit genom att ta bort tester som verkar överflödiga, med risk för en minskning av felsökning förmåga eftersom det kan vara svårt att identifiera vilka tester är verkligt överflödiga. Vi tar ett helt annat tillvägagångssätt för att lösa samma problem med långa testsviter genom att istället minska den tid som krävs för att utföra varje test, ett tillvägagångssätt som vi kallar Unit Test Virtualization. Med Unit Test Virtualization minskar vi omkostnaderna för att isolera varje enhetstest med en lättviktig virtualiseringsbehållare. Vi beskriver den empiriska analys som utgår från vårt förhållningssätt och ger en implementering av Unit Test Virtualization riktad mot Java applikationer. Vi utvärderade vårt genomförande, VmVm, med 20 verkliga Java-applikationer och fann att det minskar testsvitens genomförandetid med upp till 97% (i genomsnitt 62%) jämfört med traditionell enhetstest. Vi jämförde även VmVm med en välkänd testsvitsminimeringsteknik och fann att den reduktion som VmVm tillhandahåller är fyra gånger större, medan den fortfarande utför varje test utan förlust av felsökningsförmåga.
Verktyget VMVM REF använder testvirtualisering för att isolera enhetstester av en JUnit-svit genom att återställa programmets statiska tillstånd till dess standard före varje testkörning.
Unit test virtualization with VMVM
{'venue': 'ICSE 2014', 'journal': None, 'mag_field_of_study': ['Computer Science']}