skip to main content
Skip header Section
Continuous integration: improving software quality and reducing riskJune 2007
Publisher:
  • Addison-Wesley Professional
ISBN:978-0-321-33638-5
Published:29 June 2007
Pages:
336
Skip Bibliometrics Section
Bibliometrics
Skip Abstract Section
Abstract

For any software developer who has spent days in “integration hell,” cobbling together myriad software components, Continuous Integration: Improving Software Quality and Reducing Risk illustrates how to transform integration from a necessary evil into an everyday part of the development process. The key, as the authors show, is to integrate regularly and often using continuous integration (CI) practices and techniques.The authors first examine the concept of CI and its practices from the ground up and then move on to explore other effective processes performed by CI systems, such as database integration, testing, inspection, deployment, and feedback. Through more than forty CI-related practices using application examples in different languages, readers learn that CI leads to more rapid software development, produces deployable software at every step in the development lifecycle, and reduces the time between defect introduction and detection, saving time and lowering costs. With successful implementation of CI, developers reduce risks and repetitive manual processes, and teams receive better project visibility.The book covers How to make integration a “non-event” on your software development projects How to reduce the amount of repetitive processes you perform when building your software Practices and techniques for using CI effectively with your teams Reducing the risks of late defect discovery, low-quality software, lack of visibility, and lack of deployable software Assessments of different CI servers and related tools on the market The book's companion Web site, www.integratebutton.com, provides updates and code examples.

Cited By

  1. ACM
    Koschel A, Tran K, Grunewald A, Lange M, Pakosch A and Astrova I Comparing Modern Build Automation Tools for an Insurance Company Proceedings of the 38th ACM/SIGAPP Symposium on Applied Computing, (1650-1655)
  2. ACM
    Santos J, Alencar da Costa D and Kulesza U Investigating the Impact of Continuous Integration Practices on the Productivity and Quality of Open-Source Projects Proceedings of the 16th ACM / IEEE International Symposium on Empirical Software Engineering and Measurement, (137-147)
  3. ACM
    Kudrjavets G, Kumar A, Nagappan N and Rastogi A Mining code review data to understand waiting times between acceptance and merging Proceedings of the 19th International Conference on Mining Software Repositories, (579-590)
  4. ACM
    Zampetti F, Nardone V and Di Penta M Problems and solutions in applying continuous integration and delivery to 20 open-source cyber-physical systems Proceedings of the 19th International Conference on Mining Software Repositories, (646-657)
  5. ACM
    Endres M, Reiter P, Forrest S and Weimer W What can program repair learn from code review? Proceedings of the Third International Workshop on Automated Program Repair, (33-34)
  6. ACM
    Gallaba K, Lamothe M and McIntosh S Lessons from eight years of operational data from a continuous integration service Proceedings of the 44th International Conference on Software Engineering, (1330-1342)
  7. Wang K, Rall D, Tener G, Gullapalli V, Huang X and Gad A Smart build targets batching service at Google Proceedings of the 43rd International Conference on Software Engineering: Software Engineering in Practice, (160-169)
  8. ACM
    Häkkinen J, Ihantola P, Luukkainen M, Leinonen A and Leinonen J Persistence of Time Management Behavior of Students and Its Relationship with Performance in Software Projects Proceedings of the 17th ACM Conference on International Computing Education Research, (92-100)
  9. ACM
    Pang C, Hindle A and Barbosa D Understanding DevOps education with Grounded theory Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering: Companion Proceedings, (260-261)
  10. ACM
    Pantiuchina J, Zampetti F, Scalabrino S, Piantadosi V, Oliveto R, Bavota G and Penta M (2020). Why Developers Refactor Source Code, ACM Transactions on Software Engineering and Methodology, 29:4, (1-30), Online publication date: 6-Oct-2020.
  11. ACM
    Pang C, Hindle A and Barbosa D Understanding devops education with grounded theory Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering: Software Engineering Education and Training, (107-118)
  12. ACM
    Brandt C, Panichella A, Zaidman A and Beller M LogChunks Proceedings of the 17th International Conference on Mining Software Repositories, (583-587)
  13. ACM
    Vassallo C, Proksch S, Jancso A, Gall H and Di Penta M Configuration smells in continuous delivery pipelines: a linter and a six-month study on GitLab Proceedings of the 28th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering, (327-337)
  14. ACM
    Wen C, Zhang Y, He X and Meng N Inferring and applying def-use like configuration couplings in deployment descriptors Proceedings of the 35th IEEE/ACM International Conference on Automated Software Engineering, (672-683)
  15. ACM
    Karlaš B, Interlandi M, Renggli C, Wu W, Zhang C, Mukunthu Iyappan Babu D, Edwards J, Lauren C, Xu A and Weimer M Building Continuous Integration Services for Machine Learning Proceedings of the 26th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining, (2407-2415)
  16. Torres-Arias S, Afzali H, Kuppusamy T, Curtmola R and Cappos J In-toto Proceedings of the 28th USENIX Conference on Security Symposium, (1393-1410)
  17. Catolino G, Di Nucci D and Ferrucci F Cross-project just-in-time bug prediction for mobile apps Proceedings of the 6th International Conference on Mobile Software Engineering and Systems, (99-110)
  18. Ståhl D, Martini A and Mårtensson T Big bangs and small pops Proceedings of the 41st International Conference on Software Engineering: Software Engineering in Practice, (81-90)
  19. Viggiato M, Oliveira J, Figueiredo E, Jamshidi P and Kästner C Understanding similarities and differences in software development practices across domains Proceedings of the 14th International Conference on Global Software Engineering, (74-84)
  20. Vassallo C Enabling continuous improvement of a continuous integration process Proceedings of the 34th IEEE/ACM International Conference on Automated Software Engineering, (1246-1249)
  21. Hassan F Tackling build failures in continuous integration Proceedings of the 34th IEEE/ACM International Conference on Automated Software Engineering, (1242-1245)
  22. Serra D, Grano G, Palomba F, Ferrucci F, Gall H and Bacchelli A On the effectiveness of manual and automatic unit test generation Proceedings of the 16th International Conference on Mining Software Repositories, (121-125)
  23. Paikari E, Choi J, Kim S, Baek S, Kim M, Lee S, Han C, Kim Y, Ahn K, Cheong C and van der Hoek A A chatbot for conflict detection and resolution Proceedings of the 1st International Workshop on Bots in Software Engineering, (29-33)
  24. Pradal C, Cohen-Boulakia S, Valduriez P, Shasha D, Hinsen K and Turk M (2019). VersionClimber: Version Upgrades Without Tears, Computing in Science and Engineering, 21:5, (87-93), Online publication date: 1-Sep-2019.
  25. Meixner K, Winkler D and Biffl S Supporting Domain Experts by using Model-Based Equivalence Class Partitioning for Efficient Test Data Generation 2019 24th IEEE International Conference on Emerging Technologies and Factory Automation (ETFA), (134-141)
  26. ACM
    Zhang C, Chen B, Chen L, Peng X and Zhao W A large-scale empirical study of compiler errors in continuous integration Proceedings of the 2019 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering, (176-187)
  27. Kowzan M and Pietrzak P Continuous integration in validation of modern, complex, embedded systems Proceedings of the International Conference on Software and System Processes, (160-164)
  28. Vassallo C, Proksch S, Gall H and Di Penta M Automated reporting of anti-patterns and decay in continuous integration Proceedings of the 41st International Conference on Software Engineering, (105-115)
  29. ACM
    Meixner K, Winkler D and Biffl S Towards Combined Process & Tool Variability Management in Software Testing Proceedings of the 13th International Workshop on Variability Modelling of Software-Intensive Systems, (1-6)
  30. Ghaleb T, Da Costa D and Zou Y (2019). An empirical study of the long duration of continuous integration builds, Empirical Software Engineering, 24:4, (2102-2139), Online publication date: 1-Aug-2019.
  31. ACM
    Wang Y, Mäntylä M, Eldh S, Markkula J, Wiklund K, Kairi T, Raulamo-Jurvanen P and Haukinen A A Self-assessment Instrument for Assessing Test Automation Maturity Proceedings of the 23rd International Conference on Evaluation and Assessment in Software Engineering, (145-154)
  32. ACM
    Rahman A, Agrawal A, Krishna R and Sobran A Characterizing the influence of continuous integration: empirical results from 250+ open source and proprietary projects Proceedings of the 4th ACM SIGSOFT International Workshop on Software Analytics, (8-14)
  33. ACM
    Greising L, Bartel A and Hagel G Introducing a Deployment Pipeline for Continuous Delivery in a Software Architecture Course Proceedings of the 3rd European Conference of Software Engineering Education, (102-107)
  34. ACM
    de Oliveira Neto F, Ahmad A, Leifler O, Sandahl K and Enoiu E Improving continuous integration with similarity-based test case selection Proceedings of the 13th International Workshop on Automation of Software Test, (39-45)
  35. ACM
    Bernardo J, da Costa D and Kulesza U Studying the impact of adopting continuous integration on the delivery time of pull requests Proceedings of the 15th International Conference on Mining Software Repositories, (131-141)
  36. Vucnik M, Solc T, Gregorc U, Hrovat A, Bregar K, Smolnikar M, Mohorcic M and Fortuna C (2018). Continuous Integration in Wireless Technology Development, IEEE Communications Magazine, 56:12, (74-81), Online publication date: 1-Dec-2018.
  37. ACM
    Fazzolino R, de Faria H, Amaral L, Canedo E, Rodrigues G and Bonifácio R Assessing Agile Testing Practices for Enterprise Systems Proceedings of the III Brazilian Symposium on Systematic and Automated Software Testing, (29-38)
  38. ACM
    Vassallo C, Proksch S, Zemp T and Gall H Un-break my build Proceedings of the 26th Conference on Program Comprehension, (41-51)
  39. ACM
    Torchiano M and Bruno G Integrating software engineering key practices into an OOP massive in-classroom course Proceedings of the 2nd International Workshop on Software Engineering Education for Millennials, (64-71)
  40. ACM
    Spinellis D (2018). Modern debugging, Communications of the ACM, 61:11, (124-134), Online publication date: 26-Oct-2018.
  41. ACM
    Ni A and Li M ACONA Proceedings of the 40th International Conference on Software Engineering: Companion Proceeedings, (366-367)
  42. ACM
    Vassallo C, Palomba F, Bacchelli A and Gall H Continuous code quality: are we (really) doing that? Proceedings of the 33rd ACM/IEEE International Conference on Automated Software Engineering, (790-795)
  43. (2017). On tackling quality threats for the assessment of measurement programs, Science of Computer Programming, 135:C, (45-74), Online publication date: 15-Feb-2017.
  44. Karvonen T, Behutiye W, Oivo M and Kuvaja P (2017). Systematic literature review on the impacts of agile release engineering practices, Information and Software Technology, 86:C, (87-100), Online publication date: 1-Jun-2017.
  45. ACM
    Rubasinghe I, Meedeniya D and Perera I Towards traceability management in continuous integration with SAT-analyzer Proceedings of the 3rd International Conference on Communication and Information Processing, (77-81)
  46. Beller M, Gousios G and Zaidman A Oops, my tests broke the build Proceedings of the 14th International Conference on Mining Software Repositories, (356-367)
  47. Kevic K, Murphy B, Williams L and Beckmann J Characterizing experimentation in continuous deployment Proceedings of the 39th International Conference on Software Engineering: Software Engineering in Practice Track, (123-132)
  48. Pinto G, Rebouças M and Castor F Inadequate testing, time pressure, and (over) confidence Proceedings of the 10th International Workshop on Cooperative and Human Aspects of Software Engineering, (74-77)
  49. ACM
    Spieker H, Gotlieb A, Marijan D and Mossige M Reinforcement learning for automatic test case prioritization and selection in continuous integration Proceedings of the 26th ACM SIGSOFT International Symposium on Software Testing and Analysis, (12-22)
  50. Zhao Y, Serebrenik A, Zhou Y, Filkov V and Vasilescu B The impact of continuous integration on other software development practices: a large-scale empirical study Proceedings of the 32nd IEEE/ACM International Conference on Automated Software Engineering, (60-71)
  51. ACM
    Rahman M, Querel L, Rigby P and Adams B Feature toggles Proceedings of the 13th International Conference on Mining Software Repositories, (201-211)
  52. Johnson P and Ekstedt M (2016). The Tarpit - A general theory of software engineering, Information and Software Technology, 70:C, (181-203), Online publication date: 1-Feb-2016.
  53. Staron M and Meding W (2016). MeSRAM - A method for assessing robustness of measurement programs in large software development organizations and its industrial evaluation, Journal of Systems and Software, 113:C, (76-100), Online publication date: 1-Mar-2016.
  54. ACM
    Niephaus F, Henrichs D, Taeumel M, Pape T, Felgentreff T and Hirschfeld R smalltalkCI Proceedings of the 11th edition of the International Workshop on Smalltalk Technologies, (1-9)
  55. ACM
    Fagerström M, Ismail E, Liebel G, Guliani R, Larsson F, Nordling K, Knauss E and Pelliccione P Verdict machinery: on the need to automatically make sense of test results Proceedings of the 25th International Symposium on Software Testing and Analysis, (225-234)
  56. ACM
    Rehmann K, Seo C, Hwang D, Truong B, Boehm A and Lee D (2016). Performance Monitoring in SAP HANA's Continuous Integration Process, ACM SIGMETRICS Performance Evaluation Review, 43:4, (43-52), Online publication date: 25-Feb-2016.
  57. ACM
    Alperowitz L, Dzvonyar D and Bruegge B Metrics in Agile project courses Proceedings of the 38th International Conference on Software Engineering Companion, (323-326)
  58. ACM
    Laghari G, Murgia A and Demeyer S Fine-tuning spectrum based fault localisation with frequent method item sets Proceedings of the 31st IEEE/ACM International Conference on Automated Software Engineering, (274-285)
  59. ACM
    Tufano M, Palomba F, Bavota G, Di Penta M, Oliveto R, De Lucia A and Poshyvanyk D An empirical investigation into the nature of test smells Proceedings of the 31st IEEE/ACM International Conference on Automated Software Engineering, (4-15)
  60. Goldstein M and Segall I Automatic and continuous software architecture validation Proceedings of the 37th International Conference on Software Engineering - Volume 2, (59-68)
  61. Knauss E, Staron M, Meding W, Söder O, Nilsson A and Castell M Supporting continuous integration by code-churn based test selection Proceedings of the Second International Workshop on Rapid Continuous Software Engineering, (19-25)
  62. Klepper S, Krusche S, Peters S, Bruegge B and Alperowitz L Introducing continuous delivery of mobile apps in a corporate environment Proceedings of the Second International Workshop on Rapid Continuous Software Engineering, (5-11)
  63. Yu Y, Wang H, Filkov V, Devanbu P and Vasilescu B Wait for it Proceedings of the 12th Working Conference on Mining Software Repositories, (367-371)
  64. Vakilian M, Sauciuc R, Morgenthaler J and Mirrokni V Automated decomposition of build targets Proceedings of the 37th International Conference on Software Engineering - Volume 1, (123-133)
  65. ACM
    Tang C, Kooburat T, Venkatachalam P, Chander A, Wen Z, Narayanan A, Dowell P and Karl R Holistic configuration management at Facebook Proceedings of the 25th Symposium on Operating Systems Principles, (328-343)
  66. ACM
    Laghari G, Murgia A and Demeyer S Localising faults in test execution traces Proceedings of the 14th International Workshop on Principles of Software Evolution, (1-8)
  67. ACM
    Vöst S Vehicle level continuous integration in the automotive industry Proceedings of the 2015 10th Joint Meeting on Foundations of Software Engineering, (1026-1029)
  68. ACM
    Vasilescu B, Yu Y, Wang H, Devanbu P and Filkov V Quality and productivity outcomes relating to continuous integration in GitHub Proceedings of the 2015 10th Joint Meeting on Foundations of Software Engineering, (805-816)
  69. ACM
    Clark N, Pullen J and Bashioum C An Experimental Project Course to Prepare Students for Agile Web Application Development Proceedings of the 2015 ACM Conference on Innovation and Technology in Computer Science Education, (81-86)
  70. ACM
    Elbaum S, Rothermel G and Penix J Techniques for improving regression testing in continuous integration development environments Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering, (235-245)
  71. ACM
    Rajlich V Software evolution and maintenance Future of Software Engineering Proceedings, (133-144)
  72. ACM
    Orso A and Rothermel G Software testing: a research travelogue (2000–2014) Future of Software Engineering Proceedings, (117-132)
  73. ACM
    Krusche S and Alperowitz L Introduction of continuous delivery in multi-customer project courses Companion Proceedings of the 36th International Conference on Software Engineering, (335-343)
  74. ACM
    Lier F, Lütkebohle I and Wachsmuth S Towards automated execution and evaluation of simulated prototype HRI experiments Proceedings of the 2014 ACM/IEEE international conference on Human-robot interaction, (230-231)
  75. ACM
    Rempel P, Mäder P, Kuschke T and Cleland-Huang J Mind the gap: assessing the conformance of software traceability to relevant guidelines Proceedings of the 36th International Conference on Software Engineering, (943-954)
  76. ACM
    Di Cosmo R, Lienhardt M, Treinen R, Zacchiroli S, Zwolakowski J, Eiche A and Agahi A Automated synthesis and deployment of cloud applications Proceedings of the 29th ACM/IEEE International Conference on Automated Software Engineering, (211-222)
  77. Lier F, Schulz S and Lütkebohle I Continuous integration for iterative validation of simulated robot models Proceedings of the Third international conference on Simulation, Modeling, and Programming for Autonomous Robots, (101-112)
  78. Winkler D, Schmidt M, Ramler R and Biffl S Improving unfamiliar code with unit tests Proceedings of the 13th international conference on Product-Focused Software Process Improvement, (290-304)
  79. ACM
    Luukkainen M, Vihavainen A and Vikberg T Three years of design-based research to reform a software engineering curriculum Proceedings of the 13th annual conference on Information technology education, (209-214)
  80. ACM
    Dösinger S, Mordinyi R and Biffl S Communicating continuous integration servers for increasing effectiveness of automated testing Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering, (374-377)
  81. ACM
    Hsieh C, Cheng Y and Chen C Emerging patterns of continuous integration for cross-platform software development Proceedings of the 2nd Asian Conference on Pattern Languages of Programs, (1-9)
  82. ACM
    Baumeister J and Reutelshoefer J Developing knowledge systems with continuous integration Proceedings of the 11th International Conference on Knowledge Management and Knowledge Technologies, (1-4)
  83. ACM
    Zampetti F, Tamburri D, Panichella S, Panichella A, Canfora G and Penta M Continuous Integration and Delivery Practices for Cyber-Physical Systems: An Interview-Based Study, ACM Transactions on Software Engineering and Methodology, 0:0
Contributors

Recommendations