Slide 1

Slide 1 text

Continuous Refactoring in CI: A Preliminary Study on the Perceived Advantages and Barriers. Carmine Vassallo, Fabio Palomba, and Harald C. Gall. @ccvassallo IEEE International Conference on Software Maintenance and Evolution, Madrid, Spain, 2018

Slide 2

Slide 2 text

Continuous Refactoring in CI: A Preliminary Study on the Perceived Advantages and Barriers. Carmine Vassallo, Fabio Palomba, and Harald C. Gall. @ccvassallo IEEE International Conference on Software Maintenance and Evolution, Madrid, Spain, 2018

Slide 3

Slide 3 text

3 Improved code maintainability Code more understandable Code easier to test Introduction of new bugs Lack of proper support Alshayeb et al., “Empirical investigation of refactoring effect on software quality”, IST 2009 Kim et al., “A field study of refactoring challenges and benefits”, FSE 2012 Murphy-Hill et al., “How we refactor, and how we know it.”, TSE 2011

Slide 4

Slide 4 text

Lack of Automation Murphy-Hill et al., “How we refactor, and how we know it.” TSE 2011

Slide 5

Slide 5 text

CI Continuous Inspection Continuous Testing Continuous Bug Fix Continuous Integration

Slide 6

Slide 6 text

How Do Developers Perform Refactoring in CI?

Slide 7

Slide 7 text

Continuous Refactoring 7

Slide 8

Slide 8 text

Empirical Study RQ1 How do developers perform refactoring in CI? RQ2 Do developers need to refactor continuously? RQ3 Which are the barriers to continuous refactoring? 8

Slide 9

Slide 9 text

The Questionnaire 9 14 questions, 3 main topics: • Current Practice • Need for Continuous Refactoring • Barriers to Continuous Refactoring 31 participants.

Slide 10

Slide 10 text

Current Practice

Slide 11

Slide 11 text

Frequency of Refactoring in CI 11 of our respondents look for refactoring opportunities at every change. % 63

Slide 12

Slide 12 text

Motivations for Refactoring in CI 12 1st Code Quality Improvement Better Code Comprehension 2nd Avoid to fail Quality Gates 3rd

Slide 13

Slide 13 text

Motivations for Refactoring in CI 13 1st Code Quality Improvement Better Code Comprehension 2nd 3rd Avoid to fail Quality Gates “warnings raised by static analysis tools” (S11) “lack of test coverage” (S8) “code complexity is high” (S18) Adoption of Static Analysis Tools

Slide 14

Slide 14 text

The Need for Continuous Refactoring

Slide 15

Slide 15 text

The Need for Continuous Refactoring 15 of our respondents consider essential to continuously refactor. % 71

Slide 16

Slide 16 text

Barriers To Continuous Refactoring

Slide 17

Slide 17 text

Barriers to Continuous Refactoring 17 Barriers Absence of proper test suite Lack of time Unavailability of automated tools

Slide 18

Slide 18 text

Continuous Refactoring as a CI (best) practice Need for Automated Refactoring Developer- oriented static analysis tools

Slide 19

Slide 19 text

19 Continuous Refactoring in CI: A Preliminary Study on the Perceived Advantages and Barriers. Carmine Vassallo, Fabio Palomba, and Harald C. Gall. @ccvassallo vassallo@ifi.uzh.ch Lack of Automation Murphy-Hill et al., “How we refactor, and how we know it.” TSE 2011 Frequency of Refactoring in CI X of our respondents look for refactoring opportunities at every change. % 63 Barriers to Continuous Refactoring X Barriers Absence of proper test suite Lack of time Unavailability of automated tools