MSR 2020
Mon 29 - Tue 30 June 2020
co-located with ICSE 2020
Mon 29 Jun 2020 10:30 - 10:37 at MSR:Zoom2 - Refactoring & Testing Chair(s): Maurício Aniche

Refactoring consists of a program transformation applied to improve the internal structure of a program, for instance, by contributing to remove code smells. Developers often apply multiple interrelated refactorings called composite refactoring. Even though composite refactoring is a common practice, an investigation from different points of view on how composite refactoring manifests in practice is missing. Previous empirical studies also neglect how different kinds of composite refactorings affect the removal, prevalence or introduction of smells. To address these matters, we provide a conceptual framework and two heuristics to identify composite refactorings within and across commits. Then, we mined the commit history of 48 GitHub software projects, in which we identified and analyzed 24,911 composite refactorings involving 104,505 single refactorings. Amongst several findings, we observed that most composite refactorings occur in the same commit and have the same refactoring type. We also found that several refactorings are semantically related to each other, which occur in different parts of the system but are still related to the same task. Many smells are introduced in a program due to “incomplete” composite refactorings. Additionally, we found 111 patterns of composite refactorings that frequently introduce or remove certain smell types. They can be used as guidelines for developers to improve their refactoring practices as well as for designers of recommender systems.

Mon 29 Jun

Displayed time zone: (UTC) Coordinated Universal Time change

10:30 - 11:00
Refactoring & TestingTechnical Papers / Registered Reports / Keynote / MSR Awards / FOSS Award / Education / Data Showcase / Mining Challenge / MSR Challenge Proposals / Ask Me Anything at MSR:Zoom2
Chair(s): Maurício Aniche Delft University of Technology, Netherlands

Q/A & Discussion of Session Papers over Zoom (Joining info available on Slack)

10:30
7m
Live Q&A
Characterizing and Identifying Composite Refactorings: Concepts, Heuristics and PatternsMSR - Technical Paper
Technical Papers
Leonardo Da Silva Sousa Carnegie Mellon University, USA, Diego Cedrim Pontifical Catholic University of Rio de Janeiro, Alessandro Garcia PUC-Rio, Willian Oizumi PUC-Rio, Ana Carla Bibiano PUC-Rio, Daniel Oliveira PUC-Rio, Miryung Kim University of California, Los Angeles, Anderson Oliveira PUC-Rio
Pre-print Media Attached
10:37
7m
Live Q&A
Behind the Intents: An In-depth Empirical Study on Software Refactoring in Modern Code ReviewMSR - Technical Paper
Technical Papers
Matheus Paixao University of Fortaleza, Anderson Uchôa Pontifical Catholic University of Rio de Janeiro (PUC-Rio), Ana Carla Bibiano PUC-Rio, Daniel Oliveira PUC-Rio, Alessandro Garcia PUC-Rio, Jens Krinke University College London, Emilio Arvonio
Pre-print Media Attached
10:45
7m
Live Q&A
JTeC: A Large Collection of Java Test Classes for Test Code Analysis and ProcessingMSR - Data Showcase
Data Showcase
Federico Corò , A: Roberto Verdecchia Vrije Universiteit Amsterdam, A: Emilio Cruciani , A: Breno Miranda Federal University of Pernambuco, A: Antonia Bertolino CNR-ISTI
Pre-print Media Attached
10:52
7m
Live Q&A
TestRoutes: A Manually Curated Method Level Dataset for Test-to-Code TraceabilityMSR - Data Showcase
Data Showcase
A: András Kicsi , A: László Vidács University of Szeged, Hungary, A: Tibor Gyimothy
Pre-print Media Attached