SlideShare une entreprise Scribd logo
1  sur  26
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

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
 

Tendances (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
 

En vedette

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
 

En vedette (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
 

Similaire à 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
 

Similaire à 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
 

Plus de 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
 

Plus de 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
 

Dernier

ARTERIAL BLOOD GAS ANALYSIS........pptx
ARTERIAL BLOOD  GAS ANALYSIS........pptxARTERIAL BLOOD  GAS ANALYSIS........pptx
ARTERIAL BLOOD GAS ANALYSIS........pptxAneriPatwari
 
How to Manage Buy 3 Get 1 Free in Odoo 17
How to Manage Buy 3 Get 1 Free in Odoo 17How to Manage Buy 3 Get 1 Free in Odoo 17
How to Manage Buy 3 Get 1 Free in Odoo 17Celine George
 
Team Lead Succeed – Helping you and your team achieve high-performance teamwo...
Team Lead Succeed – Helping you and your team achieve high-performance teamwo...Team Lead Succeed – Helping you and your team achieve high-performance teamwo...
Team Lead Succeed – Helping you and your team achieve high-performance teamwo...Association for Project Management
 
Unraveling Hypertext_ Analyzing Postmodern Elements in Literature.pptx
Unraveling Hypertext_ Analyzing  Postmodern Elements in  Literature.pptxUnraveling Hypertext_ Analyzing  Postmodern Elements in  Literature.pptx
Unraveling Hypertext_ Analyzing Postmodern Elements in Literature.pptxDhatriParmar
 
Active Learning Strategies (in short ALS).pdf
Active Learning Strategies (in short ALS).pdfActive Learning Strategies (in short ALS).pdf
Active Learning Strategies (in short ALS).pdfPatidar M
 
Congestive Cardiac Failure..presentation
Congestive Cardiac Failure..presentationCongestive Cardiac Failure..presentation
Congestive Cardiac Failure..presentationdeepaannamalai16
 
ICS2208 Lecture6 Notes for SL spaces.pdf
ICS2208 Lecture6 Notes for SL spaces.pdfICS2208 Lecture6 Notes for SL spaces.pdf
ICS2208 Lecture6 Notes for SL spaces.pdfVanessa Camilleri
 
Tree View Decoration Attribute in the Odoo 17
Tree View Decoration Attribute in the Odoo 17Tree View Decoration Attribute in the Odoo 17
Tree View Decoration Attribute in the Odoo 17Celine George
 
Grade Three -ELLNA-REVIEWER-ENGLISH.pptx
Grade Three -ELLNA-REVIEWER-ENGLISH.pptxGrade Three -ELLNA-REVIEWER-ENGLISH.pptx
Grade Three -ELLNA-REVIEWER-ENGLISH.pptxkarenfajardo43
 
CHEST Proprioceptive neuromuscular facilitation.pptx
CHEST Proprioceptive neuromuscular facilitation.pptxCHEST Proprioceptive neuromuscular facilitation.pptx
CHEST Proprioceptive neuromuscular facilitation.pptxAneriPatwari
 
4.11.24 Poverty and Inequality in America.pptx
4.11.24 Poverty and Inequality in America.pptx4.11.24 Poverty and Inequality in America.pptx
4.11.24 Poverty and Inequality in America.pptxmary850239
 
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdfGrade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdfJemuel Francisco
 
4.9.24 School Desegregation in Boston.pptx
4.9.24 School Desegregation in Boston.pptx4.9.24 School Desegregation in Boston.pptx
4.9.24 School Desegregation in Boston.pptxmary850239
 
MS4 level being good citizen -imperative- (1) (1).pdf
MS4 level   being good citizen -imperative- (1) (1).pdfMS4 level   being good citizen -imperative- (1) (1).pdf
MS4 level being good citizen -imperative- (1) (1).pdfMr Bounab Samir
 
Concurrency Control in Database Management system
Concurrency Control in Database Management systemConcurrency Control in Database Management system
Concurrency Control in Database Management systemChristalin Nelson
 
Q-Factor General Quiz-7th April 2024, Quiz Club NITW
Q-Factor General Quiz-7th April 2024, Quiz Club NITWQ-Factor General Quiz-7th April 2024, Quiz Club NITW
Q-Factor General Quiz-7th April 2024, Quiz Club NITWQuiz Club NITW
 
ClimART Action | eTwinning Project
ClimART Action    |    eTwinning ProjectClimART Action    |    eTwinning Project
ClimART Action | eTwinning Projectjordimapav
 
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnv
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnvESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnv
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnvRicaMaeCastro1
 

Dernier (20)

ARTERIAL BLOOD GAS ANALYSIS........pptx
ARTERIAL BLOOD  GAS ANALYSIS........pptxARTERIAL BLOOD  GAS ANALYSIS........pptx
ARTERIAL BLOOD GAS ANALYSIS........pptx
 
Mattingly "AI & Prompt Design: Large Language Models"
Mattingly "AI & Prompt Design: Large Language Models"Mattingly "AI & Prompt Design: Large Language Models"
Mattingly "AI & Prompt Design: Large Language Models"
 
How to Manage Buy 3 Get 1 Free in Odoo 17
How to Manage Buy 3 Get 1 Free in Odoo 17How to Manage Buy 3 Get 1 Free in Odoo 17
How to Manage Buy 3 Get 1 Free in Odoo 17
 
Team Lead Succeed – Helping you and your team achieve high-performance teamwo...
Team Lead Succeed – Helping you and your team achieve high-performance teamwo...Team Lead Succeed – Helping you and your team achieve high-performance teamwo...
Team Lead Succeed – Helping you and your team achieve high-performance teamwo...
 
Unraveling Hypertext_ Analyzing Postmodern Elements in Literature.pptx
Unraveling Hypertext_ Analyzing  Postmodern Elements in  Literature.pptxUnraveling Hypertext_ Analyzing  Postmodern Elements in  Literature.pptx
Unraveling Hypertext_ Analyzing Postmodern Elements in Literature.pptx
 
Active Learning Strategies (in short ALS).pdf
Active Learning Strategies (in short ALS).pdfActive Learning Strategies (in short ALS).pdf
Active Learning Strategies (in short ALS).pdf
 
Congestive Cardiac Failure..presentation
Congestive Cardiac Failure..presentationCongestive Cardiac Failure..presentation
Congestive Cardiac Failure..presentation
 
ICS2208 Lecture6 Notes for SL spaces.pdf
ICS2208 Lecture6 Notes for SL spaces.pdfICS2208 Lecture6 Notes for SL spaces.pdf
ICS2208 Lecture6 Notes for SL spaces.pdf
 
Tree View Decoration Attribute in the Odoo 17
Tree View Decoration Attribute in the Odoo 17Tree View Decoration Attribute in the Odoo 17
Tree View Decoration Attribute in the Odoo 17
 
Grade Three -ELLNA-REVIEWER-ENGLISH.pptx
Grade Three -ELLNA-REVIEWER-ENGLISH.pptxGrade Three -ELLNA-REVIEWER-ENGLISH.pptx
Grade Three -ELLNA-REVIEWER-ENGLISH.pptx
 
CHEST Proprioceptive neuromuscular facilitation.pptx
CHEST Proprioceptive neuromuscular facilitation.pptxCHEST Proprioceptive neuromuscular facilitation.pptx
CHEST Proprioceptive neuromuscular facilitation.pptx
 
4.11.24 Poverty and Inequality in America.pptx
4.11.24 Poverty and Inequality in America.pptx4.11.24 Poverty and Inequality in America.pptx
4.11.24 Poverty and Inequality in America.pptx
 
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdfGrade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
 
4.9.24 School Desegregation in Boston.pptx
4.9.24 School Desegregation in Boston.pptx4.9.24 School Desegregation in Boston.pptx
4.9.24 School Desegregation in Boston.pptx
 
MS4 level being good citizen -imperative- (1) (1).pdf
MS4 level   being good citizen -imperative- (1) (1).pdfMS4 level   being good citizen -imperative- (1) (1).pdf
MS4 level being good citizen -imperative- (1) (1).pdf
 
Concurrency Control in Database Management system
Concurrency Control in Database Management systemConcurrency Control in Database Management system
Concurrency Control in Database Management system
 
prashanth updated resume 2024 for Teaching Profession
prashanth updated resume 2024 for Teaching Professionprashanth updated resume 2024 for Teaching Profession
prashanth updated resume 2024 for Teaching Profession
 
Q-Factor General Quiz-7th April 2024, Quiz Club NITW
Q-Factor General Quiz-7th April 2024, Quiz Club NITWQ-Factor General Quiz-7th April 2024, Quiz Club NITW
Q-Factor General Quiz-7th April 2024, Quiz Club NITW
 
ClimART Action | eTwinning Project
ClimART Action    |    eTwinning ProjectClimART Action    |    eTwinning Project
ClimART Action | eTwinning Project
 
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnv
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnvESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnv
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnv
 

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