SlideShare a Scribd company logo
1 of 22
Download to read offline
An Empirical Analysis of Build Failures in the
Continuous Integration Worfklows
of Java-Based Open-Source Software
Thomas Rausch, Waldemar Hummer, Philipp Leitner*, Stefan Schulte
Distributed Systems Group
Vienna University of Technology, Austria
http://dsg.tuwien.ac.at
* Software Evolution and Architecture Lab
University of Zurich, Switzerland
http://www.ifi.uzh.ch/en/seal.html
2
Continuous Integration
VCS
CI Server Build
Feedback
Logs
Vasilescu et al. (2015).
Quality and Productivity Outcomes Relating to
Continuous Integration in GitHub
“Our main finding is that continuous
integration improves the productivity of project
teams”
Kerzazi et al. (2014).
Why do Automated Builds Break? An Empirical Study
“We [...] quantified the cost of such build
breakage as more than 336.18 man-hours”
3
4
Related Work
5
Understanding Build Failures
What types of errors cause CI build failures?
Which development practices can be
associated with CI build failures?
6
Research Setting
Project Name Description
Apache Storm Distributed Computation
Butterknife Android Dependency Injection
Crate.IO Scalable SQL database
JabRef BibTeX management GUI
jcabi-github Wrapper of GitHub API
Hystrix Latency and fault tolerance library
Presto Distributed SQL query engine
Openmicroscopy Microscopy data environment
RxAndroid RxJava bindings for Android
Sponge API Minecraft plugin API
Spring Boot Java Application Framework
Square OkHttp HTTP+HTTP/2 client for Android
Square Retofit HTTP client for Android
Wordpress-Android WordPress for Android
7
Data Acquisition
a
b
c
d
Topology Mapping
CI build history
Change history
8
Understanding Build Failures
What types of errors cause CI build failures?
Which development practices can be
associated with CI build failures?
9
Error Categorization and Quantification
 Goal
○ Categorization of errors
○ Frequency of occurrence of error types

Approach
○ Systematic exploration of ~54 000 logfiles
○ Categorization scheme based on log message patterns
[INFO] Compiling 67 source files to /home/travis/.../target/classes
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /home/travis/.../redis/RedisAutoConfiguration.java:[143,10] cannot find symbol
[INFO] 1 error
[INFO] Compiling 67 source files to /home/travis/.../target/classes
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /home/travis/.../redis/RedisAutoConfiguration.java:[143,10] cannot find symbol
[INFO] 1 error
[INFO] Compiling 67 source files to /home/travis/.../target/classes
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /home/travis/.../redis/RedisAutoConfiguration.java:[143,10] cannot find symbol
[INFO] 1 error
10
Error Categories
unknown Errors without a clearly identifiable cause 9
itestfailure An automated integration test failed 4
doc Documentation (e.g., JavaDoc) problem 3
license License criteria not met (missing header) 3
compatibility API incompatibility 2
androidsdk Android SDK-related error 1
buildout Error specific to Crate.IO python module 1
Label Description Occurrences
testfailure An automated test failed 12
compile Compilation error 12
git VCS interaction error 12
buildconfig Faulty build config 11
crash Build environment crash or timeout 11
dependency Dependency error 11
quality Coding-rule violation (e.g., Checkstyle) 10
11
Distribution of Common Error Types
Faulty VCS
interaction
Faulty build
configuration Dependency
error
Compilation
error
Coding-rule
violation
Failing test
Crash
40%
30%
20%
10%
0%
12
Distribution of Common Error Types
Apache Storm
Butterknife
Crate.IO
Hystrix
Error
testfailure
compile
git dependency crash
buildconfig quality others
Percentage
JabRef
jcabi-github
Presto
RxAndroid
SpongeAPI
Spring Boot
Square OkHttp
Square Retrofit
0% 25% 50% 75% 100%
13
Understanding Build Failures
What types of errors cause CI build failures?
Which development practices can be
associated with CI build failures?
14
Change Metrics
.java .txt
Changes
 Complexity
○ Churn, number of files, ...

File types
○ README.txt vs.
IntegrationTest.java
 Date and time

Author
○ Experience, commit
frequency, ...
15
Process Metrics
b1
b2
b4
t
b3
a
b
e
c
f
d
g
VCS
commit graph
CI build
information
 Build History
○ Build climate
 Build Type
○ Pull request, merge, ...

Pull Request Scenarios
○ Rebase, squash, ...
16
Statistical Correlation Analysis
 For each project individually
 Non-parametric correlation tests
○ Pearson’s chi-square test
○ Mann—Whitney U test

Calculate effect sizes
○ Cramér’s V
○ Rank-biserial correlation
17
PassedBuild outcome Failed
Failed Passed
Previous build result
Percentageofbuilds
Findings
Build failures mostly occur consecutively.
Phases of build instability perpetuate
failures.
Build failures mostly occur consecutively.
Phases of build instability perpetuate
failures.
Build history
b
b’
18
PassedBuild outcome Failed
Failed Passed
Previous build result
Percentageofbuilds
Findings
Build failures mostly occur consecutively.
Phases of build instability perpetuate
failures.
Build failures mostly occur consecutively.
Phases of build instability perpetuate
failures.
Build history
b
b’
19
Findings
Build failures mostly occur consecutively.
Phases of build instability perpetuate
failures.
Build failures mostly occur consecutively.
Phases of build instability perpetuate
failures.
Build history
No evidence that either history manipula-
tion operations or parallel development
to a PR affect the PR’s build outcome.
No evidence that either history manipula-
tion operations or parallel development
to a PR affect the PR’s build outcome.
Pull request scenarios
20
Findings
Even objectively harmless changes can
break builds. This indicates unwanted
flakiness of tests or the build environment.
Even objectively harmless changes can
break builds. This indicates unwanted
flakiness of tests or the build environment.
Build failures mostly occur consecutively.
Phases of build instability perpetuate
failures.
Build failures mostly occur consecutively.
Phases of build instability perpetuate
failures.
File types
Build history
 577 builds from Spring Boot
 Changelog file change only
 14% original failures
○ 52% test failures
○ 45% environment crash
○ 3% dependency error
No evidence that either history manipula-
tion operations or parallel development
to a PR affect the PR’s build outcome.
No evidence that either history manipula-
tion operations or parallel development
to a PR affect the PR’s build outcome.
Pull request scenarios
21
Summary
 Categorization of error types (beyond failed/errored)
 Quantification of error type occurrence
 Statistical analysis of impact factors
 Uncovered challenges that arise when mining CI data
22
Dipl.-Ing.
Thomas Rausch
Research Assistant
TU Wien
Distributed Systems Group
Argentinierstraße 8/184-1, 1040, Vienna, Austria
T: +43 1 58801 184 838
E: rausch@dsg.tuwien.ac.at
dsg.tuwien.ac.at/staff/trausch

More Related Content

Similar to An Empirical Analysis of Build Failures in the Continuous Integration Workflows of Java-Based Open-Source Software

Noise and Heterogeneity in Historical Build Data: An Empirical Study of Travi...
Noise and Heterogeneity in Historical Build Data: An Empirical Study of Travi...Noise and Heterogeneity in Historical Build Data: An Empirical Study of Travi...
Noise and Heterogeneity in Historical Build Data: An Empirical Study of Travi...Keheliya Gallaba
 
Part 2 improving your software development v1.0
Part 2   improving your software development v1.0Part 2   improving your software development v1.0
Part 2 improving your software development v1.0Jasmine Conseil
 
DOES14 - Gary Gruver - Macy's - Transforming Traditional Enterprise Software ...
DOES14 - Gary Gruver - Macy's - Transforming Traditional Enterprise Software ...DOES14 - Gary Gruver - Macy's - Transforming Traditional Enterprise Software ...
DOES14 - Gary Gruver - Macy's - Transforming Traditional Enterprise Software ...Gene Kim
 
Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System...
Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System...Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System...
Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System...Atlassian
 
Continuous Integration (Jenkins/Hudson)
Continuous Integration (Jenkins/Hudson)Continuous Integration (Jenkins/Hudson)
Continuous Integration (Jenkins/Hudson)Dennys Hsieh
 
DOES14 - Gary Gruver - Macy's - Transforming Traditional Enterprise Software ...
DOES14 - Gary Gruver - Macy's - Transforming Traditional Enterprise Software ...DOES14 - Gary Gruver - Macy's - Transforming Traditional Enterprise Software ...
DOES14 - Gary Gruver - Macy's - Transforming Traditional Enterprise Software ...DevOps Enterprise Summmit
 
Continuous Everything
Continuous EverythingContinuous Everything
Continuous EverythingAndrea Tino
 
Delivering Quality Software with Continuous Integration
Delivering Quality Software with Continuous IntegrationDelivering Quality Software with Continuous Integration
Delivering Quality Software with Continuous IntegrationAspire Systems
 
DevOps for Your Mobile App
DevOps for Your Mobile AppDevOps for Your Mobile App
DevOps for Your Mobile AppSeth Valdetero
 
PVS-Studio for Linux (CoreHard presentation)
PVS-Studio for Linux (CoreHard presentation)PVS-Studio for Linux (CoreHard presentation)
PVS-Studio for Linux (CoreHard presentation)Andrey Karpov
 
Continuous Delivery Applied
Continuous Delivery AppliedContinuous Delivery Applied
Continuous Delivery AppliedExcella
 
Continuous Delivery Applied (Agile Richmond)
Continuous Delivery Applied (Agile Richmond)Continuous Delivery Applied (Agile Richmond)
Continuous Delivery Applied (Agile Richmond)Mike McGarr
 
Continuous delivery for databases
Continuous delivery for databasesContinuous delivery for databases
Continuous delivery for databasesDevOpsGroup
 
Enabling Continuous Integration with Azure Pipelines
Enabling Continuous Integration with Azure PipelinesEnabling Continuous Integration with Azure Pipelines
Enabling Continuous Integration with Azure PipelinesEng Teong Cheah
 
havcs-410-101 a-2-10-srt-pg_2
havcs-410-101 a-2-10-srt-pg_2havcs-410-101 a-2-10-srt-pg_2
havcs-410-101 a-2-10-srt-pg_2raryal
 
Continous Integration: A Case Study
Continous Integration: A Case StudyContinous Integration: A Case Study
Continous Integration: A Case StudyTalentica Software
 
A Continuous Delivery Safety Net for Databases
A Continuous Delivery Safety Net for DatabasesA Continuous Delivery Safety Net for Databases
A Continuous Delivery Safety Net for DatabasesIBM UrbanCode Products
 
Flight East 2018 Presentation–Continuous Integration––An Overview
Flight East 2018 Presentation–Continuous Integration––An OverviewFlight East 2018 Presentation–Continuous Integration––An Overview
Flight East 2018 Presentation–Continuous Integration––An OverviewSynopsys Software Integrity Group
 

Similar to An Empirical Analysis of Build Failures in the Continuous Integration Workflows of Java-Based Open-Source Software (20)

Noise and Heterogeneity in Historical Build Data: An Empirical Study of Travi...
Noise and Heterogeneity in Historical Build Data: An Empirical Study of Travi...Noise and Heterogeneity in Historical Build Data: An Empirical Study of Travi...
Noise and Heterogeneity in Historical Build Data: An Empirical Study of Travi...
 
Azure from scratch part 4
Azure from scratch part 4Azure from scratch part 4
Azure from scratch part 4
 
Part 2 improving your software development v1.0
Part 2   improving your software development v1.0Part 2   improving your software development v1.0
Part 2 improving your software development v1.0
 
DOES14 - Gary Gruver - Macy's - Transforming Traditional Enterprise Software ...
DOES14 - Gary Gruver - Macy's - Transforming Traditional Enterprise Software ...DOES14 - Gary Gruver - Macy's - Transforming Traditional Enterprise Software ...
DOES14 - Gary Gruver - Macy's - Transforming Traditional Enterprise Software ...
 
Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System...
Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System...Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System...
Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System...
 
Continuous Integration (Jenkins/Hudson)
Continuous Integration (Jenkins/Hudson)Continuous Integration (Jenkins/Hudson)
Continuous Integration (Jenkins/Hudson)
 
DOES14 - Gary Gruver - Macy's - Transforming Traditional Enterprise Software ...
DOES14 - Gary Gruver - Macy's - Transforming Traditional Enterprise Software ...DOES14 - Gary Gruver - Macy's - Transforming Traditional Enterprise Software ...
DOES14 - Gary Gruver - Macy's - Transforming Traditional Enterprise Software ...
 
Continuous Everything
Continuous EverythingContinuous Everything
Continuous Everything
 
Delivering Quality Software with Continuous Integration
Delivering Quality Software with Continuous IntegrationDelivering Quality Software with Continuous Integration
Delivering Quality Software with Continuous Integration
 
DevOps for Your Mobile App
DevOps for Your Mobile AppDevOps for Your Mobile App
DevOps for Your Mobile App
 
PVS-Studio for Linux (CoreHard presentation)
PVS-Studio for Linux (CoreHard presentation)PVS-Studio for Linux (CoreHard presentation)
PVS-Studio for Linux (CoreHard presentation)
 
Continuous Delivery Applied
Continuous Delivery AppliedContinuous Delivery Applied
Continuous Delivery Applied
 
Continuous Delivery Applied (Agile Richmond)
Continuous Delivery Applied (Agile Richmond)Continuous Delivery Applied (Agile Richmond)
Continuous Delivery Applied (Agile Richmond)
 
Continuous delivery for databases
Continuous delivery for databasesContinuous delivery for databases
Continuous delivery for databases
 
Continuous Delivery Applied
Continuous Delivery AppliedContinuous Delivery Applied
Continuous Delivery Applied
 
Enabling Continuous Integration with Azure Pipelines
Enabling Continuous Integration with Azure PipelinesEnabling Continuous Integration with Azure Pipelines
Enabling Continuous Integration with Azure Pipelines
 
havcs-410-101 a-2-10-srt-pg_2
havcs-410-101 a-2-10-srt-pg_2havcs-410-101 a-2-10-srt-pg_2
havcs-410-101 a-2-10-srt-pg_2
 
Continous Integration: A Case Study
Continous Integration: A Case StudyContinous Integration: A Case Study
Continous Integration: A Case Study
 
A Continuous Delivery Safety Net for Databases
A Continuous Delivery Safety Net for DatabasesA Continuous Delivery Safety Net for Databases
A Continuous Delivery Safety Net for Databases
 
Flight East 2018 Presentation–Continuous Integration––An Overview
Flight East 2018 Presentation–Continuous Integration––An OverviewFlight East 2018 Presentation–Continuous Integration––An Overview
Flight East 2018 Presentation–Continuous Integration––An Overview
 

More from Thomas Rausch

Test cloud application deployments locally and in CI without staging environm...
Test cloud application deployments locally and in CI without staging environm...Test cloud application deployments locally and in CI without staging environm...
Test cloud application deployments locally and in CI without staging environm...Thomas Rausch
 
Synthesizing Plausible Infrastructure Configurations for Evaluating Edge Comp...
Synthesizing Plausible Infrastructure Configurations for Evaluating Edge Comp...Synthesizing Plausible Infrastructure Configurations for Evaluating Edge Comp...
Synthesizing Plausible Infrastructure Configurations for Evaluating Edge Comp...Thomas Rausch
 
Towards a Serverless Platform for Edge AI
Towards a Serverless Platform for Edge AITowards a Serverless Platform for Edge AI
Towards a Serverless Platform for Edge AIThomas Rausch
 
Edge Intelligence: The Convergence of Humans, Things and AI
Edge Intelligence: The Convergence of Humans, Things and AIEdge Intelligence: The Convergence of Humans, Things and AI
Edge Intelligence: The Convergence of Humans, Things and AIThomas Rausch
 
Portable Energy-Aware Cluster-Based Edge Computers
Portable Energy-Aware Cluster-Based Edge ComputersPortable Energy-Aware Cluster-Based Edge Computers
Portable Energy-Aware Cluster-Based Edge ComputersThomas Rausch
 
EMMA: Distributed QoS-Aware MQTT Middleware for Edge Computing Applications
EMMA: Distributed QoS-Aware MQTT Middleware for Edge Computing ApplicationsEMMA: Distributed QoS-Aware MQTT Middleware for Edge Computing Applications
EMMA: Distributed QoS-Aware MQTT Middleware for Edge Computing ApplicationsThomas Rausch
 
Message-Oriented Middleware for Edge Computing Applications
Message-Oriented Middleware for Edge Computing ApplicationsMessage-Oriented Middleware for Edge Computing Applications
Message-Oriented Middleware for Edge Computing ApplicationsThomas Rausch
 
Build Failure Prediction in Continuous Integration Workflows
Build Failure Prediction in Continuous Integration WorkflowsBuild Failure Prediction in Continuous Integration Workflows
Build Failure Prediction in Continuous Integration WorkflowsThomas Rausch
 
Git Introduction Tutorial
Git Introduction TutorialGit Introduction Tutorial
Git Introduction TutorialThomas Rausch
 

More from Thomas Rausch (9)

Test cloud application deployments locally and in CI without staging environm...
Test cloud application deployments locally and in CI without staging environm...Test cloud application deployments locally and in CI without staging environm...
Test cloud application deployments locally and in CI without staging environm...
 
Synthesizing Plausible Infrastructure Configurations for Evaluating Edge Comp...
Synthesizing Plausible Infrastructure Configurations for Evaluating Edge Comp...Synthesizing Plausible Infrastructure Configurations for Evaluating Edge Comp...
Synthesizing Plausible Infrastructure Configurations for Evaluating Edge Comp...
 
Towards a Serverless Platform for Edge AI
Towards a Serverless Platform for Edge AITowards a Serverless Platform for Edge AI
Towards a Serverless Platform for Edge AI
 
Edge Intelligence: The Convergence of Humans, Things and AI
Edge Intelligence: The Convergence of Humans, Things and AIEdge Intelligence: The Convergence of Humans, Things and AI
Edge Intelligence: The Convergence of Humans, Things and AI
 
Portable Energy-Aware Cluster-Based Edge Computers
Portable Energy-Aware Cluster-Based Edge ComputersPortable Energy-Aware Cluster-Based Edge Computers
Portable Energy-Aware Cluster-Based Edge Computers
 
EMMA: Distributed QoS-Aware MQTT Middleware for Edge Computing Applications
EMMA: Distributed QoS-Aware MQTT Middleware for Edge Computing ApplicationsEMMA: Distributed QoS-Aware MQTT Middleware for Edge Computing Applications
EMMA: Distributed QoS-Aware MQTT Middleware for Edge Computing Applications
 
Message-Oriented Middleware for Edge Computing Applications
Message-Oriented Middleware for Edge Computing ApplicationsMessage-Oriented Middleware for Edge Computing Applications
Message-Oriented Middleware for Edge Computing Applications
 
Build Failure Prediction in Continuous Integration Workflows
Build Failure Prediction in Continuous Integration WorkflowsBuild Failure Prediction in Continuous Integration Workflows
Build Failure Prediction in Continuous Integration Workflows
 
Git Introduction Tutorial
Git Introduction TutorialGit Introduction Tutorial
Git Introduction Tutorial
 

Recently uploaded

Lucknow 💋 Russian Call Girls Lucknow Finest Escorts Service 8923113531 Availa...
Lucknow 💋 Russian Call Girls Lucknow Finest Escorts Service 8923113531 Availa...Lucknow 💋 Russian Call Girls Lucknow Finest Escorts Service 8923113531 Availa...
Lucknow 💋 Russian Call Girls Lucknow Finest Escorts Service 8923113531 Availa...anilsa9823
 
Nightside clouds and disequilibrium chemistry on the hot Jupiter WASP-43b
Nightside clouds and disequilibrium chemistry on the hot Jupiter WASP-43bNightside clouds and disequilibrium chemistry on the hot Jupiter WASP-43b
Nightside clouds and disequilibrium chemistry on the hot Jupiter WASP-43bSérgio Sacani
 
GBSN - Microbiology (Unit 2)
GBSN - Microbiology (Unit 2)GBSN - Microbiology (Unit 2)
GBSN - Microbiology (Unit 2)Areesha Ahmad
 
Natural Polymer Based Nanomaterials
Natural Polymer Based NanomaterialsNatural Polymer Based Nanomaterials
Natural Polymer Based NanomaterialsAArockiyaNisha
 
Hubble Asteroid Hunter III. Physical properties of newly found asteroids
Hubble Asteroid Hunter III. Physical properties of newly found asteroidsHubble Asteroid Hunter III. Physical properties of newly found asteroids
Hubble Asteroid Hunter III. Physical properties of newly found asteroidsSérgio Sacani
 
Labelling Requirements and Label Claims for Dietary Supplements and Recommend...
Labelling Requirements and Label Claims for Dietary Supplements and Recommend...Labelling Requirements and Label Claims for Dietary Supplements and Recommend...
Labelling Requirements and Label Claims for Dietary Supplements and Recommend...Lokesh Kothari
 
Raman spectroscopy.pptx M Pharm, M Sc, Advanced Spectral Analysis
Raman spectroscopy.pptx M Pharm, M Sc, Advanced Spectral AnalysisRaman spectroscopy.pptx M Pharm, M Sc, Advanced Spectral Analysis
Raman spectroscopy.pptx M Pharm, M Sc, Advanced Spectral AnalysisDiwakar Mishra
 
Pests of cotton_Borer_Pests_Binomics_Dr.UPR.pdf
Pests of cotton_Borer_Pests_Binomics_Dr.UPR.pdfPests of cotton_Borer_Pests_Binomics_Dr.UPR.pdf
Pests of cotton_Borer_Pests_Binomics_Dr.UPR.pdfPirithiRaju
 
Green chemistry and Sustainable development.pptx
Green chemistry  and Sustainable development.pptxGreen chemistry  and Sustainable development.pptx
Green chemistry and Sustainable development.pptxRajatChauhan518211
 
CALL ON ➥8923113531 🔝Call Girls Kesar Bagh Lucknow best Night Fun service 🪡
CALL ON ➥8923113531 🔝Call Girls Kesar Bagh Lucknow best Night Fun service  🪡CALL ON ➥8923113531 🔝Call Girls Kesar Bagh Lucknow best Night Fun service  🪡
CALL ON ➥8923113531 🔝Call Girls Kesar Bagh Lucknow best Night Fun service 🪡anilsa9823
 
9654467111 Call Girls In Raj Nagar Delhi Short 1500 Night 6000
9654467111 Call Girls In Raj Nagar Delhi Short 1500 Night 60009654467111 Call Girls In Raj Nagar Delhi Short 1500 Night 6000
9654467111 Call Girls In Raj Nagar Delhi Short 1500 Night 6000Sapana Sha
 
Pests of cotton_Sucking_Pests_Dr.UPR.pdf
Pests of cotton_Sucking_Pests_Dr.UPR.pdfPests of cotton_Sucking_Pests_Dr.UPR.pdf
Pests of cotton_Sucking_Pests_Dr.UPR.pdfPirithiRaju
 
Forensic Biology & Its biological significance.pdf
Forensic Biology & Its biological significance.pdfForensic Biology & Its biological significance.pdf
Forensic Biology & Its biological significance.pdfrohankumarsinghrore1
 
Pests of mustard_Identification_Management_Dr.UPR.pdf
Pests of mustard_Identification_Management_Dr.UPR.pdfPests of mustard_Identification_Management_Dr.UPR.pdf
Pests of mustard_Identification_Management_Dr.UPR.pdfPirithiRaju
 
Spermiogenesis or Spermateleosis or metamorphosis of spermatid
Spermiogenesis or Spermateleosis or metamorphosis of spermatidSpermiogenesis or Spermateleosis or metamorphosis of spermatid
Spermiogenesis or Spermateleosis or metamorphosis of spermatidSarthak Sekhar Mondal
 
DIFFERENCE IN BACK CROSS AND TEST CROSS
DIFFERENCE IN  BACK CROSS AND TEST CROSSDIFFERENCE IN  BACK CROSS AND TEST CROSS
DIFFERENCE IN BACK CROSS AND TEST CROSSLeenakshiTyagi
 
Zoology 4th semester series (krishna).pdf
Zoology 4th semester series (krishna).pdfZoology 4th semester series (krishna).pdf
Zoology 4th semester series (krishna).pdfSumit Kumar yadav
 
Disentangling the origin of chemical differences using GHOST
Disentangling the origin of chemical differences using GHOSTDisentangling the origin of chemical differences using GHOST
Disentangling the origin of chemical differences using GHOSTSérgio Sacani
 
Presentation Vikram Lander by Vedansh Gupta.pptx
Presentation Vikram Lander by Vedansh Gupta.pptxPresentation Vikram Lander by Vedansh Gupta.pptx
Presentation Vikram Lander by Vedansh Gupta.pptxgindu3009
 

Recently uploaded (20)

Lucknow 💋 Russian Call Girls Lucknow Finest Escorts Service 8923113531 Availa...
Lucknow 💋 Russian Call Girls Lucknow Finest Escorts Service 8923113531 Availa...Lucknow 💋 Russian Call Girls Lucknow Finest Escorts Service 8923113531 Availa...
Lucknow 💋 Russian Call Girls Lucknow Finest Escorts Service 8923113531 Availa...
 
Nightside clouds and disequilibrium chemistry on the hot Jupiter WASP-43b
Nightside clouds and disequilibrium chemistry on the hot Jupiter WASP-43bNightside clouds and disequilibrium chemistry on the hot Jupiter WASP-43b
Nightside clouds and disequilibrium chemistry on the hot Jupiter WASP-43b
 
GBSN - Microbiology (Unit 2)
GBSN - Microbiology (Unit 2)GBSN - Microbiology (Unit 2)
GBSN - Microbiology (Unit 2)
 
Natural Polymer Based Nanomaterials
Natural Polymer Based NanomaterialsNatural Polymer Based Nanomaterials
Natural Polymer Based Nanomaterials
 
Hubble Asteroid Hunter III. Physical properties of newly found asteroids
Hubble Asteroid Hunter III. Physical properties of newly found asteroidsHubble Asteroid Hunter III. Physical properties of newly found asteroids
Hubble Asteroid Hunter III. Physical properties of newly found asteroids
 
Labelling Requirements and Label Claims for Dietary Supplements and Recommend...
Labelling Requirements and Label Claims for Dietary Supplements and Recommend...Labelling Requirements and Label Claims for Dietary Supplements and Recommend...
Labelling Requirements and Label Claims for Dietary Supplements and Recommend...
 
Raman spectroscopy.pptx M Pharm, M Sc, Advanced Spectral Analysis
Raman spectroscopy.pptx M Pharm, M Sc, Advanced Spectral AnalysisRaman spectroscopy.pptx M Pharm, M Sc, Advanced Spectral Analysis
Raman spectroscopy.pptx M Pharm, M Sc, Advanced Spectral Analysis
 
Pests of cotton_Borer_Pests_Binomics_Dr.UPR.pdf
Pests of cotton_Borer_Pests_Binomics_Dr.UPR.pdfPests of cotton_Borer_Pests_Binomics_Dr.UPR.pdf
Pests of cotton_Borer_Pests_Binomics_Dr.UPR.pdf
 
Green chemistry and Sustainable development.pptx
Green chemistry  and Sustainable development.pptxGreen chemistry  and Sustainable development.pptx
Green chemistry and Sustainable development.pptx
 
CALL ON ➥8923113531 🔝Call Girls Kesar Bagh Lucknow best Night Fun service 🪡
CALL ON ➥8923113531 🔝Call Girls Kesar Bagh Lucknow best Night Fun service  🪡CALL ON ➥8923113531 🔝Call Girls Kesar Bagh Lucknow best Night Fun service  🪡
CALL ON ➥8923113531 🔝Call Girls Kesar Bagh Lucknow best Night Fun service 🪡
 
9654467111 Call Girls In Raj Nagar Delhi Short 1500 Night 6000
9654467111 Call Girls In Raj Nagar Delhi Short 1500 Night 60009654467111 Call Girls In Raj Nagar Delhi Short 1500 Night 6000
9654467111 Call Girls In Raj Nagar Delhi Short 1500 Night 6000
 
The Philosophy of Science
The Philosophy of ScienceThe Philosophy of Science
The Philosophy of Science
 
Pests of cotton_Sucking_Pests_Dr.UPR.pdf
Pests of cotton_Sucking_Pests_Dr.UPR.pdfPests of cotton_Sucking_Pests_Dr.UPR.pdf
Pests of cotton_Sucking_Pests_Dr.UPR.pdf
 
Forensic Biology & Its biological significance.pdf
Forensic Biology & Its biological significance.pdfForensic Biology & Its biological significance.pdf
Forensic Biology & Its biological significance.pdf
 
Pests of mustard_Identification_Management_Dr.UPR.pdf
Pests of mustard_Identification_Management_Dr.UPR.pdfPests of mustard_Identification_Management_Dr.UPR.pdf
Pests of mustard_Identification_Management_Dr.UPR.pdf
 
Spermiogenesis or Spermateleosis or metamorphosis of spermatid
Spermiogenesis or Spermateleosis or metamorphosis of spermatidSpermiogenesis or Spermateleosis or metamorphosis of spermatid
Spermiogenesis or Spermateleosis or metamorphosis of spermatid
 
DIFFERENCE IN BACK CROSS AND TEST CROSS
DIFFERENCE IN  BACK CROSS AND TEST CROSSDIFFERENCE IN  BACK CROSS AND TEST CROSS
DIFFERENCE IN BACK CROSS AND TEST CROSS
 
Zoology 4th semester series (krishna).pdf
Zoology 4th semester series (krishna).pdfZoology 4th semester series (krishna).pdf
Zoology 4th semester series (krishna).pdf
 
Disentangling the origin of chemical differences using GHOST
Disentangling the origin of chemical differences using GHOSTDisentangling the origin of chemical differences using GHOST
Disentangling the origin of chemical differences using GHOST
 
Presentation Vikram Lander by Vedansh Gupta.pptx
Presentation Vikram Lander by Vedansh Gupta.pptxPresentation Vikram Lander by Vedansh Gupta.pptx
Presentation Vikram Lander by Vedansh Gupta.pptx
 

An Empirical Analysis of Build Failures in the Continuous Integration Workflows of Java-Based Open-Source Software

  • 1. An Empirical Analysis of Build Failures in the Continuous Integration Worfklows of Java-Based Open-Source Software Thomas Rausch, Waldemar Hummer, Philipp Leitner*, Stefan Schulte Distributed Systems Group Vienna University of Technology, Austria http://dsg.tuwien.ac.at * Software Evolution and Architecture Lab University of Zurich, Switzerland http://www.ifi.uzh.ch/en/seal.html
  • 2. 2 Continuous Integration VCS CI Server Build Feedback Logs Vasilescu et al. (2015). Quality and Productivity Outcomes Relating to Continuous Integration in GitHub “Our main finding is that continuous integration improves the productivity of project teams” Kerzazi et al. (2014). Why do Automated Builds Break? An Empirical Study “We [...] quantified the cost of such build breakage as more than 336.18 man-hours”
  • 3. 3
  • 5. 5 Understanding Build Failures What types of errors cause CI build failures? Which development practices can be associated with CI build failures?
  • 6. 6 Research Setting Project Name Description Apache Storm Distributed Computation Butterknife Android Dependency Injection Crate.IO Scalable SQL database JabRef BibTeX management GUI jcabi-github Wrapper of GitHub API Hystrix Latency and fault tolerance library Presto Distributed SQL query engine Openmicroscopy Microscopy data environment RxAndroid RxJava bindings for Android Sponge API Minecraft plugin API Spring Boot Java Application Framework Square OkHttp HTTP+HTTP/2 client for Android Square Retofit HTTP client for Android Wordpress-Android WordPress for Android
  • 7. 7 Data Acquisition a b c d Topology Mapping CI build history Change history
  • 8. 8 Understanding Build Failures What types of errors cause CI build failures? Which development practices can be associated with CI build failures?
  • 9. 9 Error Categorization and Quantification  Goal ○ Categorization of errors ○ Frequency of occurrence of error types  Approach ○ Systematic exploration of ~54 000 logfiles ○ Categorization scheme based on log message patterns [INFO] Compiling 67 source files to /home/travis/.../target/classes [INFO] ------------------------------------------------------------- [ERROR] COMPILATION ERROR : [INFO] ------------------------------------------------------------- [ERROR] /home/travis/.../redis/RedisAutoConfiguration.java:[143,10] cannot find symbol [INFO] 1 error [INFO] Compiling 67 source files to /home/travis/.../target/classes [INFO] ------------------------------------------------------------- [ERROR] COMPILATION ERROR : [INFO] ------------------------------------------------------------- [ERROR] /home/travis/.../redis/RedisAutoConfiguration.java:[143,10] cannot find symbol [INFO] 1 error [INFO] Compiling 67 source files to /home/travis/.../target/classes [INFO] ------------------------------------------------------------- [ERROR] COMPILATION ERROR : [INFO] ------------------------------------------------------------- [ERROR] /home/travis/.../redis/RedisAutoConfiguration.java:[143,10] cannot find symbol [INFO] 1 error
  • 10. 10 Error Categories unknown Errors without a clearly identifiable cause 9 itestfailure An automated integration test failed 4 doc Documentation (e.g., JavaDoc) problem 3 license License criteria not met (missing header) 3 compatibility API incompatibility 2 androidsdk Android SDK-related error 1 buildout Error specific to Crate.IO python module 1 Label Description Occurrences testfailure An automated test failed 12 compile Compilation error 12 git VCS interaction error 12 buildconfig Faulty build config 11 crash Build environment crash or timeout 11 dependency Dependency error 11 quality Coding-rule violation (e.g., Checkstyle) 10
  • 11. 11 Distribution of Common Error Types Faulty VCS interaction Faulty build configuration Dependency error Compilation error Coding-rule violation Failing test Crash 40% 30% 20% 10% 0%
  • 12. 12 Distribution of Common Error Types Apache Storm Butterknife Crate.IO Hystrix Error testfailure compile git dependency crash buildconfig quality others Percentage JabRef jcabi-github Presto RxAndroid SpongeAPI Spring Boot Square OkHttp Square Retrofit 0% 25% 50% 75% 100%
  • 13. 13 Understanding Build Failures What types of errors cause CI build failures? Which development practices can be associated with CI build failures?
  • 14. 14 Change Metrics .java .txt Changes  Complexity ○ Churn, number of files, ...  File types ○ README.txt vs. IntegrationTest.java  Date and time  Author ○ Experience, commit frequency, ...
  • 15. 15 Process Metrics b1 b2 b4 t b3 a b e c f d g VCS commit graph CI build information  Build History ○ Build climate  Build Type ○ Pull request, merge, ...  Pull Request Scenarios ○ Rebase, squash, ...
  • 16. 16 Statistical Correlation Analysis  For each project individually  Non-parametric correlation tests ○ Pearson’s chi-square test ○ Mann—Whitney U test  Calculate effect sizes ○ Cramér’s V ○ Rank-biserial correlation
  • 17. 17 PassedBuild outcome Failed Failed Passed Previous build result Percentageofbuilds Findings Build failures mostly occur consecutively. Phases of build instability perpetuate failures. Build failures mostly occur consecutively. Phases of build instability perpetuate failures. Build history b b’
  • 18. 18 PassedBuild outcome Failed Failed Passed Previous build result Percentageofbuilds Findings Build failures mostly occur consecutively. Phases of build instability perpetuate failures. Build failures mostly occur consecutively. Phases of build instability perpetuate failures. Build history b b’
  • 19. 19 Findings Build failures mostly occur consecutively. Phases of build instability perpetuate failures. Build failures mostly occur consecutively. Phases of build instability perpetuate failures. Build history No evidence that either history manipula- tion operations or parallel development to a PR affect the PR’s build outcome. No evidence that either history manipula- tion operations or parallel development to a PR affect the PR’s build outcome. Pull request scenarios
  • 20. 20 Findings Even objectively harmless changes can break builds. This indicates unwanted flakiness of tests or the build environment. Even objectively harmless changes can break builds. This indicates unwanted flakiness of tests or the build environment. Build failures mostly occur consecutively. Phases of build instability perpetuate failures. Build failures mostly occur consecutively. Phases of build instability perpetuate failures. File types Build history  577 builds from Spring Boot  Changelog file change only  14% original failures ○ 52% test failures ○ 45% environment crash ○ 3% dependency error No evidence that either history manipula- tion operations or parallel development to a PR affect the PR’s build outcome. No evidence that either history manipula- tion operations or parallel development to a PR affect the PR’s build outcome. Pull request scenarios
  • 21. 21 Summary  Categorization of error types (beyond failed/errored)  Quantification of error type occurrence  Statistical analysis of impact factors  Uncovered challenges that arise when mining CI data
  • 22. 22 Dipl.-Ing. Thomas Rausch Research Assistant TU Wien Distributed Systems Group Argentinierstraße 8/184-1, 1040, Vienna, Austria T: +43 1 58801 184 838 E: rausch@dsg.tuwien.ac.at dsg.tuwien.ac.at/staff/trausch