JQF: Coverage-Guided Property-Based Testing in Java']Java

被引:38
|
作者
Padhye, Rohan [1 ]
Lemieux, Caroline [1 ]
Sen, Koushik [1 ]
机构
[1] Univ Calif Berkeley, Berkeley, CA 94720 USA
关键词
Coverage-guided fuzzing; property-based testing; QuickCheck;
D O I
10.1145/3293882.3339002
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
We present JQF, a platform for performing coverage-guided fuzz testing in Java. JQF is designed both for practitioners,who wish to find bugs in Java programs, as well as for researchers,who wish to implement new fuzzing algorithms. Practitioners write QuickCheck-style test methods that take inputs as formal parameters. JQF instruments the test program's bytecode and continuously executes tests using inputs that are generated in a coverage-guided fuzzing loop. JQF's input-generation mechanism is extensible. Researchers can implement custom fuzzing algorithms by extending JQF's Guidance interface. A Guidance instance responds to code coverage events generated during the execution of a test case, such as function calls and conditional jumps, and provides the next input. We describe several guidances that currently ship with JQF, such as: semantic fuzzing with Zest, binary fuzzing with AFL, and complexity fuzzing with Perffuzz. JQF is a mature tool that is open-source and publicly available. At the time of writing, JQF has been successful in discovering 42 previously unknown bugs in widely used open-source software such as OpenJDK, Apache Commons, and the Google Closure Compiler.
引用
收藏
页码:398 / 401
页数:4
相关论文
共 50 条
  • [1] MUTAGEN: Reliable Coverage-Guided, Property-Based Testing using Exhaustive Mutations
    Mista, Agustin
    Russo, Alejandro
    [J]. 2023 IEEE CONFERENCE ON SOFTWARE TESTING, VERIFICATION AND VALIDATION, ICST, 2023, : 176 - 187
  • [2] ArbitCheck: A Highly Automated Property-based Testing Tool for Java']Java
    Yatoh, Kohsuke
    Sakamoto, Kazunori
    Ishikawa, Fuyuki
    Honiden, Shinichi
    [J]. 2014 SEVENTH IEEE INTERNATIONAL CONFERENCE ON SOFTWARE TESTING, VERIFICATION AND VALIDATION WORKSHOPS (ICSTW 2014), 2014, : 405 - 412
  • [3] Coverage testing of Java']Java programs and components
    Vincenzi, AMR
    Maldonado, JC
    Wong, WE
    Delamaro, ME
    [J]. SCIENCE OF COMPUTER PROGRAMMING, 2005, 56 (1-2) : 211 - 230
  • [4] Coverage-Guided Testing for Recurrent Neural Networks
    Huang, Wei
    Sun, Youcheng
    Zhao, Xingyu
    Sharp, James
    Ruan, Wenjie
    Meng, Jie
    Huang, Xiaowei
    [J]. IEEE TRANSACTIONS ON RELIABILITY, 2022, 71 (03) : 1191 - 1206
  • [5] Coverage Guided, Property Based Testing
    Lampropoulos, Leonidas
    Hicks, Michael
    Pierce, Benjamin C.
    [J]. PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2019, 3 (OOPSLA):
  • [6] RGSE: A Regular Property Guided Symbolic Executor for Java']Java
    Yu, Hengbiao
    Chen, Zhenbang
    Zhang, Yufeng
    Wang, Ji
    Dong, Wei
    [J]. ESEC/FSE 2017: PROCEEDINGS OF THE 2017 11TH JOINT MEETING ON FOUNDATIONS OF SOFTWARE ENGINEERING, 2017, : 954 - 958
  • [7] INSTRCR: Lightweight instrumentation optimization based on coverage-guided fuzz testing
    Zhang, Cao
    Dong, Wei Yu
    Ren, Yu Zhu
    [J]. 2019 IEEE 2ND INTERNATIONAL CONFERENCE ON COMPUTER AND COMMUNICATION ENGINEERING TECHNOLOGY (CCET), 2019, : 74 - 78
  • [8] Testing syntax and semantic coverage of Java']Java language compilers
    Boujarwah, AS
    Saleh, K
    Al-Dallal, J
    [J]. INFORMATION AND SOFTWARE TECHNOLOGY, 1999, 41 (01) : 15 - 28
  • [9] Code Coverage Visualization on Web-Based Testing Tool for Java']Java Programs
    Saputra, Mochamad Chandra
    Katayama, Tetsuro
    [J]. PROCEEDINGS OF INTERNATIONAL CONFERENCE ON ARTIFICIAL LIFE AND ROBOTICS (ICAROB2015), 2015, : 372 - 375
  • [10] Code Coverage Visualization on Web-Based Testing Tool for Java']Java Programs
    Saputra, Mochamad Chandra
    Katayama, Tetsuro
    [J]. JOURNAL OF ROBOTICS NETWORKING AND ARTIFICIAL LIFE, 2015, 2 (02): : 89 - 93