English
Related papers

Related papers: Finding Bugs with Specification-Based Testing is E…

200 papers

Programs expecting structured inputs often consist of both a syntactic analysis stage, which parses raw input, and a semantic analysis stage, which conducts checks on the parsed input and executes the core logic of the program.…

Software Engineering · Computer Science 2019-06-11 Rohan Padhye , Caroline Lemieux , Koushik Sen , Mike Papadakis , Yves Le Traon

Many important hyperproperties, such as refinement and generalized non-interference, fall into the class of $\forall\exists$ hyperproperties and require, for each execution trace of a system, the existence of another trace relating to the…

Programming Languages · Computer Science 2025-01-15 Arthur Correnson , Tobias Niessen , Bernd Finkbeiner , Georg Weissenbacher

Automatic detection of software bugs is a critical task in software security. Many static tools that can help detect bugs have been proposed. While these static bug detectors are mainly evaluated on general software projects call into…

Software Engineering · Computer Science 2023-07-11 Nima Shiri harzevili , Jiho Shin , Junjie Wang , Song Wang , Nachiappan Nagappan

Developers create bug-reproducing tests that support debugging by failing as long as the bug is present, and passing once the bug has been fixed. These tests are usually integrated into existing test suites and executed regularly alongside…

Software Engineering · Computer Science 2026-02-04 Andre Hora , Gordon Fraser

Differential testing can be an effective way to find bugs in software systems with multiple implementations that conform to the same specification, like compilers, network protocol parsers, or language runtimes. Specifications for such…

Software Engineering · Computer Science 2025-05-07 Nikitha Rao , Elizabeth Gilbert , Harrison Green , Tahina Ramananandro , Nikhil Swamy , Claire Le Goues , Sarah Fakhoury

In software development, fixing bugs is an important task that is time consuming and cost-sensitive. While many approaches have been proposed to automatically detect and patch software code, the strategies are limited to a set of identified…

Software Engineering · Computer Science 2015-07-22 Tegawendé F. Bissyandé

Finding bugs is key to the correctness of compilers in wide use today. If the behaviour of a compiled program, as allowed by its architecture memory model, is not a behaviour of the source program under its source model, then there is a…

Programming Languages · Computer Science 2024-01-31 Luke Geeson , Lee Smith

Understanding software faults is essential for empirical research in software development and maintenance. However, traditional fault analysis, while valuable, typically involves multiple expert-driven steps such as collecting potential…

Software Engineering · Computer Science 2025-10-07 Jiongchi Yu , Weipeng Jiang , Xiaoyu Zhang , Qiang Hu , Xiaofei Xie , Chao Shen

Flaky tests are problematic because they non-deterministically pass or fail for the same software version under test, causing confusion and wasting development effort. While machine learning models have been used to predict flakiness and…

Software Engineering · Computer Science 2024-10-08 Sakina Fatima , Hadi Hemmati , Lionel Briand

Much research on software testing makes an implicit assumption that test failures are deterministic such that they always witness the presence of the same defects. However, this assumption is not always true because some test failures are…

Software Engineering · Computer Science 2019-12-09 Maxime Cordy , Renaud Rwemalika , Mike Papadakis , Mark Harman

Dafny is a verification-aware programming language that comes with a compiler and static program verifier. However, neither the compiler nor the verifier is proved correct; in fact, soundness bugs have been found in both tools. This paper…

Programming Languages · Computer Science 2025-12-08 Daniel Nezamabadi , Magnus O. Myreen , Yong Kiam Tan

Static analysis is a growing application of software engineering, leading to a range of essential security tools, bug-finding tools, as well as software verification. Recent years show an increase of universal static analysis tools that…

Programming Languages · Computer Science 2024-04-22 Avi Hayoun , Veselin Raychev , Jack Hair

Web end-to-end (e2e) testing evaluates the workflow of a web application. It simulates real-world user scenarios to ensure the application flows behave as expected. However, web e2e tests are notorious for being flaky, i.e., the tests can…

Software Engineering · Computer Science 2024-05-21 Xinyue Liu , Zihe Song , Weike Fang , Wei Yang , Weihang Wang

The success of several constraint-based modeling languages such as OPL, ZINC, or COMET, appeals for better software engineering practices, particularly in the testing phase. This paper introduces a testing framework enabling automated test…

Software Engineering · Computer Science 2015-03-17 Nadjib Lazaar , Arnaud Gotlieb , Lebbah Yahia

Formal specification generation has recently drawn attention in software engineering as a way to improve program correctness without requiring manual annotations. Large Language Models (LLMs) have shown promise in this area, but early…

Software Engineering · Computer Science 2026-04-07 Ragib Shahariar Ayon , Shibbir Ahmed

Current Large Language Models (LLMs) have advanced automated unit test generation but face a critical limitation: they often neglect to construct the necessary test fixtures, which are the environmental setups required for a test to run. To…

Software Engineering · Computer Science 2026-03-26 Chengyi Wang , Pengyu Xue , Zhen Yang , Xiapu Luo , Yuxuan Zhang , Xiran Lyu , Yifei Pei , Zonghan Jia , Yichen Sun , Linhao Wu , Kunwu Zheng

Intensive testing using model-based approaches is the standard way of demonstrating the correctness of automotive software. Unfortunately, state-of-the-art techniques leave a crucial and labor intensive task to the test engineer:…

Software Engineering · Computer Science 2022-12-16 Mike Becker , Roland Meyer , Tobias Runge , Ina Schaefer , Sören van der Wall , Sebastian Wolff

Benefits of static type systems are well-known: they offer guarantees that no type error will occur during runtime and, inherently, inferred types serve as documentation on how functions are called. On the other hand, many type systems have…

Programming Languages · Computer Science 2020-08-31 Isabel Wingen , Philipp Körner

Performance is a key quality of modern software. Although recent years have seen a spike in research on automated improvement of software's execution time, energy, memory consumption, etc., there is a noticeable lack of standard benchmarks…

Software Engineering · Computer Science 2025-09-09 Aymeric Blot , Justyna Petke

Variability models (e.g., feature models) are a common way for the representation of variabilities and commonalities of software artifacts. Such models can be translated to a logical representation and thus allow different operations for…

Software Engineering · Computer Science 2021-02-12 Viet-Man Le , Alexander Felfernig , Mathias Uta , David Benavides , José Galindo , Thi Ngoc Trang Tran