SlideShare a Scribd company logo
1 of 26
Download to read offline
Continuous Integration
Agenda
• Definition
• CI Considerations
• About tools
• CI as a scheduling in the development process
Sources
• Duvall, Matyas and Glover. Continuous integration
improving software quality and reducing risk. Addison
Wesley, 2007.
• Martin Fowler. Continuous Integration. Available in
http://www.martinfowler.com/articles/continuousIntegration
.html
• Schach, Stephen R. Object-Oriented and Classical
Software Engineering Eighth Edition. Mc Graw Hill, 2010
• And so others…
Critical Issue
Supporting the idea of creating systems to
continuously build and test systems in
response to changes in source control.
Continuous Integration
(From Wikipedia)
• Continuous Integration emerged in the Extreme
Programming (XP) community
• XP advocates Martin Fowler and Kent Beck first wrote about
continuous integration (1999).
• Beck's book Extreme Programming Explained, the
original reference for Extreme Programming, also describes
CI.
• Fowler's paper is a popular source of information on the
subject.
Martin Fowler and CI
In his very popular “Continuous Integration” article, Martin Fowler
describes CI as:
• “. . . a software development practice where members of a team
integrate their work frequently, usually each person integrates at
least daily—leading to multiple integrations per day.
• Each integration is verified by an automated build (including test)
to detect integration errors as quickly as possible.
• Many teams find that this approach leads to significantly reduced
integration problems and allows a team to develop cohesive
software more rapidly”
Wikipedia say us!!!
Continuous integration (CI) implements continuous
processes of applying quality control — small
pieces of effort, applied frequently.
Continuous integration aims to improve the quality
of software, and to reduce the time taken to deliver
it, by replacing the traditional practice of applying
quality control after completing all development.
From: http://en.wikipedia.org/wiki/Continuous_integration
This means
• Continuous integration improving software quality and
reducing risk
• As the complexity of a project increases (even just adding
one more person), there is a greater need to integrate and
ensure that software components work together—early
and often.
• Waiting until the end of a project to integrate leads to all
sorts of software quality problems, which are costly and
often lead to project delays. CI addresses these risks
faster and in smaller increments
The value of CI is to:
• Reduce risks
• Reduce repetitive manual processes
• Generate deployable software at any time and at
any place
• Enable better project visibility
• Establish greater confidence in the software
product from the development team
Typical CI context
From: Continuous integration improving software quality and reducing risk
(Or any other
version
repository)
Beyond to the CI Tools…
Practicing CI is more than installing and configuring
some tools.
• How many of the following items are you
consistently performing on your project?
• How many of the other CI practices can improve
your development capabilities?
Beyond to the CI Tools…
• On average, is everyone on your team committing code at least once a
day? Are you employing techniques to make it easier to commit code
often?
• What percentage of each day’s integration builds is successful (that is, the
most recent build run has passed)?
• Is everyone on your team running a private build before committing to the
repository so that integration errors are reduced?
• Have you scripted your builds to fail if any of your tests or inspections fail?
• Is a broken integration build a priority to fix on your projects?
• Do you avoid getting the latest code from the version control system when
there is a broken build?
• How often do you consider adding automated processes to your build and
CI system—on a continuous or even periodic basis?
But Tools are so important…
…Hudson/Jenkins is widely recognized as a core
tool for developers, QA engineers, project
managers, release engineers, DevOps, and
managers. It is also a crucial open source option for
teams using Agile methodology, in which continuous
integration is a fundamental practice…
• Kohsuke Kawaguchi - Creator of the Jenkins CI server.
In: 7 Ways to Optimize Jenkins/Hudson White Paper
The Hudson Book (pages 3-4)
• Without continuous integration, developing modern
applications is practically impossible without
dramatic inefficiency. There is too much unproductive
down-time, and far too much waste. The development
group described above would be hard pressed to release
anything more than a global update once a month
• In other words, when you automate build, test, and
verify using a tool like Hudson you can continue
developing your applications without having to wait
(or synchronize) on some manual build, test, verify
process.
Just for information…
• Jenkins and Hudson are the same =) in
http://en.wikipedia.org/wiki/Comparison_of_continuous_i
ntegration_software
• Why Hudson and Jenkins names were choosed?
• Jenkins is an open source continuous integration tool
written in Java. The project was forked from Hudson
after a dispute with Oracle, which claims the right to
trademark the Hudson name and has applied for such a
trademark as of December 2010
CI as a scheduling method
• RUP proposes the Integration Build Plan
• The purpose of this is to define the order in
which the components should be
implemented, which builds to create when
integrating the system, and how they are to be
assessed.
CI as a scheduling method
• RUP: You should adjust the outline of the Integration Build
Plan to suit the nature of your project. For example, if the
system is large, there may be a case for having subsidiary
plans for each implementation subsystem. The formality and
extent of the test material contained or referenced from the
Integration Build Plan will vary depending on the significance
of the build.
• The RUP approach to integration is to incrementally
integrate the software. Incremental integration means that
code is written and tested in small pieces, and then
combined into a working whole by adding one piece at a
time.
Integration approaches
• Integration then integration
• Top-down Integration
• Bottom-up integration
• Sandwich integration
Source: Object-Oriented and Classical
Software Engineering Eighth Edition
Integration approaches
Source: Object-Oriented and Classical Software Engineering Eighth Edition
Integration approaches
Source: Object-Oriented and Classical Software Engineering Eighth Edition
… While we recognize that tooling may
improve or otherwise affect a continuous
integration implementation, the practice
of continuous integration itself requires
no particular tools at all (Fowler, 2013).
Consequently we regard tools to be of
secondary importance, but not of primary
interest…
Source: Modeling continuous integration practice differences in industry software
development, 2013
And…
• Now, CI is not enough…
• ;(
CI evolves as CD (Continuous Delivery)
• CI literally started to change how companies looked at Build
Management, Release Management, Deployment
Automation, and Test Orchestration…
• However, if CI started as automation of the development
phase only, pretty soon the revolution embraced the test-
phase of the QA team and the deployment into various
environment of the Ops team, involving the whole
lifecycle of a product…
Source: Armenise V., Continuous Delivery with Jenkins. 2015 IEEE/ACM 3rd
International Workshop on Release Engineering.
CI evolves as CD (Continuous Delivery)
• A CD platform allows Dev, QA and Ops teams to work
closely together using the same orchestrator and
embracing the key points of CD:
• Collaboration across all the teams involved in the
product-lifecycle
• Extensive automation of the delivery process
Source: Armenise V., Continuous Delivery with Jenkins. 2015 IEEE/ACM 3rd
International Workshop on Release Engineering.
CI evolves as CD (Continuous Delivery)
• Implementing CD means being able to chain the different
steps involved in the cross-team pipeline and automate their
execution:
from the checkout of the code and the unit-tests,
• to the static code-analysis,
• to the performance tests,
• to the release of the binaries until the deployment into
test/staging/production
Source: Armenise V., Continuous Delivery with Jenkins. 2015 IEEE/ACM 3rd
International Workshop on Release Engineering.
Thanks for your attention
fdgiraldo@uniquindio.edu.co

More Related Content

What's hot

CI-CD and DevOps with Ruby
CI-CD and DevOps with RubyCI-CD and DevOps with Ruby
CI-CD and DevOps with RubyPierluigi Riti
 
Testing in agile is it easier said than done
Testing in agile   is it easier said than done Testing in agile   is it easier said than done
Testing in agile is it easier said than done Archana Joshi
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integrationdrluckyspin
 
DevOps - From Agile Dev to Agile Ops for Continuous Delivery
DevOps - From Agile Dev to Agile Ops for Continuous DeliveryDevOps - From Agile Dev to Agile Ops for Continuous Delivery
DevOps - From Agile Dev to Agile Ops for Continuous DeliveryKalyan Kumar
 
(Agile) engineering best practices - What every project manager should know
(Agile) engineering best practices - What every project manager should know(Agile) engineering best practices - What every project manager should know
(Agile) engineering best practices - What every project manager should knowRichard Cheng
 
Automated Database Deployment at SQL Rally
Automated Database Deployment at SQL RallyAutomated Database Deployment at SQL Rally
Automated Database Deployment at SQL RallyGrant Fritchey
 
DevOps - Right Tool for Right Phase
DevOps - Right Tool for Right PhaseDevOps - Right Tool for Right Phase
DevOps - Right Tool for Right PhaseDalibor Blazevic
 
Software product development process
Software product development processSoftware product development process
Software product development processSri Kanajan
 
DevOps and Build Automation
DevOps and Build AutomationDevOps and Build Automation
DevOps and Build AutomationHeiswayi Nrird
 
Agile planning and iterations with Scrum using Team Foundation Server 2013
Agile planning and iterations with Scrum using Team Foundation Server 2013Agile planning and iterations with Scrum using Team Foundation Server 2013
Agile planning and iterations with Scrum using Team Foundation Server 2013Allan Mangune
 
Introduce to Git and Jenkins
Introduce to Git and JenkinsIntroduce to Git and Jenkins
Introduce to Git and JenkinsAn Nguyen
 
Agile A to Z Chapter 4 Feedback Loop Part 2 DevOps
Agile A to Z Chapter 4 Feedback Loop Part 2 DevOpsAgile A to Z Chapter 4 Feedback Loop Part 2 DevOps
Agile A to Z Chapter 4 Feedback Loop Part 2 DevOpsAgile ME
 
Deploying and releasing applications
Deploying and releasing applicationsDeploying and releasing applications
Deploying and releasing applicationsMa Xuebin
 
Agile Testing Strategy
Agile Testing StrategyAgile Testing Strategy
Agile Testing Strategytharindakasun
 
Continuous Delivery Presentation
Continuous Delivery PresentationContinuous Delivery Presentation
Continuous Delivery PresentationMauricio Ferreyra
 
Introduction To Continuous Integration
Introduction To Continuous IntegrationIntroduction To Continuous Integration
Introduction To Continuous IntegrationChristopher Read
 

What's hot (20)

Overview
OverviewOverview
Overview
 
CI-CD and DevOps with Ruby
CI-CD and DevOps with RubyCI-CD and DevOps with Ruby
CI-CD and DevOps with Ruby
 
Testing in agile is it easier said than done
Testing in agile   is it easier said than done Testing in agile   is it easier said than done
Testing in agile is it easier said than done
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
DevOps - From Agile Dev to Agile Ops for Continuous Delivery
DevOps - From Agile Dev to Agile Ops for Continuous DeliveryDevOps - From Agile Dev to Agile Ops for Continuous Delivery
DevOps - From Agile Dev to Agile Ops for Continuous Delivery
 
(Agile) engineering best practices - What every project manager should know
(Agile) engineering best practices - What every project manager should know(Agile) engineering best practices - What every project manager should know
(Agile) engineering best practices - What every project manager should know
 
Testing Best Practices
Testing Best PracticesTesting Best Practices
Testing Best Practices
 
Automated Database Deployment at SQL Rally
Automated Database Deployment at SQL RallyAutomated Database Deployment at SQL Rally
Automated Database Deployment at SQL Rally
 
DevOps - Right Tool for Right Phase
DevOps - Right Tool for Right PhaseDevOps - Right Tool for Right Phase
DevOps - Right Tool for Right Phase
 
Software product development process
Software product development processSoftware product development process
Software product development process
 
DevOps and Build Automation
DevOps and Build AutomationDevOps and Build Automation
DevOps and Build Automation
 
Cloud for Agile Testing - Burak Koyuncu
Cloud for Agile Testing - Burak KoyuncuCloud for Agile Testing - Burak Koyuncu
Cloud for Agile Testing - Burak Koyuncu
 
Agile planning and iterations with Scrum using Team Foundation Server 2013
Agile planning and iterations with Scrum using Team Foundation Server 2013Agile planning and iterations with Scrum using Team Foundation Server 2013
Agile planning and iterations with Scrum using Team Foundation Server 2013
 
Introduce to Git and Jenkins
Introduce to Git and JenkinsIntroduce to Git and Jenkins
Introduce to Git and Jenkins
 
Agile A to Z Chapter 4 Feedback Loop Part 2 DevOps
Agile A to Z Chapter 4 Feedback Loop Part 2 DevOpsAgile A to Z Chapter 4 Feedback Loop Part 2 DevOps
Agile A to Z Chapter 4 Feedback Loop Part 2 DevOps
 
Deploying and releasing applications
Deploying and releasing applicationsDeploying and releasing applications
Deploying and releasing applications
 
Agile Testing Strategy
Agile Testing StrategyAgile Testing Strategy
Agile Testing Strategy
 
Continuous Delivery Presentation
Continuous Delivery PresentationContinuous Delivery Presentation
Continuous Delivery Presentation
 
Introduction To Continuous Integration
Introduction To Continuous IntegrationIntroduction To Continuous Integration
Introduction To Continuous Integration
 
Software testing
Software testingSoftware testing
Software testing
 

Viewers also liked

Continuous Integration Step by Step
Continuous Integration Step by StepContinuous Integration Step by Step
Continuous Integration Step by StepAbhay Kumar
 
Continuous Integration: A Case Study
Continuous Integration: A Case StudyContinuous Integration: A Case Study
Continuous Integration: A Case StudyIndicThreads
 
Workflows adaptations for security management through MDD and Aspects
Workflows adaptations for security management through MDD and Aspects Workflows adaptations for security management through MDD and Aspects
Workflows adaptations for security management through MDD and Aspects Fáber D. Giraldo
 
PhD Proposal - A Framework for evaluating the quality of languages in MDE env...
PhD Proposal - A Framework for evaluating the quality of languages in MDE env...PhD Proposal - A Framework for evaluating the quality of languages in MDE env...
PhD Proposal - A Framework for evaluating the quality of languages in MDE env...Fáber D. Giraldo
 
Software configuration management in deep
Software configuration management in deepSoftware configuration management in deep
Software configuration management in deepFáber D. Giraldo
 
ISO 29119 and Software Testing - now what??
ISO 29119 and Software Testing - now what??ISO 29119 and Software Testing - now what??
ISO 29119 and Software Testing - now what??Fáber D. Giraldo
 
Teamwork in Software Engineering Projects
Teamwork in Software Engineering ProjectsTeamwork in Software Engineering Projects
Teamwork in Software Engineering ProjectsFáber D. Giraldo
 
Introduction to Software Process
Introduction to Software ProcessIntroduction to Software Process
Introduction to Software ProcessFáber D. Giraldo
 
Project Planning in Software Engineering
Project Planning in Software EngineeringProject Planning in Software Engineering
Project Planning in Software EngineeringFáber D. Giraldo
 
software configuration management
software configuration managementsoftware configuration management
software configuration managementFáber D. Giraldo
 
The software Implementation Process
The software Implementation ProcessThe software Implementation Process
The software Implementation Processrthompson604
 

Viewers also liked (17)

Continuous Integration Step by Step
Continuous Integration Step by StepContinuous Integration Step by Step
Continuous Integration Step by Step
 
Continuous Integration: A Case Study
Continuous Integration: A Case StudyContinuous Integration: A Case Study
Continuous Integration: A Case Study
 
L software testing
L   software testingL   software testing
L software testing
 
Patterns Overview
Patterns OverviewPatterns Overview
Patterns Overview
 
Workflows adaptations for security management through MDD and Aspects
Workflows adaptations for security management through MDD and Aspects Workflows adaptations for security management through MDD and Aspects
Workflows adaptations for security management through MDD and Aspects
 
PhD Proposal - A Framework for evaluating the quality of languages in MDE env...
PhD Proposal - A Framework for evaluating the quality of languages in MDE env...PhD Proposal - A Framework for evaluating the quality of languages in MDE env...
PhD Proposal - A Framework for evaluating the quality of languages in MDE env...
 
Code Inspection
Code InspectionCode Inspection
Code Inspection
 
I software quality
I   software qualityI   software quality
I software quality
 
Software configuration management in deep
Software configuration management in deepSoftware configuration management in deep
Software configuration management in deep
 
ISO 29119 and Software Testing - now what??
ISO 29119 and Software Testing - now what??ISO 29119 and Software Testing - now what??
ISO 29119 and Software Testing - now what??
 
Teamwork in Software Engineering Projects
Teamwork in Software Engineering ProjectsTeamwork in Software Engineering Projects
Teamwork in Software Engineering Projects
 
Introduction to RUP & SPEM
Introduction to RUP & SPEMIntroduction to RUP & SPEM
Introduction to RUP & SPEM
 
Introduction to Software Process
Introduction to Software ProcessIntroduction to Software Process
Introduction to Software Process
 
Project Planning in Software Engineering
Project Planning in Software EngineeringProject Planning in Software Engineering
Project Planning in Software Engineering
 
software configuration management
software configuration managementsoftware configuration management
software configuration management
 
Agile scrum roles
Agile scrum rolesAgile scrum roles
Agile scrum roles
 
The software Implementation Process
The software Implementation ProcessThe software Implementation Process
The software Implementation Process
 

Similar to CI Tools and Practices for Improving Software Quality

DevOps Overview in my own words
DevOps Overview in my own wordsDevOps Overview in my own words
DevOps Overview in my own wordsSUBHENDU KARMAKAR
 
DevOps for absolute beginners (2022 edition)
DevOps for absolute beginners (2022 edition)DevOps for absolute beginners (2022 edition)
DevOps for absolute beginners (2022 edition)Ahmed Misbah
 
Testing in the new age of DevOps
Testing in the new age of DevOpsTesting in the new age of DevOps
Testing in the new age of DevOpsMoataz Mahmoud
 
Continuous integration for se group meeting
Continuous integration for se group meetingContinuous integration for se group meeting
Continuous integration for se group meetingSergii Shmarkatiuk
 
RubyDay-Turin13_Nov_15
RubyDay-Turin13_Nov_15RubyDay-Turin13_Nov_15
RubyDay-Turin13_Nov_15Pierluigi Riti
 
Continuous Delivery: why ? where to start ? how to scale ?
Continuous Delivery: why ? where to start ? how to scale ?Continuous Delivery: why ? where to start ? how to scale ?
Continuous Delivery: why ? where to start ? how to scale ?Jean-Philippe Briend
 
26.1a.Introduction to DEVOPS_v2.pptx
26.1a.Introduction to DEVOPS_v2.pptx26.1a.Introduction to DEVOPS_v2.pptx
26.1a.Introduction to DEVOPS_v2.pptxPanos Fitsilis
 
Introduction to DevSecOps. An intuitiv approach
Introduction to DevSecOps. An intuitiv approachIntroduction to DevSecOps. An intuitiv approach
Introduction to DevSecOps. An intuitiv approachFrancisXavierInyanga
 
Making software development processes to work for you
Making software development processes to work for youMaking software development processes to work for you
Making software development processes to work for youAmbientia
 
What_is_DevOps_how_it's_very_useful_in_daily_Life.
What_is_DevOps_how_it's_very_useful_in_daily_Life.What_is_DevOps_how_it's_very_useful_in_daily_Life.
What_is_DevOps_how_it's_very_useful_in_daily_Life.anilpmuvvala
 
What is DevOps And How It Is Useful In Real life.
What is DevOps And How It Is Useful In Real life.What is DevOps And How It Is Useful In Real life.
What is DevOps And How It Is Useful In Real life.anilpmuvvala
 
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
 
Back To Basics
Back To BasicsBack To Basics
Back To Basicskamalikamj
 
DevOps - Introduction to data science
DevOps - Introduction to data scienceDevOps - Introduction to data science
DevOps - Introduction to data scienceFrank Kienle
 
Dev ops != Dev+Ops
Dev ops != Dev+OpsDev ops != Dev+Ops
Dev ops != Dev+OpsShalu Ahuja
 
Linking Upstream and Downstream Agile
Linking Upstream and Downstream AgileLinking Upstream and Downstream Agile
Linking Upstream and Downstream AgileCollabNet
 
Continous Integration: A Case Study
Continous Integration: A Case StudyContinous Integration: A Case Study
Continous Integration: A Case StudyTalentica Software
 

Similar to CI Tools and Practices for Improving Software Quality (20)

DevOps Overview in my own words
DevOps Overview in my own wordsDevOps Overview in my own words
DevOps Overview in my own words
 
intro to DevOps
intro to DevOpsintro to DevOps
intro to DevOps
 
DevOps for absolute beginners (2022 edition)
DevOps for absolute beginners (2022 edition)DevOps for absolute beginners (2022 edition)
DevOps for absolute beginners (2022 edition)
 
Testing in the new age of DevOps
Testing in the new age of DevOpsTesting in the new age of DevOps
Testing in the new age of DevOps
 
Continuous integration for se group meeting
Continuous integration for se group meetingContinuous integration for se group meeting
Continuous integration for se group meeting
 
RubyDay-Turin13_Nov_15
RubyDay-Turin13_Nov_15RubyDay-Turin13_Nov_15
RubyDay-Turin13_Nov_15
 
Continuous Delivery: why ? where to start ? how to scale ?
Continuous Delivery: why ? where to start ? how to scale ?Continuous Delivery: why ? where to start ? how to scale ?
Continuous Delivery: why ? where to start ? how to scale ?
 
26.1a.Introduction to DEVOPS_v2.pptx
26.1a.Introduction to DEVOPS_v2.pptx26.1a.Introduction to DEVOPS_v2.pptx
26.1a.Introduction to DEVOPS_v2.pptx
 
Introduction to DevSecOps. An intuitiv approach
Introduction to DevSecOps. An intuitiv approachIntroduction to DevSecOps. An intuitiv approach
Introduction to DevSecOps. An intuitiv approach
 
Making software development processes to work for you
Making software development processes to work for youMaking software development processes to work for you
Making software development processes to work for you
 
What_is_DevOps_how_it's_very_useful_in_daily_Life.
What_is_DevOps_how_it's_very_useful_in_daily_Life.What_is_DevOps_how_it's_very_useful_in_daily_Life.
What_is_DevOps_how_it's_very_useful_in_daily_Life.
 
What is DevOps And How It Is Useful In Real life.
What is DevOps And How It Is Useful In Real life.What is DevOps And How It Is Useful In Real life.
What is DevOps And How It Is Useful In Real life.
 
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
 
Continuous integration with Jenkins
Continuous integration with JenkinsContinuous integration with Jenkins
Continuous integration with Jenkins
 
Back To Basics
Back To BasicsBack To Basics
Back To Basics
 
What_is_DevOps.pptx
What_is_DevOps.pptxWhat_is_DevOps.pptx
What_is_DevOps.pptx
 
DevOps - Introduction to data science
DevOps - Introduction to data scienceDevOps - Introduction to data science
DevOps - Introduction to data science
 
Dev ops != Dev+Ops
Dev ops != Dev+OpsDev ops != Dev+Ops
Dev ops != Dev+Ops
 
Linking Upstream and Downstream Agile
Linking Upstream and Downstream AgileLinking Upstream and Downstream Agile
Linking Upstream and Downstream Agile
 
Continous Integration: A Case Study
Continous Integration: A Case StudyContinous Integration: A Case Study
Continous Integration: A Case Study
 

More from Fáber D. Giraldo

Applying a software TeleCare prototype in a real residences for older people ...
Applying a software TeleCare prototype in a real residences for older people ...Applying a software TeleCare prototype in a real residences for older people ...
Applying a software TeleCare prototype in a real residences for older people ...Fáber D. Giraldo
 
Analysing the concept of quality in model-driven engineering literature: a sy...
Analysing the concept of quality in model-driven engineering literature: a sy...Analysing the concept of quality in model-driven engineering literature: a sy...
Analysing the concept of quality in model-driven engineering literature: a sy...Fáber D. Giraldo
 
software metrics (in spanish)
software metrics (in spanish)software metrics (in spanish)
software metrics (in spanish)Fáber D. Giraldo
 
software estimation (in spanish)
software estimation (in spanish)software estimation (in spanish)
software estimation (in spanish)Fáber D. Giraldo
 
Lab Software Architecture (in spanish)
Lab Software Architecture (in spanish)Lab Software Architecture (in spanish)
Lab Software Architecture (in spanish)Fáber D. Giraldo
 

More from Fáber D. Giraldo (11)

Introduction to MDE
Introduction to MDEIntroduction to MDE
Introduction to MDE
 
Applying a software TeleCare prototype in a real residences for older people ...
Applying a software TeleCare prototype in a real residences for older people ...Applying a software TeleCare prototype in a real residences for older people ...
Applying a software TeleCare prototype in a real residences for older people ...
 
Analysing the concept of quality in model-driven engineering literature: a sy...
Analysing the concept of quality in model-driven engineering literature: a sy...Analysing the concept of quality in model-driven engineering literature: a sy...
Analysing the concept of quality in model-driven engineering literature: a sy...
 
SEMAT
SEMATSEMAT
SEMAT
 
The SEI Approach
The SEI ApproachThe SEI Approach
The SEI Approach
 
The Agile Movement
The Agile MovementThe Agile Movement
The Agile Movement
 
software metrics (in spanish)
software metrics (in spanish)software metrics (in spanish)
software metrics (in spanish)
 
CMMI
CMMICMMI
CMMI
 
software estimation (in spanish)
software estimation (in spanish)software estimation (in spanish)
software estimation (in spanish)
 
Lab Software Architecture (in spanish)
Lab Software Architecture (in spanish)Lab Software Architecture (in spanish)
Lab Software Architecture (in spanish)
 
Implementation Model
Implementation ModelImplementation Model
Implementation Model
 

Recently uploaded

ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxiammrhaywood
 
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptxAUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptxiammrhaywood
 
Keynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designKeynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designMIPLM
 
Proudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxProudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxthorishapillay1
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
What is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPWhat is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPCeline George
 
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxAnupkumar Sharma
 
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfAMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfphamnguyenenglishnb
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatYousafMalik24
 
Global Lehigh Strategic Initiatives (without descriptions)
Global Lehigh Strategic Initiatives (without descriptions)Global Lehigh Strategic Initiatives (without descriptions)
Global Lehigh Strategic Initiatives (without descriptions)cama23
 
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxINTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxHumphrey A Beña
 
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfInclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfTechSoup
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Celine George
 
Transaction Management in Database Management System
Transaction Management in Database Management SystemTransaction Management in Database Management System
Transaction Management in Database Management SystemChristalin Nelson
 
How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17Celine George
 
How to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPHow to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPCeline George
 
Judging the Relevance and worth of ideas part 2.pptx
Judging the Relevance  and worth of ideas part 2.pptxJudging the Relevance  and worth of ideas part 2.pptx
Judging the Relevance and worth of ideas part 2.pptxSherlyMaeNeri
 
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...Nguyen Thanh Tu Collection
 

Recently uploaded (20)

YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptxYOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
 
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
 
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptxAUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptx
 
Keynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designKeynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-design
 
Proudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxProudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptx
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
 
What is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPWhat is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERP
 
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
 
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfAMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice great
 
Global Lehigh Strategic Initiatives (without descriptions)
Global Lehigh Strategic Initiatives (without descriptions)Global Lehigh Strategic Initiatives (without descriptions)
Global Lehigh Strategic Initiatives (without descriptions)
 
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxINTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
 
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfInclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17
 
Transaction Management in Database Management System
Transaction Management in Database Management SystemTransaction Management in Database Management System
Transaction Management in Database Management System
 
How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17
 
How to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPHow to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERP
 
Judging the Relevance and worth of ideas part 2.pptx
Judging the Relevance  and worth of ideas part 2.pptxJudging the Relevance  and worth of ideas part 2.pptx
Judging the Relevance and worth of ideas part 2.pptx
 
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
 
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptxYOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
 

CI Tools and Practices for Improving Software Quality

  • 2. Agenda • Definition • CI Considerations • About tools • CI as a scheduling in the development process
  • 3. Sources • Duvall, Matyas and Glover. Continuous integration improving software quality and reducing risk. Addison Wesley, 2007. • Martin Fowler. Continuous Integration. Available in http://www.martinfowler.com/articles/continuousIntegration .html • Schach, Stephen R. Object-Oriented and Classical Software Engineering Eighth Edition. Mc Graw Hill, 2010 • And so others…
  • 4. Critical Issue Supporting the idea of creating systems to continuously build and test systems in response to changes in source control.
  • 5. Continuous Integration (From Wikipedia) • Continuous Integration emerged in the Extreme Programming (XP) community • XP advocates Martin Fowler and Kent Beck first wrote about continuous integration (1999). • Beck's book Extreme Programming Explained, the original reference for Extreme Programming, also describes CI. • Fowler's paper is a popular source of information on the subject.
  • 6. Martin Fowler and CI In his very popular “Continuous Integration” article, Martin Fowler describes CI as: • “. . . a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily—leading to multiple integrations per day. • Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible. • Many teams find that this approach leads to significantly reduced integration problems and allows a team to develop cohesive software more rapidly”
  • 7. Wikipedia say us!!! Continuous integration (CI) implements continuous processes of applying quality control — small pieces of effort, applied frequently. Continuous integration aims to improve the quality of software, and to reduce the time taken to deliver it, by replacing the traditional practice of applying quality control after completing all development. From: http://en.wikipedia.org/wiki/Continuous_integration
  • 8. This means • Continuous integration improving software quality and reducing risk • As the complexity of a project increases (even just adding one more person), there is a greater need to integrate and ensure that software components work together—early and often. • Waiting until the end of a project to integrate leads to all sorts of software quality problems, which are costly and often lead to project delays. CI addresses these risks faster and in smaller increments
  • 9. The value of CI is to: • Reduce risks • Reduce repetitive manual processes • Generate deployable software at any time and at any place • Enable better project visibility • Establish greater confidence in the software product from the development team
  • 10. Typical CI context From: Continuous integration improving software quality and reducing risk (Or any other version repository)
  • 11. Beyond to the CI Tools… Practicing CI is more than installing and configuring some tools. • How many of the following items are you consistently performing on your project? • How many of the other CI practices can improve your development capabilities?
  • 12. Beyond to the CI Tools… • On average, is everyone on your team committing code at least once a day? Are you employing techniques to make it easier to commit code often? • What percentage of each day’s integration builds is successful (that is, the most recent build run has passed)? • Is everyone on your team running a private build before committing to the repository so that integration errors are reduced? • Have you scripted your builds to fail if any of your tests or inspections fail? • Is a broken integration build a priority to fix on your projects? • Do you avoid getting the latest code from the version control system when there is a broken build? • How often do you consider adding automated processes to your build and CI system—on a continuous or even periodic basis?
  • 13. But Tools are so important… …Hudson/Jenkins is widely recognized as a core tool for developers, QA engineers, project managers, release engineers, DevOps, and managers. It is also a crucial open source option for teams using Agile methodology, in which continuous integration is a fundamental practice… • Kohsuke Kawaguchi - Creator of the Jenkins CI server. In: 7 Ways to Optimize Jenkins/Hudson White Paper
  • 14. The Hudson Book (pages 3-4) • Without continuous integration, developing modern applications is practically impossible without dramatic inefficiency. There is too much unproductive down-time, and far too much waste. The development group described above would be hard pressed to release anything more than a global update once a month • In other words, when you automate build, test, and verify using a tool like Hudson you can continue developing your applications without having to wait (or synchronize) on some manual build, test, verify process.
  • 15. Just for information… • Jenkins and Hudson are the same =) in http://en.wikipedia.org/wiki/Comparison_of_continuous_i ntegration_software • Why Hudson and Jenkins names were choosed? • Jenkins is an open source continuous integration tool written in Java. The project was forked from Hudson after a dispute with Oracle, which claims the right to trademark the Hudson name and has applied for such a trademark as of December 2010
  • 16. CI as a scheduling method • RUP proposes the Integration Build Plan • The purpose of this is to define the order in which the components should be implemented, which builds to create when integrating the system, and how they are to be assessed.
  • 17. CI as a scheduling method • RUP: You should adjust the outline of the Integration Build Plan to suit the nature of your project. For example, if the system is large, there may be a case for having subsidiary plans for each implementation subsystem. The formality and extent of the test material contained or referenced from the Integration Build Plan will vary depending on the significance of the build. • The RUP approach to integration is to incrementally integrate the software. Incremental integration means that code is written and tested in small pieces, and then combined into a working whole by adding one piece at a time.
  • 18. Integration approaches • Integration then integration • Top-down Integration • Bottom-up integration • Sandwich integration Source: Object-Oriented and Classical Software Engineering Eighth Edition
  • 19. Integration approaches Source: Object-Oriented and Classical Software Engineering Eighth Edition
  • 20. Integration approaches Source: Object-Oriented and Classical Software Engineering Eighth Edition
  • 21. … While we recognize that tooling may improve or otherwise affect a continuous integration implementation, the practice of continuous integration itself requires no particular tools at all (Fowler, 2013). Consequently we regard tools to be of secondary importance, but not of primary interest… Source: Modeling continuous integration practice differences in industry software development, 2013
  • 22. And… • Now, CI is not enough… • ;(
  • 23. CI evolves as CD (Continuous Delivery) • CI literally started to change how companies looked at Build Management, Release Management, Deployment Automation, and Test Orchestration… • However, if CI started as automation of the development phase only, pretty soon the revolution embraced the test- phase of the QA team and the deployment into various environment of the Ops team, involving the whole lifecycle of a product… Source: Armenise V., Continuous Delivery with Jenkins. 2015 IEEE/ACM 3rd International Workshop on Release Engineering.
  • 24. CI evolves as CD (Continuous Delivery) • A CD platform allows Dev, QA and Ops teams to work closely together using the same orchestrator and embracing the key points of CD: • Collaboration across all the teams involved in the product-lifecycle • Extensive automation of the delivery process Source: Armenise V., Continuous Delivery with Jenkins. 2015 IEEE/ACM 3rd International Workshop on Release Engineering.
  • 25. CI evolves as CD (Continuous Delivery) • Implementing CD means being able to chain the different steps involved in the cross-team pipeline and automate their execution: from the checkout of the code and the unit-tests, • to the static code-analysis, • to the performance tests, • to the release of the binaries until the deployment into test/staging/production Source: Armenise V., Continuous Delivery with Jenkins. 2015 IEEE/ACM 3rd International Workshop on Release Engineering.
  • 26. Thanks for your attention fdgiraldo@uniquindio.edu.co