Automated behavioral testing of refactoring engines

GS Soares - Proceedings of the 3rd annual conference on Systems …, 2012 - dl.acm.org
Refactoring is a transformation that preserves the external behavior of a program and
improves its internal quality. Usually, compilation errors and behavioral changes are …

Making program refactoring safer

G Soares - Proceedings of the 32nd ACM/IEEE International …, 2010 - dl.acm.org
Automated refactorings may change the program behavior. We propose an approach and its
implementation called SafeRefactor for making program refactoring safer. We applied 10 …

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 theory of software product line refinement

P Borba, L Teixeira, R Gheyi - Theoretical Computer Science, 2012 - Elsevier
To safely evolve a software product line, it is important to have a notion of product line
refinement that assures behavior preservation of the original product line products. So in this …

[PDF][PDF] Formal derivation of state-rich reactive programs using Circus.

MVM Oliveira - 2005 - cs.york.ac.uk
The lack of formalism in most software developments can lead to a loss of precision and
correctness in the resulting software. Formal techniques of program development have been …

Comparing approaches to analyze refactoring activity on software repositories

G Soares, R Gheyi, E Murphy-Hill, B Johnson - Journal of Systems and …, 2013 - Elsevier
Some approaches have been used to investigate evidence on how developers refactor their
code, whether refactorings activities may decrease the number of bugs, or improve …

Safe evolution templates for software product lines

L Neves, P Borba, V Alves, L Turnes, L Teixeira… - Journal of Systems and …, 2015 - Elsevier
Software product lines enable generating related software products from reusable assets.
Adopting a product line strategy can bring significant quality and productivity improvements …

Towards refactoring-aware regression test selection

K Wang, C Zhu, A Celik, J Kim, D Batory… - Proceedings of the 40th …, 2018 - dl.acm.org
Regression testing checks that recent project changes do not break previously working
functionality. Although important, regression testing is costly when changes are frequent …

Formal specification and verification of Java refactorings

A Garrido, J Meseguer - 2006 Sixth IEEE International …, 2006 - ieeexplore.ieee.org
There is an extensive literature about refactorings of object-oriented programs, and many
refactoring tools for the Java programming language. However, except for a few studies, in …

Partially safe evolution of software product lines

G Sampaio, P Borba, L Teixeira - … of the 20th International Systems and …, 2016 - dl.acm.org
A key challenge developers might face when evolving a product line is not to inadvertently
affect users of existing products. In refactoring and conservative extension scenarios, we can …