Fuzzing for CPS Mutation Testing
- URL: http://arxiv.org/abs/2308.07949v1
- Date: Tue, 15 Aug 2023 16:35:31 GMT
- Title: Fuzzing for CPS Mutation Testing
- Authors: Jaekwon Lee, Enrico Vigan\`o, Oscar Cornejo, Fabrizio Pastore, Lionel
Briand
- Abstract summary: We propose a mutation testing approach that leverages fuzz testing, which has proved effective with C and C++ software.
Our empirical evaluation shows that mutation testing based on fuzz testing kills a significantly higher proportion of live mutants than symbolic execution.
- Score: 3.512722797771289
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: Mutation testing can help reduce the risks of releasing faulty software. For
such reason, it is a desired practice for the development of embedded software
running in safety-critical cyber-physical systems (CPS). Unfortunately,
state-of-the-art test data generation techniques for mutation testing of C and
C++ software, two typical languages for CPS software, rely on symbolic
execution, whose limitations often prevent its application (e.g., it cannot
test black-box components).
We propose a mutation testing approach that leverages fuzz testing, which has
proved effective with C and C++ software. Fuzz testing automatically generates
diverse test inputs that exercise program branches in a varied number of ways
and, therefore, exercise statements in different program states, thus
maximizing the likelihood of killing mutants, our objective.
We performed an empirical assessment of our approach with software components
used in satellite systems currently in orbit. Our empirical evaluation shows
that mutation testing based on fuzz testing kills a significantly higher
proportion of live mutants than symbolic execution (i.e., up to an additional
47 percentage points). Further, when symbolic execution cannot be applied, fuzz
testing provides significant benefits (i.e., up to 41% mutants killed). Our
study is the first one comparing fuzz testing and symbolic execution for
mutation testing; our results provide guidance towards the development of fuzz
testing tools dedicated to mutation testing.
Related papers
- FuzzCoder: Byte-level Fuzzing Test via Large Language Model [46.18191648883695]
We propose to adopt fine-tuned large language models (FuzzCoder) to learn patterns in the input files from successful attacks.
FuzzCoder can predict mutation locations and strategies locations in input files to trigger abnormal behaviors of the program.
arXiv Detail & Related papers (2024-09-03T14:40:31Z) - MOTIF: A tool for Mutation Testing with Fuzzing [3.4742750855568763]
Mutation testing is a desired practice for embedded software running in safety-critical cyber-physical systems.
MOTIF overcomes limitations by leveraging grey-box fuzzing tools to generate unit test cases in C that detect injected faults in mutants.
arXiv Detail & Related papers (2024-06-04T15:12:01Z) - LLMorpheus: Mutation Testing using Large Language Models [7.312170216336085]
This paper presents a technique where a Large Language Model (LLM) is prompted to suggest mutations by asking it what placeholders that have been inserted in source code could be replaced with.
We find LLMorpheus to be capable of producing mutants that resemble existing bugs that cannot be produced by StrykerJS, a state-of-the-art mutation testing tool.
arXiv Detail & Related papers (2024-04-15T17:25:14Z) - Contextual Predictive Mutation Testing [17.832774161583036]
We introduce MutationBERT, an approach for predictive mutation testing that simultaneously encodes the source method mutation and test method.
Thanks to its higher precision, MutationBERT saves 33% of the time spent by a prior approach on checking/verifying live mutants.
We validate our input representation, and aggregation approaches for lifting predictions from the test matrix level to the test suite level, finding similar improvements in performance.
arXiv Detail & Related papers (2023-09-05T17:00:15Z) - Systematic Assessment of Fuzzers using Mutation Analysis [20.91546707828316]
In software testing, the gold standard for evaluating test quality is mutation analysis.
mutation analysis subsumes various coverage measures and provides a large and diverse set of faults.
We apply modern mutation analysis techniques that pool multiple mutations and allow us -- for the first time -- to evaluate and compare fuzzers with mutation analysis.
arXiv Detail & Related papers (2022-12-06T15:47:47Z) - NAPG: Non-Autoregressive Program Generation for Hybrid Tabular-Textual
Question Answering [52.10214317661547]
Current numerical reasoning methods autoregressively decode program sequences.
The accuracy of program generation drops sharply as the decoding steps unfold due to error propagation.
In this paper, we propose a non-autoregressive program generation framework.
arXiv Detail & Related papers (2022-11-07T11:25:21Z) - CodeT: Code Generation with Generated Tests [49.622590050797236]
We explore the use of pre-trained language models to automatically generate test cases.
CodeT executes the code solutions using the generated test cases, and then chooses the best solution.
We evaluate CodeT on five different pre-trained models with both HumanEval and MBPP benchmarks.
arXiv Detail & Related papers (2022-07-21T10:18:37Z) - Fault-Aware Neural Code Rankers [64.41888054066861]
We propose fault-aware neural code rankers that can predict the correctness of a sampled program without executing it.
Our fault-aware rankers can significantly increase the pass@1 accuracy of various code generation models.
arXiv Detail & Related papers (2022-06-04T22:01:05Z) - Detecting Rewards Deterioration in Episodic Reinforcement Learning [63.49923393311052]
In many RL applications, once training ends, it is vital to detect any deterioration in the agent performance as soon as possible.
We consider an episodic framework, where the rewards within each episode are not independent, nor identically-distributed, nor Markov.
We define the mean-shift in a way corresponding to deterioration of a temporal signal (such as the rewards), and derive a test for this problem with optimal statistical power.
arXiv Detail & Related papers (2020-10-22T12:45:55Z) - Noisy Adaptive Group Testing using Bayesian Sequential Experimental
Design [63.48989885374238]
When the infection prevalence of a disease is low, Dorfman showed 80 years ago that testing groups of people can prove more efficient than testing people individually.
Our goal in this paper is to propose new group testing algorithms that can operate in a noisy setting.
arXiv Detail & Related papers (2020-04-26T23:41:33Z)
This list is automatically generated from the titles and abstracts of the papers in this site.
This site does not guarantee the quality of this site (including all information) and is not responsible for any consequences.