Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Continuous Refactoring in CI: A Preliminary Study on the Perceived Advantages and Barriers.

Continuous Refactoring in CI: A Preliminary Study on the Perceived Advantages and Barriers.

Our study on Continuous Refactoring presented at the IEEE International Conference on Software Maintenance and Evolution (ICSME '18) in Madrid, Spain. Preprint of the corresponding paper available at https://www.ifi.uzh.ch/seal/people/vassallo/VassalloICSME18.pdf

84581630350da72785f7d2448549ca06?s=128

Carmine Vassallo

September 28, 2018
Tweet

Transcript

  1. 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
  2. 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
  3. 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
  4. Lack of Automation Murphy-Hill et al., “How we refactor, and

    how we know it.” TSE 2011
  5. CI Continuous Inspection Continuous Testing Continuous Bug Fix Continuous Integration

  6. How Do Developers Perform Refactoring in CI?

  7. Continuous Refactoring 7

  8. 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
  9. The Questionnaire 9 14 questions, 3 main topics: • Current

    Practice • Need for Continuous Refactoring • Barriers to Continuous Refactoring 31 participants.
  10. Current Practice

  11. Frequency of Refactoring in CI 11 of our respondents look

    for refactoring opportunities at every change. % 63
  12. Motivations for Refactoring in CI 12 1st Code Quality Improvement

    Better Code Comprehension 2nd Avoid to fail Quality Gates 3rd
  13. 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
  14. The Need for Continuous Refactoring

  15. The Need for Continuous Refactoring 15 of our respondents consider

    essential to continuously refactor. % 71
  16. Barriers To Continuous Refactoring

  17. Barriers to Continuous Refactoring 17 Barriers Absence of proper test

    suite Lack of time Unavailability of automated tools
  18. Continuous Refactoring as a CI (best) practice Need for Automated

    Refactoring Developer- oriented static analysis tools
  19. 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