What Programmers Say About Refactoring Tools? An Empirical Investigation of StackOverflow 

UFPA
UFPASoftware Engineering Reseacher at UFPA
What Programmers Say About
Refactoring Tools?
An Empirical Investigation of StackOverflow

Gustavo Pinto, Fernando Kamei
Federal University of Pernambuco
{ghlp, fkk}@cin.ufpe.br
Researchers

Programmers
Programmers

Researchers

What they think about?
Programmers

Researchers

What they think about?
Programmers

Researchers

What they think about?
1.5M Users
3.4M Questions
6.8M Answers
40GB of data
A TON of information
(with some quality)
1.5M Users
3.4M Questions
6.8M Answers
40GB of data
A TON of information
(with some quality)

But, what about
Refactoring Tools?
3.4M Questions

Filter questions by “refactoring”
and “tools” on the body, or
subject or tag name.

Store the results in a
single MySQL table.

754 Q
>2K A

from July 31, 2008
to July 31, 2012:
●
●
●

324 Questions
1,135 Answers
1,254 Users
The final data!

Manual filter to remove
false positives
3.4M Questions

Filter questions by “refactoring”
and “tools” key-word, on the
body, or subject or tag name.

Store the results in a
single MySQL table.

754 Q
>2K A

from July 31, 2008
to July 31, 2012:
●
●
●

324 Questions
1,135 Answers
1,254 Users
The final data!

Manual filter to remove
false positives
3.4M Questions

Filter questions by “refactoring”
and “tools” key-word, on the
body, or subject or tag name.

Store the results in a
single MySQL table.

754 Q
>2K A

from July 31, 2008
to July 31, 2012:
●
●
●

324 Questions
1,135 Answers
1,254 Users

2x
The final data!

Manual filter to remove
false positives
Research Questions
● RQ1: What are the most desirable features in
refactoring tools?
● RQ2: What are the barriers to adoption of refactoring
tools?
● RQ3: How is interest in refactoring tools related to
programmer expertise?
● RQ4: Does interest in refactoring tools increase over
the years?
RQ1: What are the most desirable features in refactoring tools?
1. Refactoring for dynamic languages (78 questions ≈ 24.72%)
a. PHP
» 29%
“I am looking for a python tool that will allow
b. JavaScript
» 23%
me to specifically rename and move
c. Python
» 23%
modules.”
d. Ruby
» 11%
StackOverflow Question #9424189
e. Perl
» 9%
f. R
» 1%
g. Perl
» 1%
h. Matlab
» 1%
RQ1: What are the most desirable features in refactoring tools?
1. Refactoring for dynamic languages (78 questions ≈ 24.72%)
2. Refactoring recommendations (45 questions ≈ 13.88%)
“I would prefer a tool that just makes suggestions about possible refactorings: names
the refactoring, optionally provides a short description of it (great for learning purposes),
highlights the code section and lets me do the refactoring myself”
StackOverflow Question #785667
RQ1: What are the most desirable features in refactoring tools?
1. Refactoring for dynamic languages (78 questions ≈ 24.72%)
2. Refactoring recommendations (45 questions ≈ 13.88%)
3. Refactoring for databases (12 questions ≈ 3.71%)
a. Automatic simplification of SQL
b. Refactoring table or views structure
c. Fixing SQL vulnerabilities
“I would like to rename a table column in MySql and also have the name updated in any triggers,
stored procs, etc. that reference the column. [...] If a tool exists that can perform such a
refactoring, it would be great if it could generate an SQL script that applies these changes.”
StackOverflow Question #1644271
RQ1: What are the most desirable features in refactoring tools?
1.
2.
3.
4.

Refactoring for dynamic languages (78 questions ≈ 24.72%)
Refactoring recommendations (45 questions ≈ 13.88%)
Refactoring for databases (12 questions ≈ 3.71%)
Multi-language Refactorings (9 questions ≈ 2.77%)
a. All questions related to JVM languages

“I have inherited significant amounts of Groovy code, and I have found it difficult to maintain [..]. I
have tried to manually convert some pieces to Java, it's been a pain. Are you aware of any tools
or plugins that help with this conversion?”
StackOverflow Question #5302103
RQ2: What are the barriers to adoption of refactoring tools?
In order of interest:

1. Usability problems (52 questions ≈ 16%)
1.1. Unknown tool (54%)
1.2. Difficult to learn (13%)
1.3. Difficult to use (8%)
2. Lack of trust (39 questions ≈ 12%)
RQ2: What are the barriers to adoption of refactoring tools?
In order of interest:

1. Usability problems (16% of Q)
1.1. Unknown tool (54%)
1.2. Difficult to learn (13%)
1.3. Difficult to use (8%)

33% are from novice users
64%
49%

What refactoring tool
do you use to do X in
language Z?
RQ2: What are the barriers to adoption of refactoring tools?
In order of interest:

1. Usability problems (16% of Q)
1.1. Unknown tool (54%)
1.2. Difficult to learn (13%)
1.3. Difficult to use (8%)

Barriers or lack of experience?

33% are from novice users
64%
49%

What refactoring tool
do you use to do X in
language Z?
RQ2: What are the barriers to adoption of refactoring tools?
In order of interest:

1. Usability problems (16% of Q)
1.1. Unknown tool (54%)
1.2. Difficult to learn (13%)
1.3. Difficult to use (8%)
2. Lack of trust (12 % of Q)

Sometimes the tool will change
the meaning of your code,
without you expecting it.

StackOverflow Question #1372059
RQ2: What are the barriers to adoption of refactoring tools?
In order of interest:

1. Usability problems (16% of Q)
1.1. Unknown tool (54%)
1.2. Difficult to learn (13%)
1.3. Difficult to use (8%)
2. Lack of trust (12 % of Q)

“It is not good to decrease readability in
favor of atomicity”
StackOverflow Question #5302103

Sometimes the tool will change
the meaning of your code,
without you expecting it.

StackOverflow Question #1372059
RQ3: How is interest in refactoring tools related to programmer
expertise?
Or.. do only hackers talk about refactoring tools?
RQ3: How is interest in refactoring tools related to programmer
expertise?
Or.. do only hackers talk about refactoring tools?

Q: 39% comes from novices
A: 41% comes from seniors

Novices

Seniors
RQ3: How is interest in refactoring tools related to programmer
expertise?
Or.. do only hackers talk about refactoring tools?

Q: 39% comes from novices
A: 41% comes from seniors

Refactoring tool is a topic that
interest all kind of users.

Novices

Seniors
RQ3: How is interest in refactoring tools related to programmer
expertise?
Or.. do only hackers talk about refactoring tools?

Q: 39% comes from novices
A: 41% comes from seniors

Novices

Seniors

Also, we ran a Person
Correlation between reputation x
questions and reputation x
answers, but no significant
correlation was found.
RQ4: Does interest in refactoring tools increase over the years?
Questions per month
● Median: 6
● Mean: 6.75
● SD: 3.38
● Max: 20
● Min: 1
Answers per month
● Median: 18
● Mean: 23.63
● SD: 16.23
● Max: 73
● Min: 1
RQ4: Does interest in refactoring tools increase over the years?
Questions per month
● Median: 6
● Mean: 6.75
● SD: 3.38
● Max: 20
● Min: 1

● Yes, but very little.

Answers per month
● Median: 18
● Mean: 23.63
● SD: 16.23
● Max: 73
● Min: 1
RQ4: Does interest in refactoring tools increase over the years?
Questions per month
● Median: 6
● Mean: 6.75
● SD: 3.38
● Max: 20
● Min: 1

● Yes, but very little.
● An increment of 0.56 questions per trimester.
● A decrement of -8.13 answers per trimester.

Answers per month
● Median: 18
● Mean: 23.63
● SD: 16.23
● Max: 73
● Min: 1
RQ4: Does interest in refactoring tools increase over the years?
Questions per month
● Median: 6
● Mean: 6.75
● SD: 3.38
● Max: 20
● Min: 1

-0.43 without outliers

● Yes, but very little.
● An increment of 0.56 questions per trimester.
● A decrement of -8.13 answers per trimester.

Answers per month
● Median: 18
● Mean: 23.63
● SD: 16.23
● Max: 73
● Min: 1
Conclusions
● We provided a set of desired features, as well as common
cause for barriers adoption.
○ Insights for researchers and tool vendors
● We observed that novice users produce more questions, and
seniors provide the answers.
○ Also, most of the barriers were reported by novice users
● We identified a relative small interest in refactoring tools
○ Mean of 6 questions / month, sd of 4.45
What Programmers Say About
Refactoring Tools?
An Empirical Investigation of StackOverflow

Gustavo Pinto, Fernando Kamei
Federal University of Pernambuco
{ghlp, fkk}@cin.ufpe.br
1 of 30

Recommended

Data Science HandsiOn - Progress by
Data Science HandsiOn - ProgressData Science HandsiOn - Progress
Data Science HandsiOn - Progress✪Computants✪IBM_BP
136 views6 slides
130719 sebastiano panichella - who is going to mentor newcomers in open sou... by
130719   sebastiano panichella - who is going to mentor newcomers in open sou...130719   sebastiano panichella - who is going to mentor newcomers in open sou...
130719 sebastiano panichella - who is going to mentor newcomers in open sou...Ptidej Team
331 views71 slides
ISEC-2021-Presentation-Saikat-Mondal by
ISEC-2021-Presentation-Saikat-MondalISEC-2021-Presentation-Saikat-Mondal
ISEC-2021-Presentation-Saikat-MondalUniversity of Saskatchewan
20 views34 slides
R programming for psychometrics by
R programming for psychometricsR programming for psychometrics
R programming for psychometricsDiane Talley
3.7K views34 slides
AN AUTOMATED APPROACH TO ASSIGN SOFTWARE CHANGE REQUESTS (Ph.D. Presentation) by
AN AUTOMATED APPROACH TO ASSIGN SOFTWARE CHANGE REQUESTS (Ph.D. Presentation)AN AUTOMATED APPROACH TO ASSIGN SOFTWARE CHANGE REQUESTS (Ph.D. Presentation)
AN AUTOMATED APPROACH TO ASSIGN SOFTWARE CHANGE REQUESTS (Ph.D. Presentation)yguarata
1.1K views64 slides
A Bug Report Analysis and Search Tool (presentation for M.Sc. degree) by
A Bug Report Analysis and Search Tool (presentation for M.Sc. degree)A Bug Report Analysis and Search Tool (presentation for M.Sc. degree)
A Bug Report Analysis and Search Tool (presentation for M.Sc. degree)yguarata
954 views69 slides

More Related Content

Similar to What Programmers Say About Refactoring Tools? An Empirical Investigation of StackOverflow 

Are Automated Debugging Techniques Actually Helping Programmers by
Are Automated Debugging Techniques Actually Helping ProgrammersAre Automated Debugging Techniques Actually Helping Programmers
Are Automated Debugging Techniques Actually Helping ProgrammersChris Parnin
1.9K views42 slides
Overcome the Reign of Chaos by
Overcome the Reign of ChaosOvercome the Reign of Chaos
Overcome the Reign of ChaosMichael Stockerl
155 views62 slides
Evaluating the Usefulness of IR-Based Fault LocalizationTechniques by
Evaluating the Usefulness of IR-Based Fault LocalizationTechniquesEvaluating the Usefulness of IR-Based Fault LocalizationTechniques
Evaluating the Usefulness of IR-Based Fault LocalizationTechniquesAlex Orso
1.2K views38 slides
Code-Review-COW56-Meeting by
Code-Review-COW56-MeetingCode-Review-COW56-Meeting
Code-Review-COW56-MeetingMasud Rahman
76 views60 slides
To Mock or Not To Mock by
To Mock or Not To MockTo Mock or Not To Mock
To Mock or Not To MockDelft University of Technology
244 views28 slides
Pragmatic software testing education - SIGCSE 2019 by
Pragmatic software testing education - SIGCSE 2019Pragmatic software testing education - SIGCSE 2019
Pragmatic software testing education - SIGCSE 2019Maurício Aniche
278 views31 slides

Similar to What Programmers Say About Refactoring Tools? An Empirical Investigation of StackOverflow (20)

Are Automated Debugging Techniques Actually Helping Programmers by Chris Parnin
Are Automated Debugging Techniques Actually Helping ProgrammersAre Automated Debugging Techniques Actually Helping Programmers
Are Automated Debugging Techniques Actually Helping Programmers
Chris Parnin1.9K views
Evaluating the Usefulness of IR-Based Fault LocalizationTechniques by Alex Orso
Evaluating the Usefulness of IR-Based Fault LocalizationTechniquesEvaluating the Usefulness of IR-Based Fault LocalizationTechniques
Evaluating the Usefulness of IR-Based Fault LocalizationTechniques
Alex Orso1.2K views
Code-Review-COW56-Meeting by Masud Rahman
Code-Review-COW56-MeetingCode-Review-COW56-Meeting
Code-Review-COW56-Meeting
Masud Rahman76 views
Pragmatic software testing education - SIGCSE 2019 by Maurício Aniche
Pragmatic software testing education - SIGCSE 2019Pragmatic software testing education - SIGCSE 2019
Pragmatic software testing education - SIGCSE 2019
Maurício Aniche278 views
[DSC Europe 23] Dmitry Ustalov - Design and Evaluation of Large Language Models by DataScienceConferenc1
[DSC Europe 23] Dmitry Ustalov - Design and Evaluation of Large Language Models[DSC Europe 23] Dmitry Ustalov - Design and Evaluation of Large Language Models
[DSC Europe 23] Dmitry Ustalov - Design and Evaluation of Large Language Models
Works For Me! Characterizing Non-Reproducible Bug Reports by SALT Lab @ UBC
Works For Me! Characterizing Non-Reproducible Bug ReportsWorks For Me! Characterizing Non-Reproducible Bug Reports
Works For Me! Characterizing Non-Reproducible Bug Reports
SALT Lab @ UBC864 views
Investigating the Quality Aspects of Crowd-Sourced Developer Forum: A Case St... by University of Saskatchewan
Investigating the Quality Aspects of Crowd-Sourced Developer Forum: A Case St...Investigating the Quality Aspects of Crowd-Sourced Developer Forum: A Case St...
Investigating the Quality Aspects of Crowd-Sourced Developer Forum: A Case St...
DesiradhaRam Gadde - Testers _ Testing in ChatGPT-AI world.pptx by QA or the Highway
DesiradhaRam Gadde - Testers _ Testing in ChatGPT-AI world.pptxDesiradhaRam Gadde - Testers _ Testing in ChatGPT-AI world.pptx
DesiradhaRam Gadde - Testers _ Testing in ChatGPT-AI world.pptx
DesiradhaRam Gadde - Testers & Testing in ChatGPT-AI world.pptx by Joseph Beale
DesiradhaRam Gadde - Testers & Testing in ChatGPT-AI world.pptxDesiradhaRam Gadde - Testers & Testing in ChatGPT-AI world.pptx
DesiradhaRam Gadde - Testers & Testing in ChatGPT-AI world.pptx
Joseph Beale22 views
DesiradhaRam Gadde - Testers & Testing in ChatGPT-AI world.pptx by QA or the Highway
DesiradhaRam Gadde - Testers & Testing in ChatGPT-AI world.pptxDesiradhaRam Gadde - Testers & Testing in ChatGPT-AI world.pptx
DesiradhaRam Gadde - Testers & Testing in ChatGPT-AI world.pptx
Teacher-Aware Active Robot Learning by Mattia Racca
Teacher-Aware Active Robot LearningTeacher-Aware Active Robot Learning
Teacher-Aware Active Robot Learning
Mattia Racca169 views
StratCel: A Strategy-Centric Approach to the Design of End-User Debugging Tools by hciresearch
StratCel: A Strategy-Centric Approach to the Design of End-User Debugging ToolsStratCel: A Strategy-Centric Approach to the Design of End-User Debugging Tools
StratCel: A Strategy-Centric Approach to the Design of End-User Debugging Tools
hciresearch233 views
From Chatbots to Augmented Conversational Assistants by Databricks
From Chatbots to Augmented Conversational AssistantsFrom Chatbots to Augmented Conversational Assistants
From Chatbots to Augmented Conversational Assistants
Databricks165 views
MS.Net Interview Questions - Simplified by Mohd Manzoor Ahmed
MS.Net Interview Questions - SimplifiedMS.Net Interview Questions - Simplified
MS.Net Interview Questions - Simplified
Mohd Manzoor Ahmed47.7K views
Bug debug keynote - Present problems and future solutions by RIA RUI Society
Bug debug keynote - Present problems and future solutionsBug debug keynote - Present problems and future solutions
Bug debug keynote - Present problems and future solutions
RIA RUI Society660 views
Experiments on Design Pattern Discovery by Tim Menzies
Experiments on Design Pattern DiscoveryExperiments on Design Pattern Discovery
Experiments on Design Pattern Discovery
Tim Menzies809 views

More from UFPA

Evidence Briefings: Towards a Medium to Transfer Knowledge from Systematic Re... by
Evidence Briefings: Towards a Medium to Transfer Knowledge from Systematic Re...Evidence Briefings: Towards a Medium to Transfer Knowledge from Systematic Re...
Evidence Briefings: Towards a Medium to Transfer Knowledge from Systematic Re...UFPA
452 views90 slides
More Common Than You Think: An In-Depth Study of Casual Contributors by
More Common Than You Think: An In-Depth Study of Casual ContributorsMore Common Than You Think: An In-Depth Study of Casual Contributors
More Common Than You Think: An In-Depth Study of Casual ContributorsUFPA
625 views33 slides
Possibilidades com python by
Possibilidades com pythonPossibilidades com python
Possibilidades com pythonUFPA
1.1K views48 slides
Python simplecv by
Python simplecvPython simplecv
Python simplecvUFPA
6.7K views94 slides
Porque aprender haskell me fez um programador python melhor? by
Porque aprender haskell me fez um programador python melhor?Porque aprender haskell me fez um programador python melhor?
Porque aprender haskell me fez um programador python melhor?UFPA
4.7K views103 slides
Are Java Programmers Transitioning to Multicore? by
Are Java Programmers Transitioning to Multicore? Are Java Programmers Transitioning to Multicore?
Are Java Programmers Transitioning to Multicore? UFPA
584 views32 slides

More from UFPA(9)

Evidence Briefings: Towards a Medium to Transfer Knowledge from Systematic Re... by UFPA
Evidence Briefings: Towards a Medium to Transfer Knowledge from Systematic Re...Evidence Briefings: Towards a Medium to Transfer Knowledge from Systematic Re...
Evidence Briefings: Towards a Medium to Transfer Knowledge from Systematic Re...
UFPA452 views
More Common Than You Think: An In-Depth Study of Casual Contributors by UFPA
More Common Than You Think: An In-Depth Study of Casual ContributorsMore Common Than You Think: An In-Depth Study of Casual Contributors
More Common Than You Think: An In-Depth Study of Casual Contributors
UFPA625 views
Possibilidades com python by UFPA
Possibilidades com pythonPossibilidades com python
Possibilidades com python
UFPA1.1K views
Python simplecv by UFPA
Python simplecvPython simplecv
Python simplecv
UFPA6.7K views
Porque aprender haskell me fez um programador python melhor? by UFPA
Porque aprender haskell me fez um programador python melhor?Porque aprender haskell me fez um programador python melhor?
Porque aprender haskell me fez um programador python melhor?
UFPA4.7K views
Are Java Programmers Transitioning to Multicore? by UFPA
Are Java Programmers Transitioning to Multicore? Are Java Programmers Transitioning to Multicore?
Are Java Programmers Transitioning to Multicore?
UFPA584 views
Beljug2010 by UFPA
Beljug2010Beljug2010
Beljug2010
UFPA914 views
Grails from scratch by UFPA
Grails from scratchGrails from scratch
Grails from scratch
UFPA1.4K views
A computacao e_voce_caminhos_para_seguir by UFPA
A computacao e_voce_caminhos_para_seguirA computacao e_voce_caminhos_para_seguir
A computacao e_voce_caminhos_para_seguir
UFPA614 views

Recently uploaded

SUPPLIER SOURCING.pptx by
SUPPLIER SOURCING.pptxSUPPLIER SOURCING.pptx
SUPPLIER SOURCING.pptxangelicacueva6
20 views1 slide
TouchLog: Finger Micro Gesture Recognition Using Photo-Reflective Sensors by
TouchLog: Finger Micro Gesture Recognition  Using Photo-Reflective SensorsTouchLog: Finger Micro Gesture Recognition  Using Photo-Reflective Sensors
TouchLog: Finger Micro Gesture Recognition Using Photo-Reflective Sensorssugiuralab
23 views15 slides
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N... by
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...James Anderson
126 views32 slides
PharoJS - Zürich Smalltalk Group Meetup November 2023 by
PharoJS - Zürich Smalltalk Group Meetup November 2023PharoJS - Zürich Smalltalk Group Meetup November 2023
PharoJS - Zürich Smalltalk Group Meetup November 2023Noury Bouraqadi
139 views17 slides
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院 by
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院IttrainingIttraining
69 views8 slides
Piloting & Scaling Successfully With Microsoft Viva by
Piloting & Scaling Successfully With Microsoft VivaPiloting & Scaling Successfully With Microsoft Viva
Piloting & Scaling Successfully With Microsoft VivaRichard Harbridge
13 views160 slides

Recently uploaded(20)

TouchLog: Finger Micro Gesture Recognition Using Photo-Reflective Sensors by sugiuralab
TouchLog: Finger Micro Gesture Recognition  Using Photo-Reflective SensorsTouchLog: Finger Micro Gesture Recognition  Using Photo-Reflective Sensors
TouchLog: Finger Micro Gesture Recognition Using Photo-Reflective Sensors
sugiuralab23 views
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N... by James Anderson
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...
James Anderson126 views
PharoJS - Zürich Smalltalk Group Meetup November 2023 by Noury Bouraqadi
PharoJS - Zürich Smalltalk Group Meetup November 2023PharoJS - Zürich Smalltalk Group Meetup November 2023
PharoJS - Zürich Smalltalk Group Meetup November 2023
Noury Bouraqadi139 views
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院 by IttrainingIttraining
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院
Piloting & Scaling Successfully With Microsoft Viva by Richard Harbridge
Piloting & Scaling Successfully With Microsoft VivaPiloting & Scaling Successfully With Microsoft Viva
Piloting & Scaling Successfully With Microsoft Viva
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f... by TrustArc
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...
TrustArc72 views
Special_edition_innovator_2023.pdf by WillDavies22
Special_edition_innovator_2023.pdfSpecial_edition_innovator_2023.pdf
Special_edition_innovator_2023.pdf
WillDavies2218 views
"Running students' code in isolation. The hard way", Yurii Holiuk by Fwdays
"Running students' code in isolation. The hard way", Yurii Holiuk "Running students' code in isolation. The hard way", Yurii Holiuk
"Running students' code in isolation. The hard way", Yurii Holiuk
Fwdays24 views
Case Study Copenhagen Energy and Business Central.pdf by Aitana
Case Study Copenhagen Energy and Business Central.pdfCase Study Copenhagen Energy and Business Central.pdf
Case Study Copenhagen Energy and Business Central.pdf
Aitana17 views
"Node.js Development in 2024: trends and tools", Nikita Galkin by Fwdays
"Node.js Development in 2024: trends and tools", Nikita Galkin "Node.js Development in 2024: trends and tools", Nikita Galkin
"Node.js Development in 2024: trends and tools", Nikita Galkin
Fwdays17 views

What Programmers Say About Refactoring Tools? An Empirical Investigation of StackOverflow 

  • 1. What Programmers Say About Refactoring Tools? An Empirical Investigation of StackOverflow Gustavo Pinto, Fernando Kamei Federal University of Pernambuco {ghlp, fkk}@cin.ufpe.br
  • 6. 1.5M Users 3.4M Questions 6.8M Answers 40GB of data A TON of information (with some quality)
  • 7. 1.5M Users 3.4M Questions 6.8M Answers 40GB of data A TON of information (with some quality) But, what about Refactoring Tools?
  • 8. 3.4M Questions Filter questions by “refactoring” and “tools” on the body, or subject or tag name. Store the results in a single MySQL table. 754 Q >2K A from July 31, 2008 to July 31, 2012: ● ● ● 324 Questions 1,135 Answers 1,254 Users The final data! Manual filter to remove false positives
  • 9. 3.4M Questions Filter questions by “refactoring” and “tools” key-word, on the body, or subject or tag name. Store the results in a single MySQL table. 754 Q >2K A from July 31, 2008 to July 31, 2012: ● ● ● 324 Questions 1,135 Answers 1,254 Users The final data! Manual filter to remove false positives
  • 10. 3.4M Questions Filter questions by “refactoring” and “tools” key-word, on the body, or subject or tag name. Store the results in a single MySQL table. 754 Q >2K A from July 31, 2008 to July 31, 2012: ● ● ● 324 Questions 1,135 Answers 1,254 Users 2x The final data! Manual filter to remove false positives
  • 11. Research Questions ● RQ1: What are the most desirable features in refactoring tools? ● RQ2: What are the barriers to adoption of refactoring tools? ● RQ3: How is interest in refactoring tools related to programmer expertise? ● RQ4: Does interest in refactoring tools increase over the years?
  • 12. RQ1: What are the most desirable features in refactoring tools? 1. Refactoring for dynamic languages (78 questions ≈ 24.72%) a. PHP » 29% “I am looking for a python tool that will allow b. JavaScript » 23% me to specifically rename and move c. Python » 23% modules.” d. Ruby » 11% StackOverflow Question #9424189 e. Perl » 9% f. R » 1% g. Perl » 1% h. Matlab » 1%
  • 13. RQ1: What are the most desirable features in refactoring tools? 1. Refactoring for dynamic languages (78 questions ≈ 24.72%) 2. Refactoring recommendations (45 questions ≈ 13.88%) “I would prefer a tool that just makes suggestions about possible refactorings: names the refactoring, optionally provides a short description of it (great for learning purposes), highlights the code section and lets me do the refactoring myself” StackOverflow Question #785667
  • 14. RQ1: What are the most desirable features in refactoring tools? 1. Refactoring for dynamic languages (78 questions ≈ 24.72%) 2. Refactoring recommendations (45 questions ≈ 13.88%) 3. Refactoring for databases (12 questions ≈ 3.71%) a. Automatic simplification of SQL b. Refactoring table or views structure c. Fixing SQL vulnerabilities “I would like to rename a table column in MySql and also have the name updated in any triggers, stored procs, etc. that reference the column. [...] If a tool exists that can perform such a refactoring, it would be great if it could generate an SQL script that applies these changes.” StackOverflow Question #1644271
  • 15. RQ1: What are the most desirable features in refactoring tools? 1. 2. 3. 4. Refactoring for dynamic languages (78 questions ≈ 24.72%) Refactoring recommendations (45 questions ≈ 13.88%) Refactoring for databases (12 questions ≈ 3.71%) Multi-language Refactorings (9 questions ≈ 2.77%) a. All questions related to JVM languages “I have inherited significant amounts of Groovy code, and I have found it difficult to maintain [..]. I have tried to manually convert some pieces to Java, it's been a pain. Are you aware of any tools or plugins that help with this conversion?” StackOverflow Question #5302103
  • 16. RQ2: What are the barriers to adoption of refactoring tools? In order of interest: 1. Usability problems (52 questions ≈ 16%) 1.1. Unknown tool (54%) 1.2. Difficult to learn (13%) 1.3. Difficult to use (8%) 2. Lack of trust (39 questions ≈ 12%)
  • 17. RQ2: What are the barriers to adoption of refactoring tools? In order of interest: 1. Usability problems (16% of Q) 1.1. Unknown tool (54%) 1.2. Difficult to learn (13%) 1.3. Difficult to use (8%) 33% are from novice users 64% 49% What refactoring tool do you use to do X in language Z?
  • 18. RQ2: What are the barriers to adoption of refactoring tools? In order of interest: 1. Usability problems (16% of Q) 1.1. Unknown tool (54%) 1.2. Difficult to learn (13%) 1.3. Difficult to use (8%) Barriers or lack of experience? 33% are from novice users 64% 49% What refactoring tool do you use to do X in language Z?
  • 19. RQ2: What are the barriers to adoption of refactoring tools? In order of interest: 1. Usability problems (16% of Q) 1.1. Unknown tool (54%) 1.2. Difficult to learn (13%) 1.3. Difficult to use (8%) 2. Lack of trust (12 % of Q) Sometimes the tool will change the meaning of your code, without you expecting it. StackOverflow Question #1372059
  • 20. RQ2: What are the barriers to adoption of refactoring tools? In order of interest: 1. Usability problems (16% of Q) 1.1. Unknown tool (54%) 1.2. Difficult to learn (13%) 1.3. Difficult to use (8%) 2. Lack of trust (12 % of Q) “It is not good to decrease readability in favor of atomicity” StackOverflow Question #5302103 Sometimes the tool will change the meaning of your code, without you expecting it. StackOverflow Question #1372059
  • 21. RQ3: How is interest in refactoring tools related to programmer expertise? Or.. do only hackers talk about refactoring tools?
  • 22. RQ3: How is interest in refactoring tools related to programmer expertise? Or.. do only hackers talk about refactoring tools? Q: 39% comes from novices A: 41% comes from seniors Novices Seniors
  • 23. RQ3: How is interest in refactoring tools related to programmer expertise? Or.. do only hackers talk about refactoring tools? Q: 39% comes from novices A: 41% comes from seniors Refactoring tool is a topic that interest all kind of users. Novices Seniors
  • 24. RQ3: How is interest in refactoring tools related to programmer expertise? Or.. do only hackers talk about refactoring tools? Q: 39% comes from novices A: 41% comes from seniors Novices Seniors Also, we ran a Person Correlation between reputation x questions and reputation x answers, but no significant correlation was found.
  • 25. RQ4: Does interest in refactoring tools increase over the years? Questions per month ● Median: 6 ● Mean: 6.75 ● SD: 3.38 ● Max: 20 ● Min: 1 Answers per month ● Median: 18 ● Mean: 23.63 ● SD: 16.23 ● Max: 73 ● Min: 1
  • 26. RQ4: Does interest in refactoring tools increase over the years? Questions per month ● Median: 6 ● Mean: 6.75 ● SD: 3.38 ● Max: 20 ● Min: 1 ● Yes, but very little. Answers per month ● Median: 18 ● Mean: 23.63 ● SD: 16.23 ● Max: 73 ● Min: 1
  • 27. RQ4: Does interest in refactoring tools increase over the years? Questions per month ● Median: 6 ● Mean: 6.75 ● SD: 3.38 ● Max: 20 ● Min: 1 ● Yes, but very little. ● An increment of 0.56 questions per trimester. ● A decrement of -8.13 answers per trimester. Answers per month ● Median: 18 ● Mean: 23.63 ● SD: 16.23 ● Max: 73 ● Min: 1
  • 28. RQ4: Does interest in refactoring tools increase over the years? Questions per month ● Median: 6 ● Mean: 6.75 ● SD: 3.38 ● Max: 20 ● Min: 1 -0.43 without outliers ● Yes, but very little. ● An increment of 0.56 questions per trimester. ● A decrement of -8.13 answers per trimester. Answers per month ● Median: 18 ● Mean: 23.63 ● SD: 16.23 ● Max: 73 ● Min: 1
  • 29. Conclusions ● We provided a set of desired features, as well as common cause for barriers adoption. ○ Insights for researchers and tool vendors ● We observed that novice users produce more questions, and seniors provide the answers. ○ Also, most of the barriers were reported by novice users ● We identified a relative small interest in refactoring tools ○ Mean of 6 questions / month, sd of 4.45
  • 30. What Programmers Say About Refactoring Tools? An Empirical Investigation of StackOverflow Gustavo Pinto, Fernando Kamei Federal University of Pernambuco {ghlp, fkk}@cin.ufpe.br