Mutation Testing har visat sig vara en kraftfull teknik för att upptäcka programvarufel. Trots denna fördel finns det i praktiken ett behov av att ta itu med motsvarande mutanters problem. Att automatiskt upptäcka likvärdiga mutanter är ett oavgjort problem. Därför är det besvärligt att identifiera likvärdiga mutanter eftersom det kräver manuell analys, vilket resulterar i outhärdliga testkostnader. För att övervinna denna svårighet föreslog forskare användningen av mutantklassificering, en metod som syftar till att isolera likvärdiga mutanter automatiskt. Ur detta perspektiv fastställs och bedöms i detta dokument empiriskt möjliga strategier för klassificering av mutanter. En genomförd studie visar att mutantklassificering isolerar likvärdiga mutanter effektivt när testsviter av låg kvalitet används. Det visar sig dock att i takt med att testsviterna utvecklas minskar fördelarna med denna praxis. Därför är mutantklassificeringen bara fruktbar när det gäller att förbättra testsviter av låg kvalitet och endast upp till en viss gräns. I detta syfte visar empiriska resultat att de föreslagna strategierna ger en kostnadseffektiv lösning när de beaktar ett litet antal levande mutanter, dvs. 10–12. Vid det här laget dödar de 92% av alla dödliga mutanter. när samma testfall körs. Annars kallas det live. Ju högre antal mutanter som dödas, desto högre är testfallskraften. Men även om vissa mutanter kan dödas, kan vissa mutanter inte dödas. I så fall är sådana mutanter kvalificerade som likvärdiga. Som ett resultat bildar en likvärdig mutant en programversion funktionellt likvärdig med det ursprungliga programmet, dvs. det finns inget testfall som kan skilja denna mutant från det ursprungliga programmet. En motsvarande mutant spelar rollen av en parasit i testprocessen. Ja, även om det förväntas vara dödsbringande, förblir det alltid levande. Ännu värre är att man i onödan skulle kunna ägna sig åt att förbättra testerna utan hopp om att döda dem (på ett sätt som liknar att täcka ogenomförbara uttalanden eller grenar v.r.t. Kodtäckningskriterier [16]. Som en följd av detta kräver mutationstest att dessa mutanter avlägsnas. Att kasta bort likvärdiga mutanter är dock ett ännu svårare problem, eftersom det är känt att det är obeslutbart att döma programs funktionella likvärdighet [4]. Till följd av detta krävs tråkig manuell analys. Det har empiriskt visat sig att det tar cirka 15 minuter [22] att identifiera en motsvarande mutant i en verklig applikation. Eftersom det finns ett stort antal likvärdiga mutanter, ökar tillämpningskostnaden för mutationen. Som en följd av detta kräver det kriterium som används för att stoppa testningsprocessen att de flesta, om inte alla, befintliga likvärdiga mutanter identifieras. För att minska de oönskade effekterna av likvärdiga mutanter verkar heuristiska metoder vara lovande. Schuler och Zeller [21, 22] föreslog en metod för att automatiskt klassificera mutanter i den troliga dödliga och den sannolika motsvarigheten. Den underliggande idén med detta tillvägagångssätt är att mäta effekterna, kallas effekten, infördes av mutanter på körtiden program exekvering. Man har funnit att mutanter med en kollision är mer benägna att vara dödliga än de utan påverkan. Även om mutantklassificering har föreslagits [22] är det inte uppenbart hur den skulle kunna tillämpas i praktiken. Dessutom är det inte uppenbart vilka de praktiska fördelarna med dess användning är. I detta dokument definieras strategier som drar nytta av mutantklassificeringen. Vi kallar dessa strategier för mutantklassificeringsstrategier. Dessa vänder mutanters påverkan som en guide till att förbättra en testsvit. Det främsta syftet med detta arbete är att definiera och utvärdera mutantklassificeringsstrategiernas relativa effektivitet och effektivitet. Med andra ord tar vi upp frågan om hur mutationstestningsprocessen ska utföras för att dra nytta av muterad klassificering. I detta syfte försöker vi identifiera de praktiska fördelarna med dessa strategier jämfört med den "traditionella" metoden för mutationstestning, dvs. det vanliga sättet att tillämpa mutationstestning (utan mutantklassificering); se avsnitt 3.3 för en definition av "traditionella" och mutantklassificeringsmetoder. Ovanstående avsikter undersöktes på grundval av en uppsättning industriella program skrivna i C och med hjälp av Proteum [6]-mutationstestningssystemet. Det har konstaterats att de granskade strategierna är kostnadseffektiva när det gäller att förbättra kvaliteten på en testsvit. Denna förbättring kan leda till mutationspoäng på 92%-95% genom att undersöka upp till tjugo mutanter per program. Att nå högre mutationspoäng är dock inte fruktbart med de undersökta strategierna. I dessa fall bör därför det traditionella tillvägagångssättet tillämpas. Trots denna svaghet kan användningen av dessa strategier leda till betydande fördelar med avseende på motsvarande mutanters identifiering i icke-kritiska fall. Därför kan mutantklassificeringen ge en kostnadseffektiv lösning på motsvarande mutanters problem endast upp till en viss gräns. I detta syfte visar empiriska resultat att när man undersöker endast ett litet antal mutanter, dvs. (10-12) mutanter, är de föreslagna strategierna fördelaktiga och de dödar mer än 92 % av alla dödliga mutanter. Dessutom visar de erhållna resultaten att metodernas effektivitetsförlust är en direkt följd av riktigheten i de föreslagna klassificeringssystemen och därmed pekar på möjliga riktlinjer för framtida forskning. I detta dokument utvidgas det tidigare arbetet med muterade klassificeringsstrategier [24] i flera dimensioner. För det första genom att överväga ett större utbud av program. För det andra genom att studera och analysera (manuellt) motsvarande mutanter för alla C-språk mutant operatörer. För det tredje, genom att studera beteendet hos strategierna när slumpmässiga testfall används som initiala. Slutligen görs också en kostnadseffektiv analys av de föreslagna strategierna och en jämförelse med den traditionella mutationsmetoden. Resten av detta dokument är organiserat enligt följande: Avsnitt 2 och 3 presenterar de begrepp som ligger till grund för det nuvarande arbetet och de muterade klassificeringsstrategierna. Avsnitt 4 presenterar och beskriver den experimentella installationen. De empiriska resultaten presenteras och analyseras i avsnitt 5. I avsnitt 6 diskuteras resultaten av denna studie och behandlas vissa hot mot den genomförda studiens giltighet. I avsnitten 7 respektive 8 presenteras slutligen det relaterade arbetet och slutsatserna i dokumentet. Användning av mutation som testkriterium [17] kräver ett sätt att mäta testningens lämplighet. Generellt kan testlämplighet mätas baserat på den exakta mutationspoängen, som definieras enligt följande: Beräkningen av den exakta mutationspoängen är dock svår på grund av förekomsten av de så kallade likvärdiga mutanterna [16]. Dessa mutanter kan inte dödas och därför måste de på något sätt identifieras för att beräkna mutationspoängen. I detta syfte har utövare två val: a) att manuellt analysera de levande mutanterna, vilket i praktiken är mycket svårt, om inte praktiskt omöjligt och b) att uppskatta den exakta mutationspoängen. Den senare metoden är baserad på den faktiska mutationspoäng, som definieras enligt följande: Använda faktiska MS har två huvudsakliga nackdelar. För det första krävs det från testaren att avgöra vilket värde av poängen som är tillfredsställande för att slutföra processen. Utan en manuell analys är detta val mer eller mindre godtyckligt, vilket resulterar i ett försämrat förtroende för testprocessen. För det andra ger det inte någon vägledning till testaren om vilka mutanter som ska riktas först, för att öka poängen. För att ta itu med dessa svårigheter undersöks i detta dokument användningen av mutanters påverkan [22], [21] som ett möjligt sätt att automatiskt identifiera de dödliga mutanterna. Den anger också den ordning av mutanter som bör riktas. Med andra ord, mutanter påverkan gör det möjligt att avgöra om levande mutanter kan dödas eller inte. Testaren kan därför endast koncentrera sig på dessa (sannolikt dödliga) mutanter enligt den angivna ordningen. Ytterligare detaljer om begreppet mutanters påverkan ges i följande avsnitt.
REF använde manuell analys för att studera muterade klassificeringsstrategier och fann att sådana tekniker endast är till hjälp för att delvis förbättra testsviter (av låg kvalitet).
Mitigating the effects of equivalent mutants with mutant classification strategies
{'venue': 'Sci. Comput. Program.', 'journal': 'Sci. Comput. Program.', 'mag_field_of_study': ['Computer Science']}