Skip to main content

Showing 1–11 of 11 results for author: Gopinath, R

Searching in archive cs. Search in all archives.
.
  1. arXiv:2504.02170  [pdf, other

    cs.FL cs.LG cs.PL cs.SE

    Example-Free Learning of Regular Languages with Prefix Queries

    Authors: Eve Fernando, Sasha Rubin, Rahul Gopinath

    Abstract: Language learning refers to the problem of inferring a mathematical model which accurately represents a formal language. Many language learning algorithms learn by asking certain types of queries about the language being modeled. Language learning is of practical interest in the field of cybersecurity, where it is used to model the language accepted by a program's input parser (also known as its i… ▽ More

    Submitted 2 April, 2025; originally announced April 2025.

    MSC Class: 68Q45; 68T05 ACM Class: F.4.3; I.2.6

  2. arXiv:2403.01146  [pdf, ps, other

    cs.SE

    Mutation Analysis with Execution Taints

    Authors: Rahul Gopinath, Philipp Goerz

    Abstract: Mutation analysis is one of the most effective, but costly means of assessing the ability of software test suites to prevent bugs. Traditional mutation analysis involves producing and evaluating syntactic variants of the original to check whether the test suite under evaluation is capable of distinguishing between the variant and the original in terms of behavior. Evaluating each mutant separate… ▽ More

    Submitted 2 March, 2024; originally announced March 2024.

    ACM Class: D.2.5

  3. arXiv:2212.03075  [pdf, other

    cs.SE cs.CR

    Systematic Assessment of Fuzzers using Mutation Analysis

    Authors: Philipp Görz, Björn Mathis, Keno Hassler, Emre Güler, Thorsten Holz, Andreas Zeller, Rahul Gopinath

    Abstract: Fuzzing is an important method to discover vulnerabilities in programs. Despite considerable progress in this area in the past years, measuring and comparing the effectiveness of fuzzers is still an open research question. In software testing, the gold standard for evaluating test quality is mutation analysis, which evaluates a test's ability to detect synthetic bugs: If a set of tests fails to de… ▽ More

    Submitted 25 July, 2023; v1 submitted 6 December, 2022; originally announced December 2022.

    Comments: 13 pages, 4 figures

    ACM Class: D.2.5; D.4.6

  4. arXiv:2208.08235  [pdf, other

    cs.SE cs.PL

    Input Repair via Synthesis and Lightweight Error Feedback

    Authors: Lukas Kirschner, Ezekiel Soremekun, Rahul Gopinath, Andreas Zeller

    Abstract: Often times, input data may ostensibly conform to a given input format, but cannot be parsed by a conforming program, for instance, due to human error or data corruption. In such cases, a data engineer is tasked with input repair, i.e., she has to manually repair the corrupt data such that it follows a given format, and hence can be processed by the conforming program. Such manual repair can be ti… ▽ More

    Submitted 17 August, 2022; originally announced August 2022.

    ACM Class: D.2

  5. arXiv:2201.11303  [pdf, ps, other

    cs.SE cs.CR

    Mutation Analysis: Answering the Fuzzing Challenge

    Authors: Rahul Gopinath, Philipp Görz, Alex Groce

    Abstract: Fuzzing is one of the fastest growing fields in software testing. The idea behind fuzzing is to check the behavior of software against a large number of randomly generated inputs, trying to cover all interesting parts of the input space, while observing the tested software for anomalous behaviour. One of the biggest challenges facing fuzzer users is how to validate software behavior, and how to im… ▽ More

    Submitted 12 February, 2022; v1 submitted 26 January, 2022; originally announced January 2022.

    MSC Class: 68-04 ACM Class: D.2.5

  6. arXiv:2109.11277  [pdf, other

    cs.SE cs.CR

    FormatFuzzer: Effective Fuzzing of Binary File Formats

    Authors: Rafael Dutra, Rahul Gopinath, Andreas Zeller

    Abstract: Effective fuzzing of programs that process structured binary inputs, such as multimedia files, is a challenging task, since those programs expect a very specific input format. Existing fuzzers, however, are mostly format-agnostic, which makes them versatile, but also ineffective when a specific format is required. We present FormatFuzzer, a generator for format-specific fuzzers. FormatFuzzer takes… ▽ More

    Submitted 27 September, 2023; v1 submitted 23 September, 2021; originally announced September 2021.

    Comments: ACM Transactions on Software Engineering and Methodology

  7. Using Relative Lines of Code to Guide Automated Test Generation for Python

    Authors: Josie Holmes, Iftekhar Ahmed, Caius Brindescu, Rahul Gopinath, He Zhang, Alex Groce

    Abstract: Raw lines of code (LOC) is a metric that does not, at first glance, seem extremely useful for automated test generation. It is both highly language-dependent and not extremely meaningful, semantically, within a language: one coder can produce the same effect with many fewer lines than another. However, relative LOC, between components of the same project, turns out to be a highly useful metric for… ▽ More

    Submitted 11 March, 2021; originally announced March 2021.

    Journal ref: ACM Transactions on Software Engineering and Methodology (TOSEM), 29(4), 1-38 (2020)

  8. arXiv:2012.13516  [pdf, other

    cs.SE

    Fuzzing with Fast Failure Feedback

    Authors: Rahul Gopinath, Bachir Bendrissou, Björn Mathis, Andreas Zeller

    Abstract: Fuzzing -- testing programs with random inputs -- has become the prime technique to detect bugs and vulnerabilities in programs. To generate inputs that cover new functionality, fuzzers require execution feedback from the program -- for instance, the coverage obtained by previous inputs, or the conditions that need to be resolved to cover new branches. If such execution feedback is not available,… ▽ More

    Submitted 25 December, 2020; originally announced December 2020.

    Comments: 12 pages, 6 figures

    ACM Class: D.4.6; D.2.5

  9. arXiv:1912.05937  [pdf, other

    cs.SE cs.PL

    Inferring Input Grammars from Dynamic Control Flow

    Authors: Rahul Gopinath, Björn Mathis, Andreas Zeller

    Abstract: A program is characterized by its input model, and a formal input model can be of use in diverse areas including vulnerability analysis, reverse engineering, fuzzing and software testing, clone detection and refactoring. Unfortunately, input models for typical programs are often unavailable or out of date. While there exist algorithms that can mine the syntactical structure of program inputs, they… ▽ More

    Submitted 12 December, 2019; originally announced December 2019.

    MSC Class: D.2.0; D.2.4; D.2.5; D.3.0 ACM Class: D.2.0; D.2.4; D.2.5; D.3.0

  10. arXiv:1911.07707  [pdf, other

    cs.SE cs.CR cs.PL

    Building Fast Fuzzers

    Authors: Rahul Gopinath, Andreas Zeller

    Abstract: Fuzzing is one of the key techniques for evaluating the robustness of programs against attacks. Fuzzing has to be effective in producing inputs that cover functionality and find vulnerabilities. But it also has to be efficient in producing such inputs quickly. Random fuzzers are very efficient, as they can quickly generate random inputs; but they are not very effective, as the large majority of in… ▽ More

    Submitted 18 November, 2019; originally announced November 2019.

    Comments: 12 pages, 12 figures

    ACM Class: D.4.6; D.2.5

  11. arXiv:1810.08289  [pdf, other

    cs.SE cs.PL

    Sample-Free Learning of Input Grammars for Comprehensive Software Fuzzing

    Authors: Rahul Gopinath, Björn Mathis, Mathias Höschele, Alexander Kampmann, Andreas Zeller

    Abstract: Generating valid test inputs for a program is much easier if one knows the input language. We present first successes for a technique that, given a program P without any input samples or models, learns an input grammar that represents the syntactically valid inputs for P -- a grammar which can then be used for highly effective test generation for P . To this end, we introduce a test generator targ… ▽ More

    Submitted 18 October, 2018; originally announced October 2018.