English
Related papers

Related papers: On the Distribution of "Simple Stupid Bugs" in Uni…

200 papers

The prevalence of software systems has become an integral part of modern-day living. Software usage has increased significantly, leading to its growth in both size and complexity. Consequently, software development is becoming a more…

Software Engineering · Computer Science 2023-06-07 Tiago Dias , Arthur Batista , Eva Maia , Isabel Praça

Static source code analysis is a powerful tool for finding and fixing bugs when deployed properly; it is, however, all too easy to deploy it in a way that looks good superficially, but which misses important defects, shows many false…

Software Engineering · Computer Science 2022-02-25 Flash Sheridan

Unit testing is an essential part of the software development process, which helps to identify issues with source code in early stages of development and prevent regressions. Machine learning has emerged as viable approach to help software…

Software Engineering · Computer Science 2022-03-25 Michele Tufano , Shao Kun Deng , Neel Sundaresan , Alexey Svyatkovskiy

Background: Test smells indicate potential problems in the design and implementation of automated software tests that may negatively impact test code maintainability, coverage, and reliability. When poorly described, manual tests written in…

Unit testing is essential for verifying the functional correctness of code modules (e.g., classes, methods), but manually writing unit tests is often labor-intensive and time-consuming. Unit tests generated by tools that employ traditional…

Software Engineering · Computer Science 2026-02-13 Alex Chudic , Gül Çalıklı

Software design smells are design attributes which violate the fundamental design principles. Design smells are a key cause of design debt. Although the activities of design smell identification and measurement are predominantly considered…

Software Engineering · Computer Science 2019-10-15 Asif Imran , Tevfik Kosar

Bugs in Scratch programs can spoil the fun and inhibit learning success. Many common bugs are the result of recurring patterns of bad code. In this paper we present a collection of common code patterns that typically hint at bugs in Scratch…

Software Engineering · Computer Science 2021-12-03 Christoph Frädrich , Florian Obermüller , Nina Körber , Ute Heuer , Gordon Fraser

Smart contracts are pieces of code that reside inside the blockchains and can be triggered to execute any transaction when specifically predefined conditions are satisfied. Being commonly used for commercial transactions in blockchain makes…

Cryptography and Security · Computer Science 2023-06-13 Yilin Wang , Xiangping Chen , Yuan Huang , Hao-Nan Zhu , Jing Bian , Zibin Zheng

Defects4J is a large, peer-reviewed, structured dataset of real-world Java bugs. Each bug in Defects4J comes with a test suite and at least one failing test case that triggers the bug. In this paper, we report on an experiment to explore…

Software Engineering · Computer Science 2021-11-12 Matias Martinez , Thomas Durieux , Romain Sommerard , Jifeng Xuan , Martin Monperrus

Test case maintainability is an important concern, especially in open source and distributed development environments where projects typically have high contributor turnover with varying backgrounds and experience, and where code ownership…

Software Engineering · Computer Science 2019-10-01 Danielle Gonzalez , Joanna C. S. Santos , Andrew Popovich , Mehdi Mirakhorli , Mei Nagappan

Hardware security is an important concern of system security as vulnerabilities can arise from design errors introduced throughout the development lifecycle. Recent works have proposed techniques to detect hardware security bugs, such as…

Cryptography and Security · Computer Science 2024-02-02 Joey Ah-kiow , Benjamin Tan

Test doubles, such as mocks and stubs, are nifty fixtures in unit tests. They allow developers to test individual components in isolation from others that lie within or outside of the system. However, implementing test doubles within tests…

Software Engineering · Computer Science 2023-06-22 Deepika Tiwari , Martin Monperrus , Benoit Baudry

Abstract: Failing test case reduction can promote efficient debugging because a developer may not need to observe components that are not relevant to inducing failure. Failing test case reduction can also improve the efficiency of fault…

Software Engineering · Computer Science 2025-01-10 Tuan D Le , Brandon Wilber , Arpit Christi

Unlike most other software quality attributes, testability cannot be evaluated solely based on the characteristics of the source code. The effectiveness of the test suite and the budget assigned to the test highly impact the testability of…

Software Engineering · Computer Science 2022-08-25 Morteza Zakeri-Nasrabadi , Saeed Parsa

The integration of Large Language Models (LLMs), such as ChatGPT and GitHub Copilot, into software engineering workflows has shown potential to enhance productivity, particularly in software testing. This paper investigates whether LLM…

Software Engineering · Computer Science 2025-02-17 Rudolf Ramler , Philipp Straubinger , Reinhold Plösch , Dietmar Winkler

Refactoring is a common practice in software development, aimed at improving the internal code structure in order to make it easier to understand and modify. Consequently, it is often assumed that refactoring makes the code less prone to…

Software Engineering · Computer Science 2025-05-14 Isabella Ferreira , Lawrence Arkoh , Anderson Uchôa , Ana Carla Bibiano , Alessandro Garcia , Wesley K. G. Assunção

Formal verification provides mathematical guarantees that a software is correct. Design-level verification tools ensure software specifications are correct, but they do not expose defects in actual implementations. For this purpose,…

Software Engineering · Computer Science 2025-05-01 Paschal C. Amusuo , Parth V. Patil , Owen Cochell , Taylor Le Lievre , James C. Davis

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

LLMs promise to transform unit test generation from a manual burden into an automated solution. Yet, beyond metrics such as compilability or coverage, little is known about the quality of LLM-generated tests, particularly their…

Software Engineering · Computer Science 2025-11-07 Wendkûuni C. Ouédraogo , Yinghua Li , Xueqi Dang , Xunzhu Tang , Anil Koyuncu , Jacques Klein , David Lo , Tegawendé F. Bissyandé

Test flakiness is a problem that affects testing and processes that rely on it. Several factors cause or influence the flakiness of test outcomes. Test execution order, randomness and concurrency are some of the more common and well-studied…

Software Engineering · Computer Science 2023-03-20 Shawn Rasheed , Jens Dietrich , Amjed Tahir