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.

Carmine Vassallo
September 28, 2018

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

Carmine Vassallo

September 28, 2018
Tweet

More Decks by Carmine Vassallo

Other Decks in Research

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

    Practice • Need for Continuous Refactoring • Barriers to Continuous Refactoring 31 participants.
  6. Frequency of Refactoring in CI 11 of our respondents look

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

    Better Code Comprehension 2nd Avoid to fail Quality Gates 3rd
  8. 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
  9. Barriers to Continuous Refactoring 17 Barriers Absence of proper test

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

    Refactoring Developer- oriented static analysis tools
  11. 19 Continuous Refactoring in CI: A Preliminary Study on the

    Perceived Advantages and Barriers. Carmine Vassallo, Fabio Palomba, and Harald C. Gall. @ccvassallo [email protected] 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