2016 · 13 citations · 24 references
EngineeringCompiler TechnologyComputer ArchitectureSoftware EngineeringSoftware AnalysisFormal VerificationSymbolic ComputationSymbolic Execution EngineOver-fitting SymbooglixFuzzingParallel ComputingRuntime VerificationCompiler SupportComputer EngineeringComputer ScienceStatic Program AnalysisAutomated ReasoningProgram AnalysisSoftware TestingFormal MethodsParallel ProgrammingBoogie ProgramsSymbolic ExecutionSystem Software
We present the design and implementation of Symbooglix, a symbolic execution engine for the Boogie intermediate verification language. Symbooglix aims to find bugs in Boogie programs efficiently, providing bug-finding capabilities for any program analysis framework that uses Boogie as a target language. We discuss the technical challenges associated with handling Boogie, and describe how we optimised Symbooglix using a small training set of benchmarks. This empirically-driven optimisation approach avoids over-fitting Symbooglix to ourbenchmarks, enabling a fair comparison with other tools. We present an evaluation across 3749 Boogie programs generated from the SV-COMP suite of C programs using the SMACK front-end, and 579 Boogie programs originating from several OpenCL and CUDA GPU benchmark suites, translated by the GPU Verify front-end. Our results show that Symbooglix significantly out-performs Boogaloo, an existing symbolic execution tool for Boogie, and is competitivewith GPUVerify on benchmarks for which GPUVerify is highly optimised. While generally less effective than the Corral and Duality tools on the SV-COMP suite, Symbooglix is complementary to them in terms of bug-finding ability.
24
Symbolic execution and program testing
James C. King · Communications of the ACM · 1976 · 2.9K citations · Full text
Automated Whitebox Fuzz Testing.
Patrice Godefroid, Michael Y. Levin, David A. Molnar · 2008 · 1K citations
Cristian Cadar, Vijay Ganesh, Peter M. Pawlowski et al. · 2006 · 784 citations