$30 off During Our Annual Pro Sale. View Details »

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

    View Slide

  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

    View Slide

  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

    View Slide

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

    View Slide

  5. CI
    Continuous
    Inspection
    Continuous
    Testing
    Continuous
    Bug Fix
    Continuous Integration

    View Slide

  6. How Do Developers
    Perform Refactoring in CI?

    View Slide

  7. Continuous Refactoring
    7

    View Slide

  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

    View Slide

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

    View Slide

  10. Current Practice

    View Slide

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

    View Slide

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

    View Slide

  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

    View Slide

  14. The Need for
    Continuous Refactoring

    View Slide

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

    View Slide

  16. Barriers To
    Continuous Refactoring

    View Slide

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

    View Slide

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

    View Slide

  19. 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

    View Slide