University of Groningen
Continuous integration and delivery applied to large-scale software-intensive embedded
systems
Martensson, Torvald
IMPORTANT NOTE: You are advised to consult the publisher's version (publisher's PDF) if you wish to cite from it. Please check the document version below.
Document Version
Publisher's PDF, also known as Version of record
Publication date: 2019
Link to publication in University of Groningen/UMCG research database
Citation for published version (APA):
Martensson, T. (2019). Continuous integration and delivery applied to large-scale software-intensive embedded systems. University of Groningen.
Copyright
Other than for strictly personal use, it is not permitted to download or to forward/distribute the text or part of it without the consent of the author(s) and/or copyright holder(s), unless the work is under an open content license (like Creative Commons).
Take-down policy
If you believe that this document breaches copyright please contact us providing details, and we will remove access to the work immediately and investigate your claim.
Downloaded from the University of Groningen/UMCG research database (Pure): http://www.rug.nl/research/portal. For technical reasons the number of authors shown on this cover page is limited to 10 maximum.
Continuous Integration
and Delivery Applied to
Large-Scale Software-Intensive
Embedded Systems
PhD thesis
to obtain the degree of PhD at the
University of Groningen
on the authority of the
Rector Magnificus Prof. E. Sterken
and in accordance with
the decision by the College of Deans.
This thesis will be defended in public on
Monday 8 April 2019 at 11.00 hours
by
Per Torvald Mårtensson
born on 31 October 1972
in Hammarby, Sweden
Supervisor
Prof. J. Bosch
Co-supervisor
Prof. H. Holmström Olsson
Assessment Committee
Prof. P. Avgeriou
Prof. I. Crnkovic
Prof. T. Mikkonen
Continuous Integration and Delivery
Applied to Large-Scale Software-Intensive
Embedded Systems
2
ISBN 978-94-034-1399-0 (printed version) ISBN 978-94-034-1398-3 (electronic version)
Printed in Linköping, Sweden Copyright © 2019 Torvald Mårtensson
3
Abstract
Software development has become one of the world’s most important technologies. In parallel with the emergence of software development itself, development methodologies have evolved from the stage-gated waterfall model to more adaptive development frameworks such as XP and Scrum. As a part of XP and other agile methodologies, continuous integration and continuous delivery were introduced to mitigate problems with a long and unpredictable integration process at the final stage of a project.
Companies that develop large-scale software-intensive embedded systems develop software systems combined with electronic and mechanical systems. These companies can also utilize the benefits from continuous integration and continuous delivery, but only if continuous integration and continuous delivery could be adapted to challenges and limitations introduced by large-scale and by proximity to hardware. In response to this, this thesis presents solutions for how continuous integration and delivery should be applied to large-scale software-intensive embedded systems.
The results from the research studies presented in this thesis are based on data from eight case study companies. The studies are based on quantitative data (in one case from 2,000 engineers) and on qualitative data from interviews and workshops (six studies including more than 20 participants). The studies also include three systematic literature reviews and a systematic mapping study, in total covering 191 publications.
The first part of this thesis identifies the problems that must be taken into account when applying continuous integration to large-scale software-intensive embedded systems. This is followed by definitions and interpretations of continuous integration and continuous delivery applicable to development of large-scale software systems. Finally, the key contributions of the research presented in this thesis are two models and a method, which will help organizations struggling with challenges related to scale and proximity to hardware to better implementations of continuous integration and continuous delivery. These contributions are valuable for both researchers and practitioners, as they provide a systematic approach rather than making changes blindly and hoping for the best. The key contributions of this thesis are:
· The EMFIS model, which allows companies to explicate a representation of the organization’s current situation regarding twelve continuous integration impediments, and visualizes what the organization must focus on in order to enable more frequent integration of software.
· The TAS model, which shows how the continuous integration and delivery pipeline can be designed to include test activities that support four stakeholder interests, including unit/component tests and system tests, automated testing and manual testing, and tests executed in simulated environments and on real hardware. · A test method for exploratory testing of large-scale systems, which incorporates
exploratory testing as a test activity in the continuous integration and delivery pipeline. The test method is designed to complement automated testing, and to provide different feedback and insights than the results from an automated test case.
4
Acknowledgements
My interest in writing my first a research paper came from curiosity – I wanted to learn more. This evolved to a series of papers where I have had the opportunity to compare several case study companies, and identify the mechanisms in play. All of this has to a great extent been possible due to that I met Jan Bosch.
Jan has, as my promotor and mentor, always been available for questions and advice, and our bi-weekly “check-in” meetings have often been one of the highlights of my week. I really appreciate Jan’s honesty, his undivided support and his ability to be completely present and focused in a conversation – no matter where he is. Jan also introduced me to Daniel Ståhl, with whom I have done almost all my research projects. I am very grateful that I have the opportunity to work with Daniel, as I believe we complement each other in different ways, and at the same time tend to boost each other’s productivity.
I have been privileged to pursue my research in parallel with my work at Saab AB – primarily revolving around systems integration and system testing of large-scale software systems. The research projects have been directly connected to my day-job at Saab, but Saab has also supported my attendance to conferences including all travel costs. I would like to especially thank Henric Andersson, Erik Herzog, Malin Holmgren Adolfsson and Tommy Linderstam for their help and their support.
I am grateful to all people, both researchers and practitioners, who have generously shared their knowledge and experiences with me at conferences and other meetings. I would like to particularly thank Baldvin Gislason Bern, Michael Felderer, Gert Frost, Antonio Martini, Kristian Sandahl, Anna Sandberg and Peter Thorngren.
Warm thanks also to my co-promotor Helena Holmström Olsson, who has always been supportive and encouraging, in particular during the ideation of the EMFIS model and during the work with this thesis. I would also like to thank the talented individuals I have had the pleasure to work with as co-authors: Pär Hammarström and Daniel Ståhl. Last but certainly not least, I wish to thank my family: my wife and my three children. Research and other types of work are inspiring and sometimes close to addictive. But at the same time, those things would be worth very little if I did not have you in my life. Thank you for our great vacations, our Friday night movies, our weekday dinners, and everything else.
5
Table of Contents
Abstract ... 3 Acknowledgements ... 4 Table of Contents ... 5 Chapter 1: Introduction ... 81.1 Towards Continuous Integration and Delivery ... 8
1.2 Related Work ... 10
1.3 Problem Statement and Research Questions... 12
1.4 Thesis Overview ... 13
1.5 Personal Contribution ... 16
1.6 Related Publications... 17
Chapter 2: Research Method ... 18
2.1 Research Process and Methodology ... 18
2.2 Research Techniques... 20
2.3 Applicability ... 25
2.4 Summary ... 27
Chapter 3: Continuous Integration Applied to Software-Intensive Embedded Systems – Problems and Experiences ... 28
3.1 Introduction ... 28
3.2 Case Study Companies ... 29
3.3 Problems and Experiences ... 30
3.4 Analysis... 33
3.5 Conclusion... 36
Chapter 4: The Continuity of Continuous Integration: Correlations and Consequences ... 38 4.1 Introduction ... 38 4.2 Related Work ... 41 4.3 Research Method ... 42 4.4 Metrics Identification ... 43 4.5 Results ... 47 4.6 Analysis... 49
6
4.7 Validation ... 56
4.8 Threats to Validity ... 60
4.9 Conclusion... 62
Chapter 5: Continuous Integration Is Not About Build Systems ... 71
5.1 Introduction ... 71
5.2 Research Method ... 72
5.3 Working with the Old Build System ... 73
5.4 Working with the New Build System... 76
5.5 Threats to Validity ... 85
5.6 Conclusion... 86
Chapter 6: Continuous Integration Behaviors in Large-Scale Industry Projects ... 88
6.1 Introduction ... 88
6.2 Research Method ... 89
6.3 Analysis of Interview Results ... 91
6.4 Threats to Validity ... 97
6.5 Conclusion... 98
Chapter 7: Continuous Practices and DevOps: Beyond the Buzz, What Does It All Mean? ... 100
7.1 Introduction ... 100
7.2 Problem Statement ... 101
7.3 Research Method ... 102
7.4 Results ... 105
7.5 Analysis and Discussion... 109
7.6 Discussion of Validity ... 113
7.7 Conclusion... 114
Chapter 8: Enable More Frequent Integration of Software in Industry Projects... 116
8.1 Introduction ... 116
8.2 Research Method ... 118
8.3 Reviewing Literature... 121
8.4 Interviews on Continuous Integration Impediments ... 124
8.5 The EMFIS Model ... 130
7
8.7 Threats to Validity ... 139
8.8 Conclusion... 142
Chapter 9: Test Activities in the Continuous Integration and Delivery Pipeline ... 148
9.1 Introduction ... 148
9.2 Research Method ... 149
9.3 Reviewing Literature... 154
9.4 Identifying Stakeholders for Test Activities ... 157
9.5 Identifying Test Activities for Each Stakeholder ... 163
9.6 Designing a Pipeline for All Stakeholders ... 167
9.7 Validation of the Test Activity Stakeholders Model ... 172
9.8 Threats to Validity ... 176
9.9 Conclusion... 179
Chapter 10: Exploratory Testing of Large-Scale Systems – Testing in the Continuous Integration and Delivery Pipeline ... 184
10.1 Introduction ... 184
10.2 Research Method ... 185
10.3 Reviewing Literature... 187
10.4 Exploratory Testing of Large-Scale Systems... 189
10.5 Validation ... 191
10.6 Threats to Validity ... 196
10.7 Conclusion... 197
Chapter 11: Summary and Conclusion ... 199
11.1 Answers to Research Questions ... 199
11.2 Threats to Validity ... 205
11.3 Generalization... 208
11.4 Key Contributions ... 210
11.5 Further Research ... 211
Bibliography ... 212
Academic Summary in Dutch ... 224