English
Related papers

Related papers: Learning Likely Invariants to Explain Why a Progra…

200 papers

Bugs, especially those in concurrent systems, are often hard to reproduce because they manifest only under rare conditions. Testers frequently encounter failures that occur only under specific inputs, even when occurring with low…

Software Engineering · Computer Science 2025-09-11 Yeshayahu Weiss , Gal Amram , Achiya Elyasaf , Eitan Farchi , Oded Margalit , Gera Weiss

Answer set programming (ASP) and planning are two widely used paradigms for solving logic programs with declarative programming. In both cases, the quality of the input programs has a major influence on the quality and performance of the…

Logic in Computer Science · Computer Science 2019-05-09 Patrick Lühne

Deep Neural Networks (DNNs) are used in a wide variety of applications. However, as in any software application, DNN-based apps are afflicted with bugs. Previous work observed that DNN bug fix patterns are different from traditional bug fix…

Software Engineering · Computer Science 2021-12-09 Mohammad Wardat , Breno Dantas Cruz , Wei Le , Hridesh Rajan

Automatic program repair holds the potential of dramatically improving the productivity of programmers during the software development process and correctness of software in general. Recent advances in machine learning, deep learning, and…

Software Engineering · Computer Science 2021-09-24 Hossein Hajipour , Apratim Bhattacharyya , Cristian-Alexandru Staicu , Mario Fritz

In imperative programming, the Domain-Driven Design methodology helps in coping with the complexity of software development by materializing in code the invariants of a domain of interest. Code is cleaner and more secure because any…

Artificial Intelligence · Computer Science 2023-07-14 Mario Alviano , Giovambattista Ianni , Francesco Pacenza , Jessica Zangari

Mistakes in binary conditions are a source of error in many software systems. They happen when developers use, e.g., < or > instead of <= or >=. These boundary mistakes are hard to find and impose manual, labor-intensive work for software…

Software Engineering · Computer Science 2021-02-25 Hendrig Sellik , Onno van Paridon , Georgios Gousios , Maurício Aniche

We propose a novel framework that provides constructive feedback to an LLM in the "guess-and-check" paradigm by formally verifying its own thinking process and detecting local reasoning errors. We apply this framework to the loop invariant…

Programming Languages · Computer Science 2026-05-19 Tianchi Li , Zhenyu Yan , Junhao Liu , Peng Di , Xin Zhang

Debugging software, i.e., the localization of faults and their repair, is a key activity in software engineering. Therefore, effective and efficient debugging is one of the core skills a software engineer must develop. However, the teaching…

Our goal is to build systems which write code automatically from the kinds of specifications humans can most easily provide, such as examples and natural language instruction. The key idea of this work is that a flexible combination of…

Artificial Intelligence · Computer Science 2019-06-06 Maxwell Nye , Luke Hewitt , Joshua Tenenbaum , Armando Solar-Lezama

Datasets such as Defects4J and BugsInPy that contain bugs from real-world software projects are necessary for a realistic evaluation of automated debugging tools. However these datasets largely identify only a single bug in each entry,…

Software Engineering · Computer Science 2024-04-11 Dylan Callaghan , Bernd Fischer

Automatically locating buggy changesets associated with bug reports is crucial in the software development process. Deep Learning (DL)-based techniques show promising results by leveraging structural information from the code and learning…

Software Engineering · Computer Science 2024-12-17 Paulina Stevia Nouwou Mindom , Leuson Da Silva , Amin Nikanjam , Foutse Khomh

Automatically detecting software failures is an important task and a longstanding challenge. It requires finding failure-inducing test cases whose test input can trigger the software's fault, and constructing an automated oracle to detect…

Software Engineering · Computer Science 2023-09-12 Tsz-On Li , Wenxi Zong , Yibo Wang , Haoye Tian , Ying Wang , Shing-Chi Cheung , Jeff Kramer

Quantitative loop invariants are an essential element in the verification of probabilistic programs. Recently, multivariate Lagrange interpolation has been applied to synthesizing polynomial invariants. In this paper, we propose an…

Logic in Computer Science · Computer Science 2017-07-11 Yijun Feng , Lijun Zhang , David N. Jansen , Naijun Zhan , Bican Xia

Large language model (LLM)-based debugging systems can generate failure explanations, but these explanations may be incomplete or incorrect. Misleading explanations are harmful for downstream tasks (e.g., bug triage, bug fixing). We…

Software Engineering · Computer Science 2026-05-21 Julius Porbeck , Christian Medeiros Adriano , Holger Giese

Bug Localization is the process of locating potential error-prone files or methods from a given bug report and source code. There is extensive research on bug localization in the literature that focuses on applying information retrieval…

Software Engineering · Computer Science 2020-04-21 Sandeep Muvva , A Eashaan Rao , Sridhar Chimalakonda

Noisy data, non-convex objectives, model misspecification, and numerical instability can all cause undesired behaviors in machine learning systems. As a result, detecting actual implementation errors can be extremely difficult. We…

Software Engineering · Computer Science 2017-06-28 Daniel Selsam , Percy Liang , David L. Dill

Ensuring code correctness remains a challenging problem even as large language models (LLMs) become increasingly capable at code-related tasks. While LLM-based program repair systems can propose bug fixes using only a user's bug report,…

Software Engineering · Computer Science 2025-02-21 Adam Stein , Arthur Wayne , Aaditya Naik , Mayur Naik , Eric Wong

As developers debug, developers formulate hypotheses about the cause of the defect and gather evidence to test these hypotheses. To better understand the role of hypotheses in debugging, we conducted two studies. In a preliminary study, we…

Software Engineering · Computer Science 2020-05-29 Abdulaziz Alaboudi , Thomas D. LaToza

Managing large numbers of incoming bug reports and finding the most critical issues in hardware development is time consuming, but crucial in order to reduce development costs. In this paper, we present an approach to predict the time to…

Machine Learning · Computer Science 2021-09-29 Thi Thu Hang Do , Markus Dobler , Niklas Kühl

Dynamic languages are praised for their flexibility and expressiveness, but static analysis often yields many false positives and verification is cumbersome for lack of structure. Hence, unit testing is the prevalent incomplete method for…

Programming Languages · Computer Science 2015-02-06 Robert Jakob , Peter Thiemann