Sammanhang: Evolutionära algoritmer har visat sig vara effektiva på att generera enhetstestsviter optimerade för kodtäckning. Medan många specifika aspekter av dessa algoritmer har utvärderats i detalj (t.ex. testlängd och olika typer av tekniker som syftar till att förbättra prestanda, som sådd), har påverkan av valet av evolutionär algoritm hittills sett mindre uppmärksamhet i litteraturen. Mål: Eftersom det är teoretiskt omöjligt att utforma en algoritm som är bäst på alla möjliga problem, är en gemensam strategi i programvarutekniska problem att först prova den vanligaste algoritmen, en genetisk algoritm, och först efteråt försöka förfina den eller jämföra den med andra algoritmer för att se om någon av dem är mer lämplig för det adresserade problemet. Syftet med detta dokument är att utföra denna analys, för att belysa påverkan av den sökalgoritm som tillämpas för enhetstestgenerering. Metod: Vi utvärderar empiriskt tretton olika evolutionära algoritmer och två slumpmässiga metoder på ett urval av icke-triviala öppna källklasser. Alla algoritmer implementeras i EVOSUITE-testgenereringsverktyget, vilket inkluderar nya optimeringar såsom användning av ett arkiv under sökning och optimering för flera täckningskriterier. Resultat: Vår studie visar att användningen av ett testarkiv gör evolutionära algoritmer klart bättre än slumpmässiga tester, och det bekräftar att DynaMOSA många-objektiva sökalgoritm är den mest effektiva algoritmen för enhetstestgenerering. Slutsats: Våra resultat visar att valet av algoritm kan ha en betydande inverkan på prestandan för hela testsvitens optimering. Även om vi kan göra en rekommendation om vilken algoritm som ska användas i praktiken, är ingen algoritm klart överlägsen i alla fall, vilket tyder på framtida arbete med förbättrade sökalgoritmer för enhetstestgenerering.
Dessutom är ingen sökalgoritm det bästa för alla klasser under test REF.
An Empirical Evaluation of Evolutionary Algorithms for Unit Test Suite Generation
{'venue': 'Inf. Softw. Technol.', 'journal': 'Inf. Softw. Technol.', 'mag_field_of_study': ['Computer Science']}