Generering av testfall på enhetsnivå för strukturell kodtäckning är en uppgift som är väl anpassad till genetiska algoritmer. Metod anropssekvenser måste skapas som konstruerar objekt, sätta dem i rätt tillstånd och sedan köra avtäckt kod. Men, generationen av primitiva värden, såsom heltal och dubbletter, tecken som visas i strängar, och matriser av primitiva värden, är inte så enkelt. Ofta krävs små lokala förändringar för att driva värdet mot den som behövs för att utföra någon målstruktur. Globala sökningar som Genetiska Algoritmer tenderar dock att göra större förändringar som inte är koncentrerade på någon särskild aspekt av ett testfall. I detta dokument utvidgar vi den genetiska algoritmen bakom EvoSuite-testgenereringsverktyget till en Memetic Algorithm, genom att utrusta den med flera lokala sökoperatörer. Dessa operatörer är utformade för att effektivt optimera primitiva värden och andra aspekter av en testsvit som gör det möjligt för sökandet efter testfall att fungera mer effektivt. Vi utvärderar våra operatörer med hjälp av en rigorös experimentell metodik på över 12 000 Java klasser, bestående av öppen källkod klasser av olika slag, inklusive numeriska applikationer och textprocessorer. Vår studie visar att det är möjligt att öka filialtäckningen med upp till 53 % för en enskild klass i praktiken.
Observera att memetiska algoritmer har framgångsrikt använts för att generera testsviter som optimerar grentäckning REF.
A Memetic Algorithm for whole test suite generation
{'venue': 'J. Syst. Softw.', 'journal': 'J. Syst. Softw.', 'mag_field_of_study': ['Computer Science']}