Cost-saving in Continuous Integration: Development, Improvement, and Evaluation of Build Selection Approaches

dc.contributor.authorJin, Xianhaoen
dc.contributor.committeechairServant Cortes, Francisco Javieren
dc.contributor.committeememberTilevich, Elien
dc.contributor.committeememberElbaum, Sebastianen
dc.contributor.committeememberMeng, Naen
dc.contributor.committeememberPrakash, Bodicherla Adityaen
dc.contributor.departmentComputer Scienceen
dc.date.accessioned2022-05-25T08:01:14Zen
dc.date.available2022-05-25T08:01:14Zen
dc.date.issued2022-05-24en
dc.description.abstractContinuous integration (CI) is a widely used practice in modern software engineering. Unfortunately, it is also an expensive practice — Google and Mozilla estimate their CI systems in millions of dollars. In this dissertation, I propose a collection of novel build selection approaches that are able to save the cost of CI. I also propose the first exhaustive comparison of techniques to improve CI including build and test granularity approaches. I firstly design a build selection approach (SMARTBUILDSKIP) for CI cost reduction in a balanceable way. The evaluation of SMARTBUILDSKIP shows that it can save a median of 30% of builds by only incurring a median delay of 1 build in a median of 15% of failing builds under its most conservative configuration. To minimize the delayed failure observation, I then propose the second build selection approach (PRECISEBUILDSKIP) that can save cost without delaying failure observation. We find that PRECISEBUILDSKIP can save a median of 5.5% of builds while capturing the majority of failing builds (100% in median) from the evaluation. After that, I evaluate the strengths and weaknesses of 10 techniques that can improve CI including SMARTBUILDSKIP. The findings of the comparison motivate my next work to design a hybrid technique (HYBRIDBUILDSKIP) that combines these techniques to produce more cost-saving while keeping a low proportion of failing builds that are delayed in observation. Finally, I design an experiment to understand how different weights of test duration among the whole build duration can influence the cost-saving of build and test selection techniques.en
dc.description.abstractgeneralModern software developing teams commonly use the continuous integration as the practice of automating and testing the integration of code changes from multiple contributors into a single software project. The best practice of continuous integration requires this process happens as frequently as possible because the bugs can be found earlier and easier before the change sets grow too large. However, continuous integration process can be time-consuming and in most cases the code change is bug-free. This means that developers may have to wait for a long time only to get a result with no actionable feedback. Thus, in this dissertation, I present multiple selection approaches to selectively execute the continuous integration process based on the prediction of the outcome - if the outcome is predicted to be passing with no actionable feedback, the approach will decide to skip the current execution. The evaluation result shows that my approaches can save the cost of continuous integration while keeping the value of it (finding bugs earlier).en
dc.description.degreeDoctor of Philosophyen
dc.format.mediumETDen
dc.identifier.othervt_gsexam:34039en
dc.identifier.urihttp://hdl.handle.net/10919/110323en
dc.language.isoenen
dc.publisherVirginia Techen
dc.rightsIn Copyrighten
dc.rights.urihttp://rightsstatements.org/vocab/InC/1.0/en
dc.subjectContinuous Integrationen
dc.subjectBuild Strategiesen
dc.subjectMaintenance Costen
dc.titleCost-saving in Continuous Integration: Development, Improvement, and Evaluation of Build Selection Approachesen
dc.typeDissertationen
thesis.degree.disciplineComputer Science and Applicationsen
thesis.degree.grantorVirginia Polytechnic Institute and State Universityen
thesis.degree.leveldoctoralen
thesis.degree.nameDoctor of Philosophyen

Files

Original bundle
Now showing 1 - 2 of 2
Loading...
Thumbnail Image
Name:
Jin_X_D_2022.pdf
Size:
2.1 MB
Format:
Adobe Portable Document Format
Loading...
Thumbnail Image
Name:
Jin_X_D_2022_support_1.pdf
Size:
11.57 KB
Format:
Adobe Portable Document Format
Description:
Supporting documents