An Empirical Study on Failed Error Propagation in Java Programs with Real Faults

11/21/2020
by   Gunel Jahangirova, et al.
0

During testing, developers can place oracles externally or internally with respect to a method. Given a faulty execution state, i.e., one that differs from the expected one, an oracle might be unable to expose the fault if it is placed at a program point with no access to the incorrect program state or where the program state is no longer corrupted. In such a case, the oracle is subject to failed error propagation. We conducted an empirical study to measure failed error propagation on Defects4J, the reference benchmark for Java programs with real faults, considering all 6 projects available (386 real bugs and 459 fixed methods). Our results indicate that the prevalence of failed error propagation is negligible when testing is performed at the unit level. However, when system-level inputs are provided, the prevalence of failed error propagation increases substantially. This indicates that it is enough for method postconditions to predicate only on the externally observable state/data and that intermediate steps should be checked when testing at system level.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
07/23/2018

Assessing Test Case Prioritization on Real Faults and Mutants

Test Case Prioritization (TCP) is an important component of regression t...
research
09/13/2022

Inline Tests

Unit tests are widely used to check source code quality, but they can be...
research
05/31/2023

An Empirical Study of Fault Localization in Python Programs

Despite its massive popularity as a programming language, especially in ...
research
01/08/2019

A Journey Among Java Neutral Program Variants

Neutral program variants are functionally similar to an original program...
research
06/05/2021

An Empirical Study on Tensor Shape Faults in Deep Learning Systems

Software developers frequently adopt deep learning (DL) libraries to inc...
research
05/14/2020

Identifying Bugs in Make and JVM-Oriented Builds

Incremental and parallel builds are crucial features of modern build sys...
research
06/20/2023

Outside the Sandbox: A Study of Input/Output Methods in Java

Programming languages often demarcate the internal sandbox, consisting o...

Please sign up or login with your details

Forgot password? Click here to reset