跳到主要导航 跳到搜索 跳到主要内容

Coverage-directed differential testing of JVM implementations

  • Yuting Chen
  • , Ting Su
  • , Chengnian Sun
  • , Zhendong Su
  • , Jianjun Zhao
  • Shanghai Jiao Tong University
  • University of California at Davis
  • Kyushu University

科研成果: 期刊稿件文章同行评审

摘要

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 then executing the resulting mutants on different JVM binaries for revealing inconsistent behaviors. However, this blind approach is not cost effective in practice because most of the mutants are invalid and redundant. This paper tackles this challenge by introducing classfuzz, a coverage-directed fuzzing approach that focuses on representative classfiles for differential testing of JVMs' startup processes. Our core insight is to (1) mutate seeding classfiles using a set of predefined mutation operators (mutators) 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 different JVM implementations 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 JVM discrepancies, along with the test classfiles, to JVM developers. Many of our reported issues have already been confirmed as JVM defects, and some even match recent clarifications and changes to the Java SE 8 edition of the JVM specification.

源语言英语
页(从-至)85-99
页数15
期刊ACM SIGPLAN Notices
51
6
DOI
出版状态已出版 - 6月 2016

指纹

探究 'Coverage-directed differential testing of JVM implementations' 的科研主题。它们共同构成独一无二的指纹。

引用此