Abstrakt. Detta papper beskriver en teknik som väljer, från en stor uppsättning testingångar, en liten delmängd som sannolikt avslöjar fel i den programvara som testas. Tekniken tar ett program eller programkomponent, plus en uppsättning korrekta exekveringar, från observationer av programvaran körs korrekt, eller från en befintlig testsvit som en användare vill förbättra. Tekniken ger först en operativ modell av programvarans drift. Därefter, ingångar vars operativa mönster av utförande skiljer sig från modellen på specifika sätt tyder på fel. Dessa ingångar minskas ytterligare genom att endast välja en input per operativt mönster. Resultatet är en liten del av de ursprungliga ingångar, anses av tekniken som mest sannolikt att avslöja fel. Tekniken kan därför också ses som en feldetekteringsteknik. I dokumentet beskrivs ytterligare två tekniker som kompletterar urvalet av testindata. Den ena är en teknik för att automatiskt producera ett orakle (en uppsättning påståenden) för en provingång från den operativa modellen, vilket omvandlar testingången till ett testfall. Den andra är en klassificeringsstyrd testinmatningsteknik som också använder operativa modeller och mönster. När man genererar ingångar filtrerar man bort kodsekvenser som sannolikt inte kommer att bidra till lagliga ingångar, vilket förbättrar effektiviteten i sökandet efter felavslöjande ingångar. Vi har implementerat dessa tekniker i Eclat-verktyget, som genererar enhetstester för Javaklasser. Eclats inmatning är en uppsättning klasser att testa och ett exempel program exekvering-say, en godkänd testsvit. Eclats utdata är en uppsättning JUnit-testfall som var och en innehåller en potentiellt felavvisande indata och en uppsättning påståenden som minst ett av dem misslyckas med. I våra experiment, Eclat genererade framgångsrikt ingångar som avslöjade fel-avslöjande beteende; vi har använt Eclat för att avslöja verkliga fel i program. De ingångar den väljer som felavvisande är en storleksordning som är lika sannolik att avslöja ett fel som alla genererade ingångar.
Ett anmärkningsvärt undantag är Eclat REF, som genererar påståenden baserade på en modell inlärd från en uppsättning tester som antas vara korrekta.
Eclat: Automatic generation and classification of test inputs
{'venue': 'In 19th European Conference Object-Oriented Programming', 'journal': None, 'mag_field_of_study': ['Computer Science']}