Wed 15 Jun 2016 13:30 - 14:00 at Grand Ballroom Santa Ynez - Testing & Debugging Chair(s): Benjamin Zorn

Java virtual machine (JVM) is a core technology, whose reliability is critical. Testing JVM implementations requires painstaking effort in designing test classfiles (*.class) along with their test oracles. An alternative is to employ binary fuzzing to differentially test JVMs by blindly mutating seeding classfiles and executing the resulting mutants on different JVMs for revealing inconsistent behaviors. However, this blind approach is not cost effective in practice because (1) most of the mutants are invalid and redundant, and (2) the discovered JVM discrepancies, if any, mostly only concern compatibility issues, rather than actual defects.

This paper tackles this challenge by introducing classfuzz, a coverage-directed fuzzing approach that focuses on representative classfiles for differential JVM testing. Our core insight is to (1) mutate seeding classfiles using a set of predefined mutation operators and employ Markov Chain Monte Carlo (MCMC) sampling to guide mutator selection, and (2) execute the mutants on a reference JVM implementation and use coverage uniqueness as a discipline for accepting representative ones. The accepted classfiles are used as inputs to differentially test JVMs and find defects.

We have implemented classfuzz and conducted an extensive evaluation of it against existing fuzz testing algorithms. Our evaluation results show that classfuzz can enhance the ratio of discrepancy-triggering classfiles from 1.7% to 11.9%. We have also reported 62 defect-indicative discrepancies, along with the test classfiles, to JVM developers. A number of our reported issues have already been confirmed as JVM defects, and some even match recent clarifications and changes to the JVM specification, Java SE 8 Edition.

Wed 15 Jun

Displayed time zone: Tijuana, Baja California change

13:30 - 15:00
Testing & DebuggingResearch Papers at Grand Ballroom Santa Ynez
Chair(s): Benjamin Zorn Microsoft Research
13:30
30m
Talk
Coverage-Directed Differential Testing of JVM Implementations
Research Papers
Yuting Chen Shanghai Jiao Tong University, Ting Su East China Normal University, Chengnian Sun University of California at Davis, USA, Zhendong Su University of California, Davis, Jianjun Zhao Shanghai Jiao Tong University
Media Attached
14:00
30m
Talk
Exposing Errors Related to Weak Memory in GPU Applications
Research Papers
Tyler Sorensen University College London, Alastair F. Donaldson Imperial College London
Pre-print Media Attached
14:30
30m
Talk
Lightweight Computation Tree Tracing for Lazy Functional Languages
Research Papers
Maarten Faddegon University of Kent, UK, Olaf Chitil University of Kent, UK
Media Attached