Achieving High Coverage for Floating-point Code via Unconstrained Programming
Achieving high code coverage is essential in testing, which gives us confidence in code quality. Testing floating-point code usually requires painstaking efforts in handling floating-point constraints, e.g., in symbolic execution. This paper turns the challenge of testing floating-point code into the opportunity of applying unconstrained programming – the mathematical solution for calculating function minimum points over the entire search space. Our core insight is to derive a representing function from the floating-point program, whose minimum point is a test input guaranteed to exercise a new branch of the tested program. This guarantee allows us to achieve high coverage of the floating-point program by repeatedly minimizing the representing function.
We have implemented this approach into the tool CoverMe and conducted an extensive evaluation on Sun’s C math library. Our experiment shows that CoverMe can achieve 90.8% of branch coverage in 6.9 seconds on average. This result dramatically outperforms our compared tools: (1) Random testing, (2) AFL, a highly optimized, robust fuzzer released by Google, and (3) Austin, a state-of-the-art coverage-based testing tool designed for supporting floating-point code.
Mon 19 JunDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
16:10 - 17:50 | Dynamic Analysis and TestingPLDI Research Papers at Actes, Civil Engineering Chair(s): Michael Pradel TU Darmstadt | ||
16:10 25mTalk | Achieving High Coverage for Floating-point Code via Unconstrained Programming PLDI Research Papers Media Attached | ||
16:35 25mTalk | Instruction Punning: Lightweight Instrumentation for x86-64 PLDI Research Papers Buddhika Chamith Indiana University, Luke Dalessandro Indiana University, Bo Joel Svensson Chalmers University of Technology, Sweden, Ryan R. Newton Indiana University Media Attached | ||
17:00 25mTalk | Low Overhead Dynamic Binary Translation on ARM PLDI Research Papers Amanieu d'Antras University of Manchester, Cosmin Gorgovan University of Manchester, Jim Garside University of Manchester, Mikel Luján Media Attached | ||
17:25 25mTalk | Skeletal Program Enumeration for Rigorous Compiler Testing PLDI Research Papers Qirun Zhang University of California, Davis, Chengnian Sun University of California, Davis, Zhendong Su University of California, Davis Media Attached |