Discipline Matters: Refactoring of Preprocessor Directives in the #ifdef Hell

F Medeiros, M Ribeiro, R Gheyi, S Apel… - IEEE Transactions …, 2017 - ieeexplore.ieee.org
The C preprocessor is used in many C projects to support variability and portability.
However, researchers and practitioners criticize the C preprocessor because of its negative …

A framework for checking regression test selection tools

C Zhu, O Legunsen, A Shi… - 2019 IEEE/ACM 41st …, 2019 - ieeexplore.ieee.org
Regression test selection (RTS) reduces regression testing costs by re-running only tests
that can change behavior due to code changes. Researchers and large software …

Avoiding useless mutants

L Fernandes, M Ribeiro, L Carvalho, R Gheyi… - Proceedings of the 16th …, 2017 - dl.acm.org
Mutation testing is a program-transformation technique that injects artificial bugs to check
whether the existing test suite can detect them. However, the costs of using mutation testing …

Detecting overly strong preconditions in refactoring engines

M Mongiovi, R Gheyi, G Soares… - IEEE Transactions …, 2017 - ieeexplore.ieee.org
Refactoring engines may have overly strong preconditions preventing developers from
applying useful transformations. We find that 32 percent of the Eclipse and JRRT test suites …

Symbolic execution of high-level transformations

AS Al-Sibahi, AS Dimovski, A Wąsowski - Proceedings of the 2016 ACM …, 2016 - dl.acm.org
Transformations form an important part of developing domain specific languages, where
they are used to provide semantics for typing and evaluation. Yet, few solutions exist for …

Generated tests in the context of maintenance tasks: A series of empirical studies

WBR Herculano, ELG Alves, M Mongiovi - IEEE Access, 2022 - ieeexplore.ieee.org
Maintenance tasks are often time-consuming and hard to manage. To cope with that,
developers often use failing test cases to guide their maintenance efforts. Therefore, working …

Revisiting refactoring mechanics from tool developers' perspective

J Oliveira, R Gheyi, F Pontes, M Mongiovi… - … and Applications: 23rd …, 2020 - Springer
Refactoring is a widely used development practice, available in mainstream IDEs. A
previous work conducted a survey with developers, and finds that most of them use their …

Java reflection API: revealing the dark side of the mirror

F Pontes, R Gheyi, S Souto, A Garcia… - Proceedings of the 2019 …, 2019 - dl.acm.org
Developers of widely used Java Virtual Machines (JVMs) implement and test the Java
Reflection API based on a Javadoc, which is specified using a natural language. However …

An Empirical Study of Refactoring Engine Bugs

H Wang, Z Xu, H Zhang, N Tsantalis, SH Tan - arXiv preprint arXiv …, 2024 - arxiv.org
Refactoring is a critical process in software development, aiming at improving the internal
structure of code while preserving its external behavior. Refactoring engines are integral …

Clone refactoring inspection by summarizing clone refactorings and detecting inconsistent changes during software evolution

Z Chen, YW Kwon, M Song - Journal of Software: Evolution …, 2018 - Wiley Online Library
It has been broadly assumed that removing code clones by refactorings would solve the
problems of code duplication. Despite recent empirical studies on the benefit of refactorings …