Investigating the association between change bursts and build status
Change Bursts; Software Repository; Continuous Integration; Version Control; Empirical Study.
Commit bursts are sequences of changes made by developers that occur in code within a short period of time. In projects that adopt the practice of Continuous Integration (CI), every time a modification is completed, a new version of the code is created, generating a new build. In this new version, the changes made are verified automatically, running unit tests and reporting the result of failure or success of build to the developers. In this sense, the objective of this research is to carry out an empirical study to verify the association between bursts of commits and failures in build. The first step was to carry out an empirical study based on the mining of deposits, through which the relationship between bursts of commits and construction failure was identified. After this study, a survey was followed to evaluate the results obtained, considering the opinions of developers who work with CI. Among the discoveries made, the results of the first study show that in some projects the success rate of builds after bursts of changes tends to decrease. However, we cannot generalize the results to all projects since, in most of the studied projects, the difference was not statistically significant. In the second study, most survey participants agree that the proximity of a project's delivery data is a factor responsible for bursts of commits and build failure. However, we cannot generalize the results, since some developers had small disagreements about who was responsible for the construction failure. Thus, the results of this work intend to contribute to the community of developers who use CI, helping them to reduce failures in build, facilitating future work on good development practices.