Abstrakt. Vi diskuterar hur man utför symboliskt utförande av stora program på ett sätt som både är kompositionellt (därför mer skalbart) och efterfrågestyrt. Kompositionell symbolisk avrättning innebär att hitta möjliga interprocedural program vägar genom att komponera symboliska avrättningar av genomförbara intraprocedurala vägar. Med efterfrågestyrda menar vi att så få intraprocedurala vägar som möjligt symboliskt utförs för att bilda en interprocedural väg som leder till en specifik målgren eller intresseförklaring (som ett påstående). En viktig originalitet i detta arbete är att vår behovsdrivna kompositionella interprocedural symboliska utförande utförs helt med hjälp av första ordningen logik formler löst med en off-the-shälf SMT (Satisfiability-Modulo-Theories) lösare - ingen procedur in-lining eller anpassade algoritm krävs för den interprocedurala delen. Detta möjliggör ett enhetligt och elegant sätt att sammanfatta förfaranden på olika nivåer av detaljer och att komponera dem med logiska formler. Vi har implementerat en prototyp av denna nya symboliska exekveringsteknik som en förlängning av Pex, en allmän automatisk testram för.NET-applikationer. Preliminära experimentella resultat är uppmuntrande. Till exempel, vår prototyp kunde generera tester utlösa påståenden överträdelser i program med ett stort antal program vägar som var utanför omfattningen av icke-kompositionell testgenerering.
Efterfrågedriven kompositionell symbolisk exekvering REF genererar partiella sammanfattningar som endast beskriver en delmängd av alla vägar i en funktion och kan expanderas latily.
Demand-driven compositional symbolic execution
{'venue': 'In Proc. 14th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS', 'journal': None, 'mag_field_of_study': ['Computer Science']}