• No results found

University of Groningen Continuous integration and delivery applied to large-scale software-intensive embedded systems Martensson, Torvald

N/A
N/A
Protected

Academic year: 2021

Share "University of Groningen Continuous integration and delivery applied to large-scale software-intensive embedded systems Martensson, Torvald"

Copied!
10
0
0

Bezig met laden.... (Bekijk nu de volledige tekst)

Hele tekst

(1)

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.

(2)

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

(3)

Supervisor

Prof. J. Bosch

Co-supervisor

Prof. H. Holmström Olsson

Assessment Committee

Prof. P. Avgeriou

Prof. I. Crnkovic

Prof. T. Mikkonen

(4)

Continuous Integration and Delivery

Applied to Large-Scale Software-Intensive

Embedded Systems

(5)

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

(6)

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.

(7)

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.

(8)

5

Table of Contents

Abstract ... 3 Acknowledgements ... 4 Table of Contents ... 5 Chapter 1: Introduction ... 8

1.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

(9)

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

(10)

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

Referenties

GERELATEERDE DOCUMENTEN

continuous integration behaviors of developers in large-scale industry projects, and how do the developers look at pros and cons regarding committing to branch or directly

“iterative methods” and “development practices”, but which can not be classified as strictly Agile (interestingly enough, not a single common phrase made reference to

An overview of the research method and how the case study companies were included in the different parts of the study are shown in Figure 29: The

In order to identify which types of test activities that best support these stakeholder interests we conducted a series of interviews (presented in Section 9.5) with

· Scenario-based testing with an end-user representative as part of the test team Exploratory testing as an activity in the continuous integration and delivery pipeline:

As described in Section 1.4.5, research question RQ4 (“How should the continuous integration and delivery pipeline be designed for large-scale

End to end automation on cloud with build pipeline: the case for devops in insurance industry, continuous integration, continuous testing, and contin- uous delivery..

Deze bedrijven kunnen ook gebruik maken van de voordelen van continue integratie en continue levering, maar alleen als ze kunnen worden aangepast aan uitdagingen