Vectorizing Program Ingredients for Better JVM Testing

被引:10
作者
Gao, Tianchang [1 ]
Chen, Junjie [1 ]
Zhao, Yingquan [1 ]
Zhang, Yuqun [2 ]
Zhang, Lingming [3 ]
机构
[1] Tianjin Univ, Coll Intelligence & Comp, Tianjin, Peoples R China
[2] Southern Univ Sci & Technol, Shenzhen, Peoples R China
[3] Univ Illinois, Champaign, IL USA
来源
PROCEEDINGS OF THE 32ND ACM SIGSOFT INTERNATIONAL SYMPOSIUM ON SOFTWARE TESTING AND ANALYSIS, ISSTA 2023 | 2023年
基金
中国国家自然科学基金;
关键词
!text type='Java']Java[!/text] Virtual Machine; Program Synthesis; JVM Testing; Test Oracle;
D O I
10.1145/3597926.3598075
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
JVM testing is one of the most widely-used methodologies for guaranteeing the quality of JVMs. Among various JVM testing techniques, synthesis-based JVM testing, which constructs a test program by synthesizing various code snippets (also called program ingredients), has been demonstrated state-of-the-art. The existing synthesis-based JVM testing work puts more efforts in ensuring the validity of synthesized test programs, but ignores the influence of huge ingredient space, which largely limits the ingredient exploration efficiency as well as JVM testing performance. In this work, we propose Vectorized JVM Testing (called VECT) to further promote the performance of synthesis-based JVM testing. Its key insight is to reduce the huge ingredient space by clustering semantically similar ingredients via vectorizing ingredients using state-of-the-art code representation. To make VECT complete and more effective, based on vectorized ingredients, VECT further designs a feedback-driven ingredient selection strategy and an enhanced test oracle. We conducted an extensive study to evaluate VECT on three popular JVMs (i.e., HotSpot, OpenJ9, and Bisheng JDK) involving five OpenJDK versions. The results demonstrate VECT detects 115.03%similar to 776.92% more unique inconsistencies than the state-of-the-art JVM testing technique during the same testing time. In particular, VECT detects 26 previously unknown bugs for them, 15 of which have already been confirmed/fixed by developers.
引用
收藏
页码:526 / 537
页数:12
相关论文
共 57 条
[21]  
Ester M., 1996, Proceedings of the Second International Conference on Knowledge Discovery and Data Mining, P226, DOI DOI 10.5555/3001460.3001507
[22]  
Feng ZY, 2020, Arxiv, DOI [arXiv:2002.08155, 10.48550/arXiv.2002.08155]
[23]   TECCD: A Tree Embedding Approach for Code Clone Detection [J].
Gao, Yi ;
Wang, Zan ;
Liu, Shuang ;
Yang, Lin ;
Sang, Wei ;
Cai, Yuanfang .
2019 IEEE INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE AND EVOLUTION (ICSME 2019), 2019, :145-156
[24]  
Gervasi V, 2009, LECT NOTES COMPUT SC, V5115, P170, DOI 10.1007/978-3-642-11447-2_11
[25]  
GIJ, 2022, About us
[26]  
Grimmer Matthias, 2014, P 2014 INT C PRINC P
[27]  
Guo DY, 2021, Arxiv, DOI arXiv:2009.08366
[28]  
Hartigan J. A., 1979, Applied Statistics, V28, P100, DOI 10.2307/2346830
[29]   JUSTGen: Effective Test Generation for Unspecified JNI Behaviors on JVMs [J].
Hwang, Sungjae ;
Lee, Sungho ;
Kim, Jihoon ;
Ryu, Sukyoung .
2021 IEEE/ACM 43RD INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE 2021), 2021, :1708-1718
[30]  
Inc. Azul Systems, 2018, AzulSystems/JavaFuzzer: Java* Fuzzer for Android