SlideShare a Scribd company logo
 
Continuous Integration Perficient China Joseph Wang [email_address]
Agenda Warm Up What’s  CI Benefits of CI –  Why When  to implement CI Who  need to use CI How  to CI Demo
Warm Up Do no harm Pay me now or pay me more later Agile: Working software vs. comprehensive documents
Do no harm! Hippocratic oath –  “ First, do no harm!”
Pay me now or pay me more later
Working software vs. comprehensive documents
What is CI A development methodology Of daily developer integrations Verified by automated builds
What is CI Is a software engineering  practice  in which  isolated changes  are  immediately  tested and reported on when they are added to a larger  code base .   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. -- Martin Flower
Martin Flower's Rules for CI Maintain a single source repository. Automate the build Make your build self-testing Everyone commits to the mainline every day Every commit should build the mainline on an integration machine Keep the build fast Test in a clone of the production environment Make it easy for anyone to get the latest executable Everyone can see what's happening Automate deployment
Value of CI To make things Better Faster  Cheaper
Better Better design Make sure the software is testable Better quality That is tested early and often Defects are detected and fixed sooner Health of software is measurable Always have a deployable software That adheres to best practices and coding standards Greater software confidence Better project visibility “ What do you mean the tests are failing?” “ What’s in version 1.2.3 of the build?” “ What’s our code coverage now?
Faster Test in parallel, not at the end No integration points Builds become a non event
Cheaper Identify defects earlier Fix when least costly Easily repeatable testing Reduce repetitive manual effort
When  to implement CI When??? Implement early in the project
Who needs to use CI Developer Build master QA Project manager Any others
How to Start At least, daily checkin Automated build script A code repository A dedicated CI server Some rules
How to Start - Improve Some more? Code quality metric Database integration Document generation Anything else?
How to Start - Martin Flower's Rule for CI Maintain a single source repository. Automate the build Make your build self-testing Everyone commits to the mainline every day Every commit should build the mainline on an integration machine Keep the build fast Test in a clone of the production environment Make it easy for anyone to get the latest executable Everyone can see what's happening Automate deployment
Best practices Committing code frequently Check in code at least daily Categorizing developer tests Make the build faster Using a dedicated integration build machine Cruise Control, Hudson Ant/xUnit/Maven/etc. Using continuous feedback mechanisms  (Email, SMS, etc) Staging builds
Best practices - Continued
Good  practices - Attention! Good process vs. Passive attitude CI will be  useless  if developers always ignore CI reports
Demos -- Hudson Features Easy installation  Written in Java Easy configuration RSS/E-mail/IM integration JUnit/TestNG test reporting Distributed builds File fingerprinting Plug-in support Trend diagram shows build results
Demos – framework  Sonar for code quality Hudson for CI Subversion for code repository
Demo Now, Show me the Demo!
Open Discussion Send email to  [email_address] To join the CI google wave
References http://martinfowler.com/articles/continuousIntegration.html Continuous Integration: Improving Software Quality and Reducing Risk ---authored by Paul Duvall  http://www.integratebutton.com/index.html Practices of an Agile Developer  https://hudson.dev.java.net/ Appfuse:  https://appfuse.dev.java.net --Other stuff http://www.slideshare.net/carlo.bonamico/continuous-integration-with-hudson http://hudson.gotdns.com/wiki/ Using proxy: 128.2.223.63, port:3128 JBOSS's hudson website:  http://hudson.jboss.org/hudson/  Lucene's hudson website:  http://lucene.zones.apache.org:8080/hudson/ http://www.selenic.com/mercurial/wiki/
Thanks

More Related Content

PPT
Google App Engine - Java Style
PPT
Improve Development Process with Open Source Software
PDF
Continuous Integration at T3CON08
ODP
Improving code quality using CI
PDF
Continuous Integration 101
PPTX
Introduction to Integration Testing With Cypress
PDF
e2e testing with cypress
PDF
Automation Testing Approach for Responsive Web Design
Google App Engine - Java Style
Improve Development Process with Open Source Software
Continuous Integration at T3CON08
Improving code quality using CI
Continuous Integration 101
Introduction to Integration Testing With Cypress
e2e testing with cypress
Automation Testing Approach for Responsive Web Design

What's hot (20)

KEY
Hudson Continuous Integration for PHP
PPTX
QA Challenge Accepted 4.0 - Cypress vs. Selenium
PPTX
Continous integration with jenkins
PPTX
Cypress report
PPTX
Continuous delivery applied
PPTX
Continuous Integration and Continuous Deployment in Enterprise scenario
PPTX
How to Get Started with Cypress
PDF
Merge hells!! feature toggles to the rescue
PPTX
CI back to basis
PPTX
Continuous integration with Jenkins
PDF
Improving software quality using Continuous Integration
PPTX
Back to basic: continuous integration (Madrid DevOps)
ODP
Continous integration
PPTX
Advanced deployment scenarios
KEY
Testing with Jenkins, Selenium and Continuous Deployment
PPTX
Advanced deployment scenarios (netcoreconf)
PPT
Continous Integration: A Case Study
KEY
Continuous Integration In A PHP World
PPTX
Building the Test Automation Framework - Jenkins for Testers
PDF
Simple Continous Integration
Hudson Continuous Integration for PHP
QA Challenge Accepted 4.0 - Cypress vs. Selenium
Continous integration with jenkins
Cypress report
Continuous delivery applied
Continuous Integration and Continuous Deployment in Enterprise scenario
How to Get Started with Cypress
Merge hells!! feature toggles to the rescue
CI back to basis
Continuous integration with Jenkins
Improving software quality using Continuous Integration
Back to basic: continuous integration (Madrid DevOps)
Continous integration
Advanced deployment scenarios
Testing with Jenkins, Selenium and Continuous Deployment
Advanced deployment scenarios (netcoreconf)
Continous Integration: A Case Study
Continuous Integration In A PHP World
Building the Test Automation Framework - Jenkins for Testers
Simple Continous Integration
Ad

Similar to Continuous Integration (20)

PPT
Continuous Integration
PPTX
continous integration and delivery
PPTX
Lets talk about CI CD Pipeline in Agile
PPTX
Introducing Continuous Integration Using Vsts
PPTX
Devops insights
PPTX
Using Continuous Integration To Ensure Project Health New
PPT
Continuous Integration: A Case Study
PPTX
Continuous Integrations & Deployments
PDF
Automating Regression Testing in CI_CD.pdf
PDF
Automating Regression Testing in CI_CD.pdf
PDF
Magenic-White-Paper-Continuous-Inegration-for-QA-Teams
DOCX
Continuous Integration vs Continuous Delivery vs Continuous Deployment
PPTX
What is Continuous Integration and Continuous Delivery
PDF
Continuous Integration - What even is it?
PPTX
Dev ops culture and practices
PDF
Continuous Integration
PDF
How to deploy to production 10 times a day
PDF
"How to deploy to production 10 times a day" Андрей Шумада
PPT
Continuous Integration
PPT
Part 2 improving your software development v1.0
Continuous Integration
continous integration and delivery
Lets talk about CI CD Pipeline in Agile
Introducing Continuous Integration Using Vsts
Devops insights
Using Continuous Integration To Ensure Project Health New
Continuous Integration: A Case Study
Continuous Integrations & Deployments
Automating Regression Testing in CI_CD.pdf
Automating Regression Testing in CI_CD.pdf
Magenic-White-Paper-Continuous-Inegration-for-QA-Teams
Continuous Integration vs Continuous Delivery vs Continuous Deployment
What is Continuous Integration and Continuous Delivery
Continuous Integration - What even is it?
Dev ops culture and practices
Continuous Integration
How to deploy to production 10 times a day
"How to deploy to production 10 times a day" Андрей Шумада
Continuous Integration
Part 2 improving your software development v1.0
Ad

Recently uploaded (20)

PDF
NewMind AI Monthly Chronicles - July 2025
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
KodekX | Application Modernization Development
PDF
Advanced Soft Computing BINUS July 2025.pdf
PDF
Machine learning based COVID-19 study performance prediction
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Modernizing your data center with Dell and AMD
PPTX
Big Data Technologies - Introduction.pptx
PPTX
breach-and-attack-simulation-cybersecurity-india-chennai-defenderrabbit-2025....
PPT
Teaching material agriculture food technology
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Electronic commerce courselecture one. Pdf
NewMind AI Monthly Chronicles - July 2025
20250228 LYD VKU AI Blended-Learning.pptx
Unlocking AI with Model Context Protocol (MCP)
Dropbox Q2 2025 Financial Results & Investor Presentation
Review of recent advances in non-invasive hemoglobin estimation
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
CIFDAQ's Market Insight: SEC Turns Pro Crypto
The AUB Centre for AI in Media Proposal.docx
KodekX | Application Modernization Development
Advanced Soft Computing BINUS July 2025.pdf
Machine learning based COVID-19 study performance prediction
“AI and Expert System Decision Support & Business Intelligence Systems”
Network Security Unit 5.pdf for BCA BBA.
Diabetes mellitus diagnosis method based random forest with bat algorithm
Modernizing your data center with Dell and AMD
Big Data Technologies - Introduction.pptx
breach-and-attack-simulation-cybersecurity-india-chennai-defenderrabbit-2025....
Teaching material agriculture food technology
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Electronic commerce courselecture one. Pdf

Continuous Integration

  • 1.  
  • 2. Continuous Integration Perficient China Joseph Wang [email_address]
  • 3. Agenda Warm Up What’s CI Benefits of CI – Why When to implement CI Who need to use CI How to CI Demo
  • 4. Warm Up Do no harm Pay me now or pay me more later Agile: Working software vs. comprehensive documents
  • 5. Do no harm! Hippocratic oath – “ First, do no harm!”
  • 6. Pay me now or pay me more later
  • 7. Working software vs. comprehensive documents
  • 8. What is CI A development methodology Of daily developer integrations Verified by automated builds
  • 9. What is CI Is a software engineering practice in which isolated changes are immediately tested and reported on when they are added to a larger code base . 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. -- Martin Flower
  • 10. Martin Flower's Rules for CI Maintain a single source repository. Automate the build Make your build self-testing Everyone commits to the mainline every day Every commit should build the mainline on an integration machine Keep the build fast Test in a clone of the production environment Make it easy for anyone to get the latest executable Everyone can see what's happening Automate deployment
  • 11. Value of CI To make things Better Faster Cheaper
  • 12. Better Better design Make sure the software is testable Better quality That is tested early and often Defects are detected and fixed sooner Health of software is measurable Always have a deployable software That adheres to best practices and coding standards Greater software confidence Better project visibility “ What do you mean the tests are failing?” “ What’s in version 1.2.3 of the build?” “ What’s our code coverage now?
  • 13. Faster Test in parallel, not at the end No integration points Builds become a non event
  • 14. Cheaper Identify defects earlier Fix when least costly Easily repeatable testing Reduce repetitive manual effort
  • 15. When to implement CI When??? Implement early in the project
  • 16. Who needs to use CI Developer Build master QA Project manager Any others
  • 17. How to Start At least, daily checkin Automated build script A code repository A dedicated CI server Some rules
  • 18. How to Start - Improve Some more? Code quality metric Database integration Document generation Anything else?
  • 19. How to Start - Martin Flower's Rule for CI Maintain a single source repository. Automate the build Make your build self-testing Everyone commits to the mainline every day Every commit should build the mainline on an integration machine Keep the build fast Test in a clone of the production environment Make it easy for anyone to get the latest executable Everyone can see what's happening Automate deployment
  • 20. Best practices Committing code frequently Check in code at least daily Categorizing developer tests Make the build faster Using a dedicated integration build machine Cruise Control, Hudson Ant/xUnit/Maven/etc. Using continuous feedback mechanisms (Email, SMS, etc) Staging builds
  • 21. Best practices - Continued
  • 22. Good practices - Attention! Good process vs. Passive attitude CI will be useless if developers always ignore CI reports
  • 23. Demos -- Hudson Features Easy installation Written in Java Easy configuration RSS/E-mail/IM integration JUnit/TestNG test reporting Distributed builds File fingerprinting Plug-in support Trend diagram shows build results
  • 24. Demos – framework Sonar for code quality Hudson for CI Subversion for code repository
  • 25. Demo Now, Show me the Demo!
  • 26. Open Discussion Send email to [email_address] To join the CI google wave
  • 27. References http://martinfowler.com/articles/continuousIntegration.html Continuous Integration: Improving Software Quality and Reducing Risk ---authored by Paul Duvall http://www.integratebutton.com/index.html Practices of an Agile Developer https://hudson.dev.java.net/ Appfuse: https://appfuse.dev.java.net --Other stuff http://www.slideshare.net/carlo.bonamico/continuous-integration-with-hudson http://hudson.gotdns.com/wiki/ Using proxy: 128.2.223.63, port:3128 JBOSS's hudson website: http://hudson.jboss.org/hudson/ Lucene's hudson website: http://lucene.zones.apache.org:8080/hudson/ http://www.selenic.com/mercurial/wiki/