{"title":"Kex at the SBFT 2023 Java Tool Competition","authors":"A. Abdullin, M. Akhin","doi":"10.1109/SBFT59156.2023.00017","DOIUrl":"https://doi.org/10.1109/SBFT59156.2023.00017","url":null,"abstract":"Kex is a platform for analysis of JVM programs which mainly focuses on automatic test generation with the aim to maximize branch coverage criterion. Kex takes a set of compiled classes as an input and uses symbolic execution to analyze control flow graphs of the program under test (PUT). Symbolic engine produces a set of interesting inputs which are converted into a JUnit 4 test suite using Java reflection library. Kex can generate tests in fully static mode without running any actual code (Kex-symbolic) and in concolic mode (Kex-concolic) which combines symbolic and concrete executions. This paper summarizes the results and experiences of Kex-symbolic and Kex-concolic participation in the eleventh edition of the Java unit testing tool competition at the International Workshop on Search-Based and Fuzz Testing (SBFT) 2023.","PeriodicalId":309629,"journal":{"name":"2023 IEEE/ACM International Workshop on Search-Based and Fuzz Testing (SBFT)","volume":"35 6","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2023-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"120984963","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Addison Crump, Andrea Fioraldi, D. Maier, Dongjia Zhang
{"title":"LIBAFL LIBFUZZER: LIBFUZZER on Top of LIBAFL","authors":"Addison Crump, Andrea Fioraldi, D. Maier, Dongjia Zhang","doi":"10.1109/SBFT59156.2023.00021","DOIUrl":"https://doi.org/10.1109/SBFT59156.2023.00021","url":null,"abstract":"General-purpose fuzzing has come into the public eye, with many researchers developing new fuzzers to improve on the state of the art. LIBAFL, developed by the group which originally made AFL++, offers researchers the ability to develop fuzzers at a component level, allowing researchers to simply develop their own components rather than modifying an existing fuzzer. This allows for more straightforward comparisons of fuzzers, allowing researchers to experiment with the removal and addition of individual components, without compromising on the flexibility of fuzzer development. To demonstrate this flexibility and offer alternative frontends to the community, we developed two fuzzers: LIBAFL_LIBFUZZER and AFLRUSTRUST, the former of which is discussed here as a drop-in replacement for LIBFUZZER and the latter in a sister report as a drop-in replacement for AFL++. We find that LIBAFL_LIBFUZZER performed very well on the coverage benchmarks while struggling with the bug-based benchmarks conducted in the SBFT fuzzing competition, and discover and analyse which fuzzer features and bugs led to this underperformance.","PeriodicalId":309629,"journal":{"name":"2023 IEEE/ACM International Workshop on Search-Based and Fuzz Testing (SBFT)","volume":"25 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2023-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124644089","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"SBFT Tool Competition 2023 - Java Test Case Generation Track","authors":"Gunel Jahangirova, Valerio Terragni","doi":"10.1109/SBFT59156.2023.00025","DOIUrl":"https://doi.org/10.1109/SBFT59156.2023.00025","url":null,"abstract":"This paper details the eleventh edition of Java Unit Testing Competition, covering its setup, challenges, and findings. The competition featured five Java test case generation tools: EVOSUITE, KEX-CONCOLIC, KEX-SYMBOLIC, UTBOT-CONCOLIC, and UTBOT-FUZZER, all of which were evaluated on a benchmark of 100 classes taken from 5 open-source Java Projects. We assessed the generated test cases based on code and mutation coverage, as well as human understandability-a metric introduced in this edition of the competition.","PeriodicalId":309629,"journal":{"name":"2023 IEEE/ACM International Workshop on Search-Based and Fuzz Testing (SBFT)","volume":"324 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2023-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124580303","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Dmitry Ivanov, Alexey Menshutin, Maxim D. Pelevin, D. Stepanov, Denis Fokin, Yury Kamenev, Egor Kulikov, Artemiy Kononov, Sergey Pospelov, Ivan Volkov, Alena Lisevych, Timur Yuldashev, Nikita Stroganov, Andrey Tarbeev
{"title":"UTBot at the SBFT 2023 Java Tool Competition","authors":"Dmitry Ivanov, Alexey Menshutin, Maxim D. Pelevin, D. Stepanov, Denis Fokin, Yury Kamenev, Egor Kulikov, Artemiy Kononov, Sergey Pospelov, Ivan Volkov, Alena Lisevych, Timur Yuldashev, Nikita Stroganov, Andrey Tarbeev","doi":"10.1109/sbft59156.2023.00019","DOIUrl":"https://doi.org/10.1109/sbft59156.2023.00019","url":null,"abstract":"UTBot is the tool for automated unit test generation, which produces ready-to-use Java test cases with valid inputs. This year, it is implemented in two different variants: UTBot-fuzz that is a grey-box fuzzer and UTBot-concolic that has a dynamic symbolic execution engine in its core now paired with fuzzing. In this paper, we report the UTBot results at the SBFT 2023 Java tool competition.","PeriodicalId":309629,"journal":{"name":"2023 IEEE/ACM International Workshop on Search-Based and Fuzz Testing (SBFT)","volume":"63 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2023-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126630799","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"RoadSign at the SBFT 2023 Tool Competition Cyber-Physical Systems Track","authors":"J. Ayerdi, Aitor Arrieta, M. Illarramendi","doi":"10.1109/SBFT59156.2023.00006","DOIUrl":"https://doi.org/10.1109/SBFT59156.2023.00006","url":null,"abstract":"RoadSign is a search-based test generation tool which aims to generate failure-revealing roads for self-driving cars. RoadSign combines a seeding approach which ensures a diverse initial population of roads with a multi-objective optimization process which aims to maximize road features which may be likely to reveal driving failures. This tool has been evaluated in the SBFT 2023 CPS tool competition, where various road-generation tools have been evaluated in a simulated environment with two different driving agents.","PeriodicalId":309629,"journal":{"name":"2023 IEEE/ACM International Workshop on Search-Based and Fuzz Testing (SBFT)","volume":"21 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2023-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131960281","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Matteo Biagiola, Stefan Klikovits, J. Peltomäki, Vincenzo Riccio
{"title":"SBFT Tool Competition 2023 - Cyber-Physical Systems Track","authors":"Matteo Biagiola, Stefan Klikovits, J. Peltomäki, Vincenzo Riccio","doi":"10.1109/SBFT59156.2023.00010","DOIUrl":"https://doi.org/10.1109/SBFT59156.2023.00010","url":null,"abstract":"We report on the organization and results of the third edition of the Cyber-Physical Systems tool competition, held as part of the SBFT workshop. Six tools (i.e., CRAG, EvoMBT, RIGAA, RoadSign, Spirale, and WOGAN) competed with the aim of triggering failures of two autonomous driving agents.We evaluated the effectiveness of the tools in exposing failures as well as the diversity of the generated failures. This report describes our methodology, the competitors, the results, and the challenges we faced while running the competition experiments.","PeriodicalId":309629,"journal":{"name":"2023 IEEE/ACM International Workshop on Search-Based and Fuzz Testing (SBFT)","volume":"16 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2023-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121075523","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Grammar-Based Evolutionary Fuzzing for JSON-RPC APIs","authors":"Lisette Veldkamp, Mitchell Olsthoorn, Annibale Panichella","doi":"10.1109/SBFT59156.2023.00026","DOIUrl":"https://doi.org/10.1109/SBFT59156.2023.00026","url":null,"abstract":"Web Application Programming Interfaces (APIs) allow systems to be addressed programmatically and form the backbone of the internet. RESTful and RPC APIs are among the most common API architectures used. In the last decades, researchers have proposed various techniques for automated testing of RESTful APIs, however, to the best of the authors’ knowledge there exists no work on testing JSON-RPC (one of the two data formats supported by RPC) APIs. To address this limitation, we propose a grammar-based evolutionary fuzzing approach for testing JSON-RPC APIs that uses a novel black-box heuristic. Specifically, we use a diversity-based fitness function based on hierarchical clustering to quantity the differences in API method responses. Our hypothesis is that responses that are unlike previously seen ones are an indication that new uncovered code paths are reached. We evaluate our approach on the XRP ledger, a large-scale industrial blockchain system that uses JSON-RPC APIs. Our results show that the proposed approach performs significantly better than the baseline (grammar-based fuzzer) and covers an additional 240 branches.","PeriodicalId":309629,"journal":{"name":"2023 IEEE/ACM International Workshop on Search-Based and Fuzz Testing (SBFT)","volume":"208 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2023-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114979005","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"PASTIS: A Collaborative Approach to Combine Heterogeneous Software Testing Techniques","authors":"Robin David, Richard Abou Chaaya, C. Heitman","doi":"10.1109/SBFT59156.2023.00014","DOIUrl":"https://doi.org/10.1109/SBFT59156.2023.00014","url":null,"abstract":"The fuzzing research field experienced outstanding advances over the past decade, making it a very effective approach for software testing. Dynamic Symbolic Execution (DSE) also called whitebox fuzzing is another approach that also evolved significantly and has the advantage of being able to solve very complex path conditions. Given fuzzing advances, knowing whether DSE is still relevant to help improving fuzzing coverage is an open research question. This paper aims at answering this question by empirically studying software testing techniques in a collaborative environment, and especially combining fuzzing and DSE. We show that in some cases DSE helps uncover some code locations not reached by fuzzers or can speed up the discovery of such coverage. We propose a combination of fuzzing and DSE into an ensemble fuzzing framework called PASTIS that helps in circumventing engines inner-working discrepancies. In this line, we propose a few DSE optimizations to maximize its ability to provide relevant inputs to fuzzers. One of them is a coverage strategy called prefixed-edge, which is an optimization over edge coverage. Finally, we show the advantages and roadblocks one can meet in trying to combine heterogeneous fuzzers and give insights on how to do it more efficiently.","PeriodicalId":309629,"journal":{"name":"2023 IEEE/ACM International Workshop on Search-Based and Fuzz Testing (SBFT)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2023-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129779104","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Automatic Generation of Smell-free Unit Tests","authors":"João Afonso, José Campos","doi":"10.1109/SBFT59156.2023.00013","DOIUrl":"https://doi.org/10.1109/SBFT59156.2023.00013","url":null,"abstract":"Automated test generation tools, such as EvoSuite, typically aim to generate tests that maximize code coverage and do not adequately consider non-coverage aspects that may be relevant for developers, e.g., test’s code quality. Hence, automatically generated tests are often affected by test-specific bad programming practices, i.e., test smells, that may hinder the quality of the test’s source code and, ultimately, the quality of the code under test. Although EvoSuite uses secondary criteria and a post-processing procedure to optimize non-coverage aspects and improve the readability of the tests, it does not explicitly consider the usage of good programming practices. Thus, in this paper, we propose a novel approach to assist EvoSuite’s search algorithm in generating smell-free tests out of the box. To this aim, we first compile a set of 54 test smell metrics from several sources. Secondly, we systematically identify 30 smells that do not affect the tests generated by EvoSuite and eight smells that cannot be automatically computed. Thirdly, we incorporate the remaining 16 test smells as metrics into EvoSuite and empirically identify that only 14 smells affect the tests generated by the tool (e.g., Indirect Testing). Fourthly, we describe and integrate an approach to optimize test smell metrics into EvoSuite. Finally, we conduct an empirical study to (i) understand to what extend EvoSuite’s default mechanisms leads to the generation of fewer smelly tests. (ii) to assess whether our approach leads to the generation of fewer smelly tests. And (iii) how our approach affects the coverage and fault detection effectiveness of the generated tests. Our results report that our approach can generate 8.58% fewer smelly tests without significantly compromising their coverage or fault detection effectiveness.","PeriodicalId":309629,"journal":{"name":"2023 IEEE/ACM International Workshop on Search-Based and Fuzz Testing (SBFT)","volume":"36 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2023-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123141008","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"WOGAN at the SBFT 2023 Tool Competition - Cyber-Physical Systems Track","authors":"Jesper Winsten, Ivan Porres","doi":"10.1109/SBFT59156.2023.00009","DOIUrl":"https://doi.org/10.1109/SBFT59156.2023.00009","url":null,"abstract":"WOGAN 2023 is an online test generation tool based on Wasserstein generative adversarial networks. We show how it can be applied to the SBFT 2023 competition to generate failure-inducing roads to test the lane keeping assist system of an autonomous car. The WOGAN 2023 tool is based on a previous entry to the competition. Here, we present improvements to WOGAN in the form of a combined fitness function based on the body out of lane percentage and the distance from the center of the lane. We also use road rotations in the road generation stage for greater test diversity.","PeriodicalId":309629,"journal":{"name":"2023 IEEE/ACM International Workshop on Search-Based and Fuzz Testing (SBFT)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2023-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130500781","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}