English
Related papers

Related papers: Refactoring Assertion Roulette and Duplicate Asser…

200 papers

Requirements form the basis for defining software systems' obligations and tasks. Testable requirements help prevent failures, reduce maintenance costs, and make it easier to perform acceptance tests. However, despite the importance of…

Software Engineering · Computer Science 2024-03-27 Morteza Zakeri-Nasrabadi , Saeed Parsa

Eradication of code smells is often pointed out as a way to improve readability, extensibility and design in existing software. However, code smell detection in large systems remains time consuming and error-prone, partly due to the…

Software Engineering · Computer Science 2012-05-01 Tiago Pessoa , Fernando Brito e Abreu , Miguel Pessoa Monteiro , Sergio Bryton

To create unit tests, it may be necessary to refactor the production code, e.g. by widening access to specific methods or by decomposing classes into smaller units that are easier to test independently. We report on an extensive study to…

Software Engineering · Computer Science 2023-03-28 Pavel Reich , Walid Maalej

Widely used complex code refactoring tools lack a solid reasoning about the correctness of the transformations they implement, whilst interest in proven correct refactoring is ever increasing as only formal verification can provide true…

Software Engineering · Computer Science 2017-08-25 Dániel Horpácsi , Judit Kőszegi , Zoltán Horváth

Code smells signal violations of design principles that degrade the internal quality of evolving software systems. Although many tools detect such anomalies using static metrics, they often ignore the development context in which smells…

Software Engineering · Computer Science 2026-05-21 Matheus dos Santos Viegas , Adrian Gabriel Keller dos Santos , Kleinner Farias , Robson Keemps da Silva

Research software is often developed by individual researchers or small teams in parallel to their research work. The more people and research projects rely on the software in question, the more important it is that software updates…

Software Engineering · Computer Science 2022-04-13 Robert Mischke , Kathrin Schaffert , Dominik Schneider , Alexander Weinert

Manual development of automatic tests for embedded C software is a strenuous and time-consuming task that does not scale well. With the accelerating pace of software release cycles, verification increasingly becomes the bottleneck in the…

Software Engineering · Computer Science 2026-03-11 Maximilian Harnot , Sebastian Komarnicki , Michal Polok , Timo Oksanen

For large software applications, running the whole test suite after each code change is time- and resource-intensive. Regression test selection techniques aim at reducing test execution time by selecting only the tests that are affected by…

Software Engineering · Computer Science 2025-04-29 Sijia Gu , Ali Mesbah

In this paper, a new approach is proposed for automated software maintenance. The tool is able to perform 26 different refactorings. It also contains a large selection of metrics to measure the impact of the refactorings on the software and…

Software Engineering · Computer Science 2017-10-17 Michael Mohan , Des Greer

Software Product Lines SPL are recognized as a successful approach to reuse in software development.Its purpose is to reduce production costs. This approach allows products to be different with respect of particular characteristics and…

Software Engineering · Computer Science 2020-12-01 Sami Ouali

Code smells indicate the potential problems of software quality so that developers can identify refactoring opportunities by detecting code smells. State-of-the-art approaches leverage heuristics, machine learning, and deep learning to…

Software Engineering · Computer Science 2024-02-19 Haiyang Liu , Yang Zhang , Vidya Saikrishna , Quanquan Tian , Kun Zheng

Code smells are characteristics of the software that indicates a code or design problem which can make software hard to understand, evolve, and maintain. The code smell detection tools proposed in the literature produce different results,…

Software Engineering · Computer Science 2019-02-11 Thirupathi Guggulothu

Similarly to production code, code smells also occur in test code, where they are called test smells. Test smells have a detrimental effect not only on test code but also on the production code that is being tested. To date, the majority of…

Software Engineering · Computer Science 2021-08-11 Tongjie Wang , Yaroslav Golubev , Oleg Smirnov , Jiawei Li , Timofey Bryksin , Iftekhar Ahmed

Code review plays an important role in software quality control. A typical review process would involve a careful check of a piece of code in an attempt to find defects and other quality issues/violations. One type of issues that may impact…

Software Engineering · Computer Science 2021-03-23 Xiaofeng Han , Amjed Tahir , Peng Liang , Steve Counsell , Yajing Luo

We propose an automated verification technique for hypersafety properties, which express sets of valid interrelations between multiple finite runs of a program. The key observation is that constructing a proof for a small representative set…

Programming Languages · Computer Science 2019-05-23 Azadeh Farzan , Anthony Vandikas

Bad requirements quality can cause expensive consequences during the software development lifecycle, especially if iterations are long and feedback comes late. %-- the faster a problem is found, the cheaper it is to fix. This makes explicit…

Software Engineering · Computer Science 2016-11-29 H. Femmer , D. Méndez Fernández , S. Wagner , S. Eder

Large language model (LLM) coding agents can generate working code, but their solutions often accumulate complexity, duplication, and architectural debt. Human developers address such issues through refactoring: behavior-preserving program…

Software Engineering · Computer Science 2026-03-05 Alex Thillen , Niels Mündler , Veselin Raychev , Martin Vechev

Many software systems originate as prototypes or minimum viable products (MVPs), developed with an emphasis on delivery speed and responsiveness to changing requirements rather than long-term code maintainability. While effective for rapid…

Software Engineering · Computer Science 2026-04-06 Ema Smolic , Mario Brcic , Luka Hobor , Mihael Kovac

Unit testing validates the correctness of the unit under test and has become an essential activity in software development process. A unit test consists of a test prefix that drives the unit under test into a particular state, and a test…

Software Engineering · Computer Science 2023-09-20 Weifeng Sun , Hongyan Li , Meng Yan , Yan Lei , Hongyu Zhang

Refactoring is an important activity that is frequently performed in software development, and among them, Extract Method is known to be one of the most frequently performed refactorings. The existing techniques for recommending Extract…

Software Engineering · Computer Science 2021-08-31 Jinto Yamanaka , Yasuhiro Hayase , Toshiyuki Amagasa