【24h】

Coverage-Directed Differential Testing of JVM Implementations

机译:Coverage-Directed JVM的微分测试实现

获取原文
获取原文并翻译 | 示例
           

摘要

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.
机译:Java虚拟机(JVM)是一个核心技术,其可靠性是至关重要的。实现需要艰苦的努力设计测试类文件(*。他们的测试神谕。二进制起毛测试不同的jvm盲目地变异播种类文件在不同的JVM执行产生的突变体二进制文件的显示不一致的行为。然而,这种盲目的方法不是成本有效的做法,因为大部分的突变体无效和冗余。这一挑战通过引入classfuzz, acoverage-directed起毛的方法,集中微分的代表类文件测试jvm的启动过程。洞察力是(1)变异播种类文件使用一组预定义的变异操作符(调整器)和使用马尔可夫链蒙特卡罗(密度)抽样指导增变基因选择,和(2)执行参考JVM上的突变体实现和使用覆盖的独特性纪律接受的代表。接受类文件作为输入不同测试不同的JVM实现并找到缺陷。并进行了一次广泛评估对现有的模糊测试算法。评价结果表明,classfuzz即可加强discrepancy-triggering的比率11类文件从1:7%:9%。报告了62 JVM的差异,以及测试类文件,JVM开发者。报告已经确认的问题JVM缺陷,甚至一些最近的比赛澄清和修改Java SE 8JVM规范的版本。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号