Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/3422392.3422474acmotherconferencesArticle/Chapter ViewAbstractPublication PagessbesConference Proceedingsconference-collections
research-article

Analyzing Continuous Integration Bad Practices in Closed-Source Projects: An Initial Study

Published: 21 December 2020 Publication History

Abstract

Continuous integration (CI) is a process widely used in projects of different types and sizes, generally aimed at improving development and also ensuring the quality of the software. However, some bad practices can mitigate or invalidate the beneficial effects of CI. In this context, we present an initial study to analyze CI bad practices in two closed-source projects. The study had as main research questions: (i) the frequency of CI bad practices in projects, (ii) the time that builds failures remain unresolved in projects, and (iii) the effects of CI bad practices on software health from the perspective of developers and project managers. For this, we carried out a mapping of the existence of bad practices through a questionnaire directed to the projects team. Also, it was realized the analysis of the pipeline history of the projects. Our findings indicate that the most common CI bad practices are related to improper management of the CI repository, and defective builds usually take a long time to fix. Besides, we found that the difficulties resulting from CI bad practices promote an increase in the development cost and reduction of software quality assurance.

References

[1]
Moritz Beller, Georgios Gousios, and Andy Zaidman. 2017. Oops, my tests broke the build: An explorative analysis of Travis CI with GitHub. In 2017 IEEE/ACM 14th International Conference on Mining Software Repositories (MSR). IEEE.
[2]
FP Brooks. 1978. The Mythical Man-Month: Essays on Softw. 1st.
[3]
John Downs, John Hosking, and Beryl Plimmer. 2010. Status communication in agile software teams: A case study. In 2010 Fifth International Conference on Software Engineering Advances. IEEE.
[4]
PM Duvall. 2018. Continuous Delivery Patterns and AntiPatterns in the Software LifeCycle. WWW], Available (accessed on 12.7. 2020): https://dzone.com/refcardz/continuous-delivery-patterns (2018).
[5]
Paul M Duvall. 2010. Continuous Integration: Patterns and Anti-Patterns. DZone, Incorporated.
[6]
Wagner Felidré, Leonardo Furtado, Daniel A da Costa, Bruno Cartaxo, and Gustavo Pinto. 2019. Continuous Integration Theater. In 2019 ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM).
[7]
Martin Fowler. 2018. Refactoring: improving the design of existing code. Addison-Wesley Professional.
[8]
K. Gallaba and S. McIntosh. 2020. Use and Misuse of Continuous Integration Features: An Empirical Study of Projects That (Mis)Use Travis CI. IEEE Transactions on Software Engineering (2020).
[9]
Taher Ahmed Ghaleb, Daniel Alencar Da Costa, and Ying Zou. 2019. An empirical study of the long duration of continuous integration builds. Empirical Software Engineering (2019).
[10]
David Goodman and Michael Elbaz. 2008. " It's Not the Pants, it's the People in the Pants" Learnings from the Gap Agile Transformation What Worked, How We Did it, and What Still Puzzles Us. In Agile 2008 Conference. IEEE.
[11]
Ade Miller. 2008. A hundred days of continuous integration. In Agile 2008 conference. IEEE.
[12]
Gustavo Pinto, Fernando Castor, Rodrigo Bonifacio, and Marcel Rebouças. 2018. Work practices and challenges in continuous integration: A survey with Travis CI users. Software: Practice and Experience (2018).
[13]
Marcel Rebouças, Renato O Santos, Gustavo Pinto, and Fernando Castor. 2017. How does contributors' involvement influence the build status of an open-source software project?. In 2017 IEEE/ACM 14th International Conference on Mining Software Repositories (MSR).
[14]
Mojtaba Shahin, Muhammad Ali Babar, and Liming Zhu. 2017. Continuous integration, delivery and deployment: a systematic review on approaches, tools, challenges and practices. IEEE Access (2017).
[15]
Daniel Ståhl and Jan Bosch. 2014. Modeling continuous integration practice differences in industry software development. Journal of Systems and Software (2014).
[16]
Daniel Ståhl, Torvald Mårtensson, and Jan Bosch. 2017. The continuity of continuous integration: Correlations and consequences. Journal of Systems and Software (2017).
[17]
Anderson Uchôa, Caio Barbosa, Willian Oizumi, Publio Blenílio, Rafael Lima, Alessandro Garcia, and Carla Bezerra. 2020. How Does Modern Code Review Impact Software Design Degradation? An In-depth Empirical Study. In 36th ICSME.
[18]
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.
[19]
Carmine Vassallo, Fabio Palomba, Alberto Bacchelli, and Harald C Gall. 2018. Continuous code quality: are we (really) doing that?. In Proceedings of the 33rd ACM/IEEE International Conference on Automated Software Engineering.
[20]
C. Vassallo, S. Proksch, H. C. Gall, and M. Di Penta. 2019. Automated Reporting of Anti-Patterns and Decay in Continuous Integration. In 2019 IEEE/ACM 41st International Conference on Software Engineering (ICSE). 105--115.
[21]
Claes Wohlin, Per Runeson, Martin Höst, Magnus C Ohlsson, Björn Regnell, and Anders Wesslén. 2012. Experimentation in software engineering. Springer Science & Business Media.
[22]
Fiorella Zampetti, Carmine Vassallo, Sebastiano Panichella, Gerardo Canfora, Harald Gall, and Massimiliano Di Penta. 2020. An empirical characterization of bad practices in continuous integration. Empirical Software Engineering (2020).

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
SBES '20: Proceedings of the XXXIV Brazilian Symposium on Software Engineering
October 2020
901 pages
ISBN:9781450387538
DOI:10.1145/3422392
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

In-Cooperation

  • SBC: Brazilian Computer Society

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 21 December 2020

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. bad practices
  2. continuous integration
  3. software quality

Qualifiers

  • Research-article
  • Research
  • Refereed limited

Conference

SBES '20

Acceptance Rates

Overall Acceptance Rate 147 of 427 submissions, 34%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 123
    Total Downloads
  • Downloads (Last 12 months)14
  • Downloads (Last 6 weeks)2
Reflects downloads up to 12 Nov 2024

Other Metrics

Citations

Cited By

View all

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media