English
Related papers

Related papers: Automated Regression Unit Test Generation for Prog…

200 papers

Software is omnipresent within all factors of society. It is thus important to ensure that software are well tested to mitigate bad user experiences as well as the potential for severe financial and human losses. Software testing is however…

Software Engineering · Computer Science 2025-04-30 Jason Wang , Basem Suleiman , Muhammad Johan Alibasa

Even though many programmers rely on 3-way merge tools to integrate changes from different branches, such tools can introduce subtle bugs in the integration process. This paper aims to mitigate this problem by defining a semantic notion of…

Programming Languages · Computer Science 2018-02-20 Marcelo Sousa , Isil Dillig , Shuvendu Lahiri

When developing a software system, a change in one part of the system may lead to unwanted changes in other parts of the system. These affected parts may interfere with system performance, so regression testing is used to deal with these…

Software Engineering · Computer Science 2024-05-13 Mahdi Movahedian Moghaddam

Program merging is standard practice when developers integrate their individual changes to a common code base. When the merge algorithm fails, this is called a merge conflict. The conflict either manifests in textual merge conflicts where…

Software Engineering · Computer Science 2021-11-24 Jialu Zhang , Todd Mytkowicz , Mike Kaufman , Ruzica Piskac , Shuvendu K. Lahiri

Unit tests represent the most basic level of testing within the software testing lifecycle and are crucial to ensuring software correctness. Designing and creating unit tests is a costly and labor-intensive process that is ripe for…

Software Engineering · Computer Science 2025-07-31 Andrea Lops , Fedelucio Narducci , Azzurra Ragone , Michelantonio Trizio , Claudio Bartolini

This paper applies machine learning to the difficult and important task of version control merging. (1) We constructed a dataset, Merge-Bench, of 7938 real-world merge conflict hunks from 1439 GitHub repositories. The ground truth is the…

Machine Learning · Computer Science 2026-05-26 Benedikt Schesch , Michael D. Ernst

Software developed using modern agile practices delivers a stream of software versions that require continuous regression testing rather than testing once close to the delivery or maintenance phase, as assumed by classical…

Software Engineering · Computer Science 2025-11-05 Suddhasvatta Das , Kevin Gary

Code documentation can, if written precisely, help developers better understand the code they accompany. However, unlike code, code documentation cannot be automatically verified via execution, potentially leading to inconsistencies between…

Software Engineering · Computer Science 2025-02-06 Hyeonseok Lee , Gabin An , Shin Yoo

Resolving conflicts from merging different software versions is a challenging task. To reduce the overhead of manual merging, researchers develop various program analysis-based tools which only solve specific types of conflicts and have a…

Software Engineering · Computer Science 2024-09-24 Qingyu Zhang , Liangcai Su , Kai Ye , Chenxiong Qian

Retrieval Augmented Generation (RAG) has advanced software engineering tasks but remains underexplored in unit test generation. To bridge this gap, we investigate the efficacy of RAG-based unit test generation for machine learning (ML/DL)…

Software Engineering · Computer Science 2025-10-20 Jiho Shin , Nima Shiri Harzevili , Reem Aleithan , Hadi Hemmati , Song Wang

Recent research in causal inference under network interference has explored various experimental designs and estimation techniques to address this issue. However, existing methods, which typically rely on single experiments, often reach a…

Methodology · Statistics 2025-03-10 Qianyi Chen , Bo Li

ReTest is a novel testing tool for Java applications with a graphical user interface (GUI), combining monkey testing and difference testing. Since this combination sidesteps the oracle problem, it enables the generation of GUI-based…

Software Engineering · Computer Science 2018-02-13 Daniel Kraus

Automated test generation has helped to reduce the cost of software testing. However, developing effective test oracles for these automatically generated test inputs is a challenging task. Therefore, most automated test generation tools use…

Software Engineering · Computer Science 2020-04-21 Prashanta Saha , Upulee Kanewala

Version control system tools empower developers to independently work on their development tasks. These tools also facilitate the integration of changes through merging operations, and report textual conflicts. However, when developers…

Software Engineering · Computer Science 2023-10-16 Galileu Santos de Jesus , Paulo Borba , Rodrigo Bonifácio , Matheus Barbosa de Oliveira

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

Background: The field of software testing is growing and rapidly-evolving. Aims: Based on keywords assigned to publications, we seek to identify predominant research topics and understand how they are connected and have evolved. Method: We…

Digital Libraries · Computer Science 2022-09-20 Alireza Salahirad , Gregory Gay , Ehsan Mohammadi

In recent times, a plethora of Large Code Generation Models (LCGMs) have been proposed, showcasing significant potential in assisting developers with complex programming tasks. Benchmarking LCGMs necessitates the creation of a set of…

Software Engineering · Computer Science 2024-01-30 Simin Chen , Xiaoning Feng , Xiaohong Han , Cong Liu , Wei Yang

Automation of test oracles is one of the most challenging facets of software testing, but remains comparatively less addressed compared to automated test input generation. Test oracles rely on a ground-truth that can distinguish between the…

Software Engineering · Computer Science 2023-04-07 Ali Reza Ibrahimzada , Yigit Varli , Dilara Tekinoglu , Reyhaneh Jabbarvand

Typically, a conventional unit test (CUT) verifies the expected behavior of the unit under test through one specific input / output pair. In contrast, a parameterized unit test (PUT) receives a set of inputs as arguments, and contains…

Software Engineering · Computer Science 2025-03-13 Deepika Tiwari , Yogya Gamage , Martin Monperrus , Benoit Baudry

Dealing with merge conflicts in version control systems is a challenging task for software developers. Resolving merge conflicts is a time-consuming and error-prone process, which distracts developers from important tasks. Recent work shows…

Software Engineering · Computer Science 2022-08-11 Max Ellis , Sarah Nadi , Danny Dig