Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article
Open access

RavenBuild: Context, Relevance, and Dependency Aware Build Outcome Prediction

Published: 12 July 2024 Publication History

Abstract

Continuous Integration (CI) is a common practice adopted by modern software organizations. It plays an especially important role for large corporations like Ubisoft, where thousands of build jobs are submitted daily. Indeed, the cadence of development progress is constrained by the pace at which CI services process build jobs. To provide faster CI feedback, recent work explores how build outcomes can be anticipated. Although early results show plenty of promise, the distinct characteristics of Project X—a AAA video game project at Ubisoft, present new challenges for build outcome prediction. In the Project X setting, changes that do not modify source code also incur build failures. Moreover, we find that the code changes that have an impact that crosses the source-data boundary are more prone to build failures than code changes that do not impact data files. Since such changes are not fully characterized by the existing set of build outcome prediction features, state-of-the art models tend to underperform. Therefore, to accommodate the data context into build outcome prediction, we propose RavenBuild, a novel approach that leverages context, relevance, and dependency-aware features. We apply the state of-the-art BuildFast model and RavenBuild to Project X, and observe that RavenBuild improves the F1 score of the failing class by 50%, the recall of the failing class by 105%, and AUC by 11%. To ease adoption in settings with heterogeneous project sets, we also provide a simplified alternative RavenBuild-CR, which excludes dependency-aware features. We apply RavenBuild-CR on 22 open-source projects and Project X, and observe across-the-board improvements as well. On the other hand, we find that a naïve Parrot approach, which simply echoes the previous build outcome as its prediction, is surprisingly competitive with BuildFast and RavenBuild. Though Parrot fails to predict when the build outcome differs from their immediate predecessor, Parrot serves well as a tendency indicator of the sequences in build outcome datasets. Therefore, future studies should also consider comparing to the Parrot approach as a baseline when evaluating build outcome prediction models.

References

[1]
Rabe Abdalkareem, Suhaib Mujahid, and Emad Shihab. 2021. A Machine Learning Approach to Improve the Detection of CI Skip Commits. IEEE Transactions on Software Engineering, 47, 12 (2021), 2740–2754. https://doi.org/10.1109/TSE.2020.2967380
[2]
Rabe Abdalkareem, Suhaib Mujahid, Emad Shihab, and Juergen Rilling. 2021. Which Commits Can Be CI Skipped? IEEE Transactions on Software Engineering, 47, 3 (2021), 448–463. https://doi.org/10.1109/TSE.2019.2897300
[3]
Bihuan Chen, Linlin Chen, Chen Zhang, and Xin Peng. 2020. BUILDFAST: History-Aware Build Outcome Prediction for Fast Feedback and Reduced Cost in Continuous Integration. In 2020 35th IEEE/ACM International Conference on Automated Software Engineering (ASE). 42–53.
[4]
Tianqi Chen and Carlos Guestrin. 2016. XGBoost: A Scalable Tree Boosting System. In Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining (KDD ’16). Association for Computing Machinery, New York, NY, USA. 785–794. isbn:9781450342322 https://doi.org/10.1145/2939672.2939785
[5]
CircleCI. 2023. CircleCI. https://circleci.com/ Accessed on Date,September 26, 2023
[6]
Paul M Duvall, Steve Matyas, and Andrew Glover. 2007. Continuous integration: improving software quality and reducing risk. Pearson Education.
[7]
Sebastian Elbaum, Gregg Rothermel, and John Penix. 2014. Techniques for Improving Regression Testing in Continuous Integration Development Environments. In Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering (FSE 2014). Association for Computing Machinery, New York, NY, USA. 235–245. isbn:9781450330565 https://doi.org/10.1145/2635868.2635910
[8]
Daniel Elsner, Roland Wuersching, Markus Schnappinger, Alexander Pretschner, Maria Graber, René Dammer, and Silke Reimer. 2022. Build System Aware Multi-language Regression Test Selection in Continuous Integration. In 2022 IEEE/ACM 44th International Conference on Software Engineering: Software Engineering in Practice (ICSE-SEIP). 87–96. https://doi.org/10.1145/3510457.3513078
[9]
Keheliya Gallaba, John Ewart, Yves Junqueira, and Shane McIntosh. 2022. Accelerating Continuous Integration by Caching Environments and Inferring Dependencies. IEEE Transactions on Software Engineering, 48, 6 (2022), 2040–2052. https://doi.org/10.1109/TSE.2020.3048335
[10]
Keheliya Gallaba, Maxime Lamothe, and Shane McIntosh. 2022. Lessons from Eight Years of Operational Data from a Continuous Integration Service: An Exploratory Case Study of CircleCI. In Proc. of the International Conference on Software Engineering (ICSE). 1330–1342.
[11]
Keheliya Gallaba and Shane McIntosh. 2020. Use and Misuse of Continuous Integration Features: An Empirical Study of Projects That (Mis)Use Travis CI. IEEE Transactions on Software Engineering, 46, 1 (2020), 33–50. https://doi.org/10.1109/TSE.2018.2838131
[12]
Milos Gligoric, Lamyaa Eloussi, and Darko Marinov. 2015. Practical Regression Test Selection with Dynamic File Dependencies. In Proceedings of the 2015 International Symposium on Software Testing and Analysis (ISSTA 2015). Association for Computing Machinery, New York, NY, USA. 211–222. isbn:9781450336208 https://doi.org/10.1145/2771783.2771784
[13]
Priscilla E Greenwood and Michael S Nikulin. 1996. A guide to chi-squared testing. 280, John Wiley & Sons.
[14]
Ahmed E. Hassan and Ken Zhang. 2006. Using Decision Trees to Predict the Certification Result of a Build. In 21st IEEE/ACM International Conference on Automated Software Engineering (ASE 2006), 18-22 September 2006, Tokyo, Japan. IEEE Computer Society, 189–198. https://doi.org/10.1109/ASE.2006.72
[15]
Foyzul Hassan and Xiaoyin Wang. 2017. Change-Aware Build Prediction Model for Stall Avoidance in Continuous Integration. In 2017 ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM). 157–162. https://doi.org/10.1109/ESEM.2017.23
[16]
Kim Herzig, Michaela Greiler, Jacek Czerwonka, and Brendan Murphy. 2015. The Art of Testing Less without Sacrificing Quality. In Proceedings of the 37th International Conference on Software Engineering - Volume 1 (ICSE ’15). IEEE Press, 483–493. isbn:9781479919345
[17]
Michael Hilton, Nicholas Nelson, Timothy Tunnell, Darko Marinov, and Danny Dig. 2017. Trade-Offs in Continuous Integration: Assurance, Security, and Flexibility. In Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering (ESEC/FSE 2017). Association for Computing Machinery, New York, NY, USA. 197–207. isbn:9781450351058 https://doi.org/10.1145/3106237.3106270
[18]
Michael Hilton, Timothy Tunnell, Kai Huang, Darko Marinov, and Danny Dig. 2016. Usage, Costs, and Benefits of Continuous Integration in Open-Source Projects. 426–437. isbn:9781450338455 https://doi.org/10.1145/2970276.2970358
[19]
Michael Hilton, Timothy Tunnell, Kai Huang, Darko Marinov, and Danny Dig. 2016. Usage, Costs, and Benefits of Continuous Integration in Open-Source Projects. In Proceedings of the 31st IEEE/ACM International Conference on Automated Software Engineering (ASE ’16). Association for Computing Machinery, New York, NY, USA. 426–437. isbn:9781450338455 https://doi.org/10.1145/2970276.2970358
[20]
Abram Hindle, Daniel M. German, and Ric Holt. 2008. What Do Large Commits Tell Us? A Taxonomical Study of Large Commits. In Proceedings of the 2008 International Working Conference on Mining Software Repositories (MSR ’08). Association for Computing Machinery, New York, NY, USA. 99–108. isbn:9781605580241 https://doi.org/10.1145/1370750.1370773
[21]
Xianhao Jin. 2021. Reducing Cost in Continuous Integration with a Collection of Build Selection Approaches. In Proceedings of the 29th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE 2021). Association for Computing Machinery, New York, NY, USA. 1650–1654. isbn:9781450385626 https://doi.org/10.1145/3468264.3473103
[22]
Xianhao Jin and Francisco Servant. 2020. A Cost-Efficient Approach to Building in Continuous Integration. In Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering (ICSE ’20). Association for Computing Machinery, New York, NY, USA. 13–25. isbn:9781450371216 https://doi.org/10.1145/3377811.3380437
[23]
Xianhao Jin and Francisco Servant. 2022. HybridCISave: A Combined Build and Test Selection Approach in Continuous Integration. ACM Trans. Softw. Eng. Methodol., dec, issn:1049-331X https://doi.org/10.1145/3576038 Just Accepted
[24]
Xianhao Jin and Francisco Servant. 2022. Which Builds Are Really Safe to Skip? Maximizing Failure Observation for Build Selection in Continuous Integration. J. Syst. Softw., 188, C (2022), jun, 18 pages. issn:0164-1212 https://doi.org/10.1016/j.jss.2022.111292
[25]
Changki Lee and Gary Geunbae Lee. 2006. Information gain and divergence-based feature selection for machine learning-based text categorization. Information Processing & Management, 42, 1 (2006), 155–165. issn:0306-4573 https://doi.org/10.1016/j.ipm.2004.08.006 Formal Methods for Information Retrieval
[26]
Marko Leppänen, Simo Mäkinen, Max Pagels, Veli-Pekka Eloranta, Juha Itkonen, Mika V. Mäntylä, and Tomi Männistö. 2015. The highways and country roads to continuous deployment. IEEE Software, 32, 2 (2015), 64–72. https://doi.org/10.1109/MS.2015.50
[27]
Jie Lu, Anjin Liu, Fan Dong, Feng Gu, Joao Gama, and Guangquan Zhang. 2018. Learning under concept drift: A review. IEEE Transactions on Knowledge and Data Engineering, 31, 12 (2018), 2346–2363.
[28]
Shane McIntosh, Bram Adams, Thanh H.D. Nguyen, Yasutaka Kamei, and Ahmed E. Hassan. 2011. An Empirical Study of Build Maintenance Effort. In Proceedings of the 33rd International Conference on Software Engineering (ICSE ’11). Association for Computing Machinery, New York, NY, USA. 141–150. isbn:9781450304450 https://doi.org/10.1145/1985793.1985813
[29]
Atif Memon, Zebao Gao, Bao Nguyen, Sanjeev Dhanda, Eric Nickell, Rob Siemborski, and John Micco. 2017. Taming Google-scale continuous testing. In 2017 IEEE/ACM 39th International Conference on Software Engineering: Software Engineering in Practice Track (ICSE-SEIP). 233–242. https://doi.org/10.1109/ICSE-SEIP.2017.16
[30]
Emerson Murphy-Hill, Thomas Zimmermann, and Nachiappan Nagappan. 2014. Cowboys, Ankle Sprains, and Keepers of Quality: How is Video Game Development Different from Software Development? In Proceedings of the 36th International Conference on Software Engineering (ICSE 2014). Association for Computing Machinery, New York, NY, USA. 1–11. isbn:9781450327565 https://doi.org/10.1145/2568225.2568226
[31]
Mathieu Nayrolles and Abdelwahab Hamou-Lhadj. 2018. CLEVER: Combining Code Metrics with Clone Detection for Just-in-Time Fault Prevention and Resolution in Large Industrial Projects. In 2018 IEEE/ACM 15th International Conference on Mining Software Repositories (MSR). 153–164.
[32]
Ansong Ni and Ming Li. 2017. Cost-Effective Build Outcome Prediction Using Cascaded Classifiers. In 2017 IEEE/ACM 14th International Conference on Mining Software Repositories (MSR). 455–458. https://doi.org/10.1109/MSR.2017.26
[33]
Doriane Olewicki, Mathieu Nayrolles, and Bram Adams. 2022. Towards Language-Independent Brown Build Detection. In Proceedings of the 44th International Conference on Software Engineering (ICSE ’22). Association for Computing Machinery, New York, NY, USA. 2177–2188. isbn:9781450392211 https://doi.org/10.1145/3510003.3510122
[34]
Cong Pan and Michael Pradel. 2021. Continuous Test Suite Failure Prediction. In Proceedings of the 30th ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA 2021). Association for Computing Machinery, New York, NY, USA. 553–565. isbn:9781450384599 https://doi.org/10.1145/3460319.3464840
[35]
Islem Saidani, Ali Ouni, Moataz Chouchen, and Mohamed Wiem Mkaouer. 2021. BF-Detector: An Automated Tool for CI Build Failure Detection. In Proceedings of the 29th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE 2021). Association for Computing Machinery, New York, NY, USA. 1530–1534. isbn:9781450385626 https://doi.org/10.1145/3468264.3473115
[36]
Islem Saidani, Ali Ouni, and Mohamed Wiem Mkaouer. 2022. Improving the Prediction of Continuous Integration Build Failures Using Deep Learning. Automated Software Engg., 29, 1 (2022), may, 61 pages. issn:0928-8910 https://doi.org/10.1007/s10515-021-00319-5
[37]
Gengyi Sun, Mehran Meidani, Sarra Habchi, Mathieu Nayrolles, and Shane McIntosh. 2024. Code Impact Beyond Disciplinary Boundaries: Constructing a Multidisciplinary Dependency Graph and Analyzing Cross-Boundary Impact. In Proc. of the International Conference on Software Engineering (ICSE). https://doi.org/10.1145/3639477.3639726
[38]
Bogdan Vasilescu, Yue Yu, Huaimin Wang, Premkumar Devanbu, and Vladimir Filkov. 2015. Quality and Productivity Outcomes Relating to Continuous Integration in GitHub. In Proceedings of the 2015 10th Joint Meeting on Foundations of Software Engineering (ESEC/FSE 2015). Association for Computing Machinery, New York, NY, USA. 805–816. isbn:9781450336758 https://doi.org/10.1145/2786805.2786850
[39]
Lingming Zhang, Miryung Kim, and Sarfraz Khurshid. 2012. FaultTracer: A Change Impact and Regression Fault Analysis Tool for Evolving Java Programs. In Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering (FSE ’12). Association for Computing Machinery, New York, NY, USA. Article 40, 4 pages. isbn:9781450316149 https://doi.org/10.1145/2393596.2393642
[40]
Thomas Zimmermann and Nachiappan Nagappan. 2007. Predicting Subsystem Failures using Dependency Graph Complexities. In The 18th IEEE International Symposium on Software Reliability (ISSRE ’07). 227–236. https://doi.org/10.1109/ISSRE.2007.19
[41]
Manuela Züger and Thomas Fritz. 2015. Interruptibility of Software Developers and Its Prediction Using Psycho-Physiological Sensors. In Proceedings of the 33rd Annual ACM Conference on Human Factors in Computing Systems (CHI ’15). Association for Computing Machinery, New York, NY, USA. 2981–2990. isbn:9781450331456 https://doi.org/10.1145/2702123.2702593

Cited By

View all
  • (2024)Developer-Applied Accelerations in Continuous Integration: A Detection Approach and Catalog of PatternsProceedings of the 39th IEEE/ACM International Conference on Automated Software Engineering10.1145/3691620.3695533(1655-1666)Online publication date: 27-Oct-2024

Recommendations

Comments

Information & Contributors

Information

Published In

cover image Proceedings of the ACM on Software Engineering
Proceedings of the ACM on Software Engineering  Volume 1, Issue FSE
July 2024
2770 pages
EISSN:2994-970X
DOI:10.1145/3554322
Issue’s Table of Contents
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs International 4.0 License.

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 12 July 2024
Published in PACMSE Volume 1, Issue FSE

Badges

Author Tags

  1. build outcome prediction
  2. continuous integration
  3. maintenance cost
  4. mining software repositories

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)139
  • Downloads (Last 6 weeks)57
Reflects downloads up to 10 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Developer-Applied Accelerations in Continuous Integration: A Detection Approach and Catalog of PatternsProceedings of the 39th IEEE/ACM International Conference on Automated Software Engineering10.1145/3691620.3695533(1655-1666)Online publication date: 27-Oct-2024

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Get Access

Login options

Full Access

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media