English
Related papers

Related papers: Evaluating Developer-written Unit Test Case Reduct…

200 papers

As the adoption of proof assistants increases, there is a need for efficiency in identifying, documenting, and fixing compatibility issues that arise from proof assistant evolution. We present the Coq Bug Minimizer, a tool for reproducing…

Software Engineering · Computer Science 2025-03-12 Jason Gross , Théo Zimmermann , Rajashree Agrawal , Adam Chlipala

Applying deductive verification to formally prove that a program respects its formal specification is a very complex and time-consuming task due in particular to the lack of feedback in case of proof failures. Along with a non-compliance…

Software Engineering · Computer Science 2015-08-10 Guillaume Petiot , Nikolai Kosmatov , Bernard Botella , Alain Giorgetti , Jacques Julliand

The AAA pattern, i.e. arrange, act, and assert, provides a unified structure for unit test cases, which benefits comprehension and maintenance. However, there is little understanding regarding whether and how common real-life developers…

Software Engineering · Computer Science 2025-02-04 Chenhao Wei , Lu Xiao , Tingting Yu , Sunny Wong , Abigail Clune

We propose a method that employs static and dynamic analysis for augmenting a test suite with automatically generated unit tests. The method is most suitable for test suites where the stratification of unit, integration and system tests…

Software Engineering · Computer Science 2026-05-08 Katerina Paltoglou , Vassilis E. Zafeiris

Unit testing is one of the most established quality-assurance techniques for software development. One major advantage of unit testing is the adjustable trade-off between efficiency (i.e., testing effort) and effectiveness (i.e.,…

Software Engineering · Computer Science 2022-07-27 Sebastian Ruland , Malte Lochau

Finding and fixing bugs are time-consuming activities in software development. Spectrum-based fault localization aims to identify the faulty position in source code based on the execution trace of test cases. Failing test cases and their…

Software Engineering · Computer Science 2018-07-06 Jifeng Xuan , Martin Monperrus

Defects4J has enabled numerous software testing and debugging research work since its introduction. A large part of its contribution, and the resulting popularity, lies in the clear separation and distillation of the root cause of each…

Software Engineering · Computer Science 2021-08-11 Gabin An , Juyeon Yoon , Shin Yoo

When done manually, refactoring legacy code in order to eliminate uses of deprecated APIs is an error-prone and time-consuming process. In this paper, we investigate to which degree refactorings for deprecated Java APIs can be automated,…

Software Engineering · Computer Science 2025-04-22 Cristina David , Pascal Kesseli , Daniel Kroening , Hanliang Zhang

Authentication is a critical security feature for confirming the identity of a system's users, typically implemented with help from frameworks like Spring Security. It is a complex feature which should be robustly tested at all stages of…

Software Engineering · Computer Science 2020-06-26 Danielle Gonzalez , Michael Rath , Mehdi Mirakhorli

Unit tests are widely used to check source code quality, but they can be too coarse-grained or ill-suited for testing individual program statements. We introduce inline tests to make it easier to check for faults in statements. We motivate…

Software Engineering · Computer Science 2022-09-15 Yu Liu , Pengyu Nie , Owolabi Legunsen , Milos Gligoric

Refactoring is a critical task in software maintenance, and is usually performed to enforce better design and coding practices, while coping with design defects. The Extract Method refactoring is widely used for merging duplicate code…

Bug localization is well-known to be a difficult problem in software engineering, and specifically in compiler development, where it is beneficial to reduce the input program to a minimal reproducing example; this technique is more commonly…

Programming Languages · Computer Science 2019-09-17 Daniil Stepanov , Marat Akhin , Mikhail Belyaev

In the past couple of decades, significant research efforts have been devoted to the prediction of software bugs (i.e., defects). In general, these works leverage a diverse set of metrics, tools, and techniques to predict which classes,…

Software Engineering · Computer Science 2024-08-06 Ehsan Mashhadi , Shaiful Chowdhury , Somayeh Modaberi , Hadi Hemmati , Gias Uddin

Testing is the primary approach for detecting software defects. A major challenge faced by testers lies in crafting efficient test suites, able to detect a maximum number of bugs with manageable effort. To do so, they rely on coverage…

Software Engineering · Computer Science 2018-02-07 Michaël Marcozzi , Sébastien Bardin , Nikolai Kosmatov , Mike Papadakis , Virgile Prevosto , Loïc Correnson

Regression testing ensures a System Under Test (SUT) still works as expected after changes to it. The simplest approach for regression testing consists of re-running the entire test suite against the changed version of the SUT. However,…

Frequent modifications of unit test cases are inevitable due to software's continuous underlying changes in source code, design, and requirements. Since manually maintaining software test suites is tedious, timely, and costly, automating…

Machine Learning · Computer Science 2023-10-06 Mosab Rezaei , Hamed Alhoori , Mona Rahimi

Mutation testing is a means to assess the effectiveness of a test suite and its outcome is considered more meaningful than code coverage metrics. However, despite several optimizations, mutation testing requires a significant computational…

Software Engineering · Computer Science 2019-03-14 Rainer Niedermayr , Stefan Wagner

Commits often involve refactorings -- behavior-preserving code modifications aiming at software design improvements. Refactoring operations pose a challenge to code reviewers, as distinguishing them from behavior-altering changes is often…

Software Engineering · Computer Science 2025-02-26 Benjamin Ritz , Aleksandar Karakaš , Denis Helic

We present a novel approach to detect refactoring opportunities by measuring the participation of references between types in instances of patterns representing design flaws. This technique is validated using an experiment where we analyse…

Software Engineering · Computer Science 2011-03-17 Jens Dietrich , Catherine McCartin , Ewan Tempero , Syed M. Ali Shah

Program reduction is a technique for simplifying large, failure-inducing programs into minimal reproducible test cases. Language-specific tools such as CReduce achieve strong performance by leveraging deep semantic knowledge of C/C++, but…

Software Engineering · Computer Science 2026-05-20 Qiong Feng , Xiaotian Ma , Yongqiang Tian , Wei Song , Peng Liang