Symbolisk utförande har visat sig vara en praktisk teknik för att bygga automatiserad test fallgenerering och felsökning verktyg. På grund av statsexplosion kämpar dock dessa verktyg fortfarande för att uppnå skalbarhet. Med tanke på ett program, ett sätt att minska antalet stater som verktygen behöver utforska är att slå samman stater som erhållits på olika vägar. Tyvärr ökar detta storleken på symboliska vägförhållanden (därigenom betonar den underliggande begränsningslösaren) och stör optimeringar av prospekteringsprocessen (även kallad sökstrategier). Nettoeffekten är att statssammanslagning faktiskt kan sänka resultatet snarare än öka det. Vi presenterar ett sätt att automatiskt välja när och hur man ska slå samman stater så att utförandet av symbolisk avrättning ökar avsevärt. För det första, vi presenterar frågeräkning uppskattning, en metod för statiskt uppskatta effekten som varje symbolisk variabel har på lösare frågor som följer en potentiell sammanfogning punkt; stater slås sedan samman endast när det lovar att vara fördelaktigt. För det andra presenterar vi dynamisk tillstånd sammanslagning, en teknik för sammanslagning stater som interagerar gynnsamt med sökstrategier i automatiserad test fallgenerering och felsökning verktyg. Experiment på 96 GNU Coreutils visar att vår strategi konsekvent uppnår flera storleksordningar snabbare än tidigare publicerade resultat. Vår kod och experimentella data är allmänt tillgängliga på http://cloud9.epfl.ch.
Query count estimation (QCE) är en heurist för att uppskatta antalet vägar som kommer att skapas genom sammanslagning på en viss programpunkt REF.
Efficient state merging in symbolic execution
{'venue': "PLDI '12", 'journal': None, 'mag_field_of_study': ['Computer Science']}