A Guided Genetic Algorithm for Automated Crash Reproduction

@article{Soltani2017AGG,
  title={A Guided Genetic Algorithm for Automated Crash Reproduction},
  author={Mozhan Soltani and Annibale Panichella and Arie van Deursen},
  journal={2017 IEEE/ACM 39th International Conference on Software Engineering (ICSE)},
  year={2017},
  pages={209-220},
  url={https://api.semanticscholar.org/CorpusID:199514177}
}
EvoCrash is presented, a post-failure approach which uses a novel Guided Genetic Algorithm (GGA) to cope with the large search space characterizing real-world software programs and outperforming the state-of-the-art in crash replication.

Tables from this paper

A Partial Reproduction of A Guided Genetic Algorithm for Automated Crash Reproduction

The findings of the reproduction of the initial study exploring the effectiveness of EvoCrash and comparison to three existing solutions: STAR, JCHARMING, and MuCrash are presented.

Searchโ€based crash reproduction using behavioural model seeding

This study introduces behavioural model seeding: a new seeding method that learns class usages from both the system under test and existing test cases and serves to guide the evolutionary process.

Single-objective Versus Multi-objectivized Optimization for Evolutionary Crash Reproduction

This study proposes and investigates two alternatives to the weighted sum scalarization and investigates the multi-objectivization, which decomposes the fitness function into several optimization objectives as an attempt to increase test case diversity.

Improving Automated Crash Reproduction

    P. Oliver
    Computer Science
  • 2022
Proposed research includes creating a benchmark dataset, performing an empirical evaluation of fitness functions for crash reproduction, and combining both evolutionary and static approaches to reduce search spaces and increase the effectiveness of automated crash reproduction tools.

Beacon: Automated Test Generation for Stack-Trace Reproduction using Genetic Algorithms

A Genetic Algorithm approach to produce crash reproductions on Python based only on the information contained in the error's stack-trace is presented, achieving a high precision while reproducing the desired crashes.

A benchmark-based evaluation of search-based crash reproduction

JCrashPack is proposed, an extensible benchmark for Java crash reproduction, together with ExRunner, a tool to simply and systematically run evaluations, on which an extensive evaluation of EvoCrash, the state-of-the-art tool for search-based crash reproduction is run.

FunFuzz: A Function-Oriented Fuzzer for Smart Contract Vulnerability Detection with High Effectiveness and Efficiency

FunFuzz is presented, a function-oriented fuzzer, which is dedicatedly tailored for detecting smart contract vulnerability with high effectiveness and efficiency and outperforms state-of-the-art fuzzers in terms of effectiveness and efficiency.

CrashJS: A NodeJS Benchmark for Automated Crash Reproduction

To aid the development of JavaScript ACR tools, this work proposes CrashJS: a benchmark dataset of 453 Node.js crashes from several sources that includes a mix of real-world and synthesised tests, multiple projects, and different levels of complexity for both crashes and target programs.

Evolutionary Testing for Crash Reproduction

This paper proposes a new solution for automatic crash reproduction based on evolutionary unit test generation techniques that can successfully reproduce crashes which are not reproducible by two other state-of-art techniques.

Crash reproduction via test case mutation: let existing test cases help

This paper proposes an approach to automatic crash reproduction via test case mutation, which updates existing test cases to trigger crashes rather than creating new test cases from scratch, and increases the chance of executing the specific path.

1600 faults in 100 projects: automatically finding faults while achieving high coverage with EvoSuite

An empirical study applying EvoSuite on 100 randomly selected open source software projects reveals that SBST has the unique advantage of being well suited to perform both traditional goals at the same timeโ€”efficiently triggering faults, while producing representative test sets for any chosen coverage criterion.

JCHARMING: A bug reproduction approach using crash traces and directed model checking

A novel crash reproduction approach, called JCHARMING (Java CrasH Automatic Reproduction by directed Model checkING), which takes advantage of the completeness provided by model checking while ignoring unneeded system states by means of information found in crash traces combined with static slices.

STAR: Stack Trace Based Automatic Crash Reproduction via Symbolic Execution

This paper proposes an automatic crash reproduction framework using collected crash stack traces that combines an efficient backward symbolic execution and a novel method sequence composition approach to generate unit test cases that can reproduce the original crashes without incurring additional runtime overhead.

Whole Test Suite Generation

This work proposes a novel paradigm in which whole test suites are evolved with the aim of covering all coverage goals at the same time while keeping the total size as small as possible, and implemented this novel approach in the EvoSuite tool.

Instance Generator and Problem Representation to Improve Object Oriented Code Coverage

This work presents a new automated search-based software test-data generation approach that achieves high code coverage for unit-class testing and implements it in a tool, JTExpert, that gives better results in terms of search time and code coverage than the state of the art, EvoSuite.

Reconstructing Core Dumps

Applied on seven non-trivial Java bugs, RECORE reconstructs the exact failure in five cases without any runtime overhead in production code.

Pex-White Box Test Generation for .NET

Pex automatically produces a small test suite with high code coverage for a .NET program. To this end, Pex performs a systematic program analysis (using dynamic symbolic execution, similar toโ€ฆ

A bug reproduction approach based on directed model checking and crash traces

This paper proposes a novel crash reproduction approach that combines directed model checking and backward slicing to identify the program statements needed to reproduce a crash and shows that JCHARMING is efficient in reproducing bugs from 10 different open source systems.