Coverage-Directed differential testing of JVM implementations

Yuting Chen, Ting Su, Chengnian Sun, Zhendong Su, Jianjun Zhao

研究成果: Chapter in Book/Report/Conference proceedingConference contribution

45 被引用数 (Scopus)

抄録

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.

本文言語英語
ホスト出版物のタイトルPLDI 2016 - Proceedings of the 37th ACM SIGPLAN Conference on Programming Language Design and Implementation
編集者Chandra Krintz, Emery Berger
出版社Association for Computing Machinery
ページ85-99
ページ数15
ISBN(電子版)9781450342612
DOI
出版ステータス出版済み - 6 2 2016
イベント37th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2016 - Santa Barbara, 米国
継続期間: 6 13 20166 17 2016

出版物シリーズ

名前Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI)
13-17-June-2016

その他

その他37th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2016
国/地域米国
CitySanta Barbara
Period6/13/166/17/16

All Science Journal Classification (ASJC) codes

  • ソフトウェア

フィンガープリント

「Coverage-Directed differential testing of JVM implementations」の研究トピックを掘り下げます。これらがまとまってユニークなフィンガープリントを構成します。

引用スタイル