Non-semantics-preserving transformations for higher-coverage test generation using symbolic execution

dc.contributor.advisorKhurshid, Sarfrazen
dc.contributor.committeeMemberPerry, Dewayneen
dc.creatorConverse, Hayes Elliotten
dc.creator.orcid0000-0002-0930-2473en
dc.date.accessioned2016-07-08T19:29:35Z
dc.date.accessioned2018-01-22T22:30:13Z
dc.date.available2016-07-08T19:29:35Z
dc.date.available2018-01-22T22:30:13Z
dc.date.issued2016-05en
dc.date.submittedMay 2016
dc.date.updated2016-07-08T19:29:35Z
dc.description.abstractSymbolic execution is a well-studied method that can produce high-quality test suites for programs. However, scaling it to real-world applications is a significant challenge, as it depends on the expensive process of solving constraints on program inputs. Our insight is that non-semantics-preserving program transformations can reduce the cost of symbolic execution and the tests generated for the transformed programs can still serve as quality suites for the original program. We present several such transformations that are designed to improve test input generation and/or provide faster symbolic execution. We evaluated these optimizations using a suite of small examples and a substantial subset of Unix's Coreutils. In more than 50% of cases, our approach reduces the test generation time and increases the code coverage.en
dc.description.departmentElectrical and Computer Engineeringen
dc.format.mimetypeapplication/pdfen
dc.identifierdoi:10.15781/T2MS3K19Jen
dc.identifier.urihttp://hdl.handle.net/2152/39064en
dc.language.isoenen
dc.subjectSymbolic executionen
dc.subjectCompiler optimizationsen
dc.subjectNon-semantics-preserving transformationsen
dc.subjectTestability transformationsen
dc.subjectTest generationen
dc.subjectLLVMen
dc.subjectKLEEen
dc.titleNon-semantics-preserving transformations for higher-coverage test generation using symbolic executionen
dc.typeThesisen
dc.type.materialtexten

Files