SlideShare una empresa de Scribd logo
1 de 28
Descargar para leer sin conexión
Continuous Integration
Hugo
Questions
• To developers: Do all the software components
work together if you commit this code?
• To testers: Were all the tests successful after
the latest change? How long did you spend on
those tests?
• To team leader: Were there any problems with
the last development? When did you get the
report?
• To managers: What’s the level of confidence in
your team's capability to deliver working
software.
What’s

Continuous Integration (CI)
• A software development practice where
members of a team integrate their work
frequently.
• Each integration is verified by an automated
build to detect integration errors as quickly as
possible.
• This approach leads to significantly reduced
integration problems and allows a team to
develop cohesive software more rapidly.
Overview
Features of CI
• By performing automated and continuous
compilation, database integration, testing,
inspection, deployment, and feedback, your CI
system can reduce common risks on your project,
thus leading to better confidence and improved
communication.
• “Build” is a set of activities performed to generate,
test, inspect, and deploy software.
• Private/system build
• Integration build
• Release build
Testing (Dynamic Analysis)
• Automate unit tests
• Automate component tests
• Automate system tests
• Automate functional tests
• Categorize developer tests
• Run faster tests first
• Write tests for defects
• Make component tests repeatable
• Limit test cases to one assert
Inspection (Static Analysis)
• Quantitative analysis is better than qualitative
analysis.
• Reduce code complexity (logic branch)
• Perform design reviews (coupling)
• Maintain organizational standards with code
audits
• Reduce duplicate code
• Assess code coverage
Code Complexity Review
Design Review
Code Standard Review
Code Duplication Report
Code Coverage Report
Deployment
• Produce a clean environment
• Release working software any time, any place
• Run all tests
• Possess capability to roll back release
• Label a repository's assets
• Label each build
• Create build feedback reports
Feedback
• Getting the right information to the right
people at the right time and in the right way.
• Right Information - Build Status, Inspection
Reports, Test Results.
• Right People - Project Manager, Build Master,
Technical Lead, Developer, Business Analyst.
• Right Time - When Problem Occurs Daily,
Weekly.
• Right Way - E-mail, SMS, RSS, Sound/Light,
Browser plug-in, Instant Messenger, Widgets.
Practices of CI
• Write automated developer tests
• Run private builds
• Commit code frequently
• Don’t commit broken code
• Avoid getting broken code
• Fix broken builds immediately
• All tests and inspections must pass
CI Tools
• CI tools/product
• Build scripting
• Version control
• Database
• Testing
• Automated inspection
• Deployment
• Feedback
• Documentation
Reducing Risks Using CI
• Risk is the potential for a problem to occur.
• Lack of Deployable Software
• Late Discovery of Defects
• Low-quality Software
• Lack of Project Visibility
“It Works on My Machine”
• Eliminating tight coupling between IDE and
build processes
• Use a separate machine solely for integration.
• Ensure that everything to build the software is
contained in the version control repository.
• Create a CI system to run the project build
script when it detects a change to the
repository.
Not Synching with Database
• Database is not a separate entity from
development
• Place all database artifacts in your version
control repository.
• Rebuild the database and data from the build
script.
• Test (and inspect) database with database-
specific tests.
A Missing Click on Deployment
• Automate deployment process
• Add deployment steps in the build scripts.
• Run the build script continuously whenever a
change to the version control repository is
applied.
Part-Regression Testing
• Automate regression testing
• Write unit and component tests.
• Write unit tests for the code that was changed,
based on defects.
• Configure the build script to run all the unit
tests and publish a report for every build.
• Tests are executed at every checkin to the
version control repository.
“Oops!

Something Is Not Tested”
• Adopt Code coverage tools
• Run a code coverage tool as a part of CI build
script when there is a change of version
control repository.
“Did You Get the Memo?”
• Automatic communication
• Configure CI server with the automated
mechanism that notify affected parties when a
build fails.
Inability to Visualize Software
• Always have an up-to-date view
• Generate UML diagrams of the design
automatically.
• Generator documents of source code
automatically.
Coding Standard Not Followed
• Find out any violations of the coding standard
• A one-page annotated class that contained all
of the coding standards.
• Enforce the coding standard by using
automated inspection tools as a part of the
build scripts.
Project Becomes a “Big Ball of Mud”
• Continually monitor the software architecture
• Add automated inspection tools to assess
adherence to the project’s architectural
standards.
• Run a tool such as this with every integration
build.
Duplicate Code
• Continually monitor and reduce code
duplication
• Analyze the code using a code duplication
analyzer.
• Reduce the duplicated code by refactoring the
code into a single method or component.
• Run code duplication inspections continuously
in CI system.
Value of CI
• 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

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Dev ops using Jenkins
Dev ops using JenkinsDev ops using Jenkins
Dev ops using Jenkins
 
Continuous Integration, Build Pipelines and Continuous Deployment
Continuous Integration, Build Pipelines and Continuous DeploymentContinuous Integration, Build Pipelines and Continuous Deployment
Continuous Integration, Build Pipelines and Continuous Deployment
 
Jenkins - From Continuous Integration to Continuous Delivery
Jenkins - From Continuous Integration to Continuous DeliveryJenkins - From Continuous Integration to Continuous Delivery
Jenkins - From Continuous Integration to Continuous Delivery
 
Jenkins Overview
Jenkins OverviewJenkins Overview
Jenkins Overview
 
Introduction to CICD
Introduction to CICDIntroduction to CICD
Introduction to CICD
 
Jenkins
JenkinsJenkins
Jenkins
 
Test Automation Framework with BDD and Cucumber
Test Automation Framework with BDD and CucumberTest Automation Framework with BDD and Cucumber
Test Automation Framework with BDD and Cucumber
 
Selenium with Cucumber
Selenium  with Cucumber Selenium  with Cucumber
Selenium with Cucumber
 
BDD with Cucumber
BDD with CucumberBDD with Cucumber
BDD with Cucumber
 
Introduction to CI/CD
Introduction to CI/CDIntroduction to CI/CD
Introduction to CI/CD
 
CI/CD
CI/CDCI/CD
CI/CD
 
Introduction to Bdd and cucumber
Introduction to Bdd and cucumberIntroduction to Bdd and cucumber
Introduction to Bdd and cucumber
 
What is Jenkins | Jenkins Tutorial for Beginners | Edureka
What is Jenkins | Jenkins Tutorial for Beginners | EdurekaWhat is Jenkins | Jenkins Tutorial for Beginners | Edureka
What is Jenkins | Jenkins Tutorial for Beginners | Edureka
 
Jenkins presentation
Jenkins presentationJenkins presentation
Jenkins presentation
 
An Introduction To Jenkins
An Introduction To JenkinsAn Introduction To Jenkins
An Introduction To Jenkins
 
Jenkins
JenkinsJenkins
Jenkins
 
Cucumber BDD
Cucumber BDDCucumber BDD
Cucumber BDD
 
CI and CD with Jenkins
CI and CD with JenkinsCI and CD with Jenkins
CI and CD with Jenkins
 
Jenkins Pipelines
Jenkins PipelinesJenkins Pipelines
Jenkins Pipelines
 
Jenkins tutorial
Jenkins tutorialJenkins tutorial
Jenkins tutorial
 

Destacado

Wire harness & cable assembly 進階瞭解
Wire harness & cable assembly 進階瞭解Wire harness & cable assembly 進階瞭解
Wire harness & cable assembly 進階瞭解
Yung Jui Chen 陳泳睿
 
모바일한글입력표준화
모바일한글입력표준화모바일한글입력표준화
모바일한글입력표준화
lsmgame
 
Ds 017 機械公差配合
Ds 017 機械公差配合Ds 017 機械公差配合
Ds 017 機械公差配合
handbook
 
The linux networking architecture
The linux networking architectureThe linux networking architecture
The linux networking architecture
hugo lu
 

Destacado (13)

Wire harness & cable assembly 基礎認識
Wire harness & cable assembly 基礎認識Wire harness & cable assembly 基礎認識
Wire harness & cable assembly 基礎認識
 
Dev ops 簡介
Dev ops 簡介Dev ops 簡介
Dev ops 簡介
 
咬花簡介
咬花簡介咬花簡介
咬花簡介
 
Wire harness & cable assembly 進階瞭解
Wire harness & cable assembly 進階瞭解Wire harness & cable assembly 進階瞭解
Wire harness & cable assembly 進階瞭解
 
Wire harness & cable assembly 塑膠概論
Wire harness & cable assembly 塑膠概論Wire harness & cable assembly 塑膠概論
Wire harness & cable assembly 塑膠概論
 
B+S油封選用
B+S油封選用B+S油封選用
B+S油封選用
 
모바일한글입력표준화
모바일한글입력표준화모바일한글입력표준화
모바일한글입력표준화
 
Ds 017 機械公差配合
Ds 017 機械公差配合Ds 017 機械公差配合
Ds 017 機械公差配合
 
困境與轉型:一個小型開發團隊的 DevOps 學習之旅
困境與轉型:一個小型開發團隊的 DevOps 學習之旅困境與轉型:一個小型開發團隊的 DevOps 學習之旅
困境與轉型:一個小型開發團隊的 DevOps 學習之旅
 
提到 DevOps 到底在
談些什麼玩意兒?(@ Agile Tour Taichung 2017)
提到 DevOps 到底在
談些什麼玩意兒?(@ Agile Tour Taichung 2017)提到 DevOps 到底在
談些什麼玩意兒?(@ Agile Tour Taichung 2017)
提到 DevOps 到底在
談些什麼玩意兒?(@ Agile Tour Taichung 2017)
 
The linux networking architecture
The linux networking architectureThe linux networking architecture
The linux networking architecture
 
從廢柴到成材 - 那 20 個 sprints 教會我們的事 C.C Agile #40
從廢柴到成材 - 那 20 個 sprints 教會我們的事 C.C Agile #40從廢柴到成材 - 那 20 個 sprints 教會我們的事 C.C Agile #40
從廢柴到成材 - 那 20 個 sprints 教會我們的事 C.C Agile #40
 
DevOps:建造開發維運的跨界之橋 (@ C.C. Agile #37)
DevOps:建造開發維運的跨界之橋 (@ C.C. Agile #37)DevOps:建造開發維運的跨界之橋 (@ C.C. Agile #37)
DevOps:建造開發維運的跨界之橋 (@ C.C. Agile #37)
 

Similar a Continuous integration

Continuous deployment steve povilaitis
Continuous deployment   steve povilaitisContinuous deployment   steve povilaitis
Continuous deployment steve povilaitis
Steve Povilaitis
 
Introduction to-automated-testing
Introduction to-automated-testingIntroduction to-automated-testing
Introduction to-automated-testing
BestBrains
 
Software engineering
Software engineeringSoftware engineering
Software engineering
bartlowe
 

Similar a Continuous integration (20)

Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
Enter the Team City
Enter the Team CityEnter the Team City
Enter the Team City
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
Hudson
HudsonHudson
Hudson
 
Jenkins_1679702972.pdf
Jenkins_1679702972.pdfJenkins_1679702972.pdf
Jenkins_1679702972.pdf
 
jenkins.pdf
jenkins.pdfjenkins.pdf
jenkins.pdf
 
Agile Engineering Best Practices by Richard Cheng
Agile Engineering Best Practices by Richard ChengAgile Engineering Best Practices by Richard Cheng
Agile Engineering Best Practices by Richard Cheng
 
Continuous deployment steve povilaitis
Continuous deployment   steve povilaitisContinuous deployment   steve povilaitis
Continuous deployment steve povilaitis
 
Agile Engineering Sparker GLASScon 2015
Agile Engineering Sparker GLASScon 2015Agile Engineering Sparker GLASScon 2015
Agile Engineering Sparker GLASScon 2015
 
Introduction to Automated Testing
Introduction to Automated TestingIntroduction to Automated Testing
Introduction to Automated Testing
 
Introduction to-automated-testing
Introduction to-automated-testingIntroduction to-automated-testing
Introduction to-automated-testing
 
Introduction to Continuous Integration
Introduction to Continuous IntegrationIntroduction to Continuous Integration
Introduction to Continuous Integration
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
Agile engineering practices
Agile engineering practicesAgile engineering practices
Agile engineering practices
 
Continuous Delivery for Open Source Java projects
Continuous Delivery for Open Source Java projectsContinuous Delivery for Open Source Java projects
Continuous Delivery for Open Source Java projects
 
CD
CDCD
CD
 
Devops architecture
Devops architectureDevops architecture
Devops architecture
 
DevOps Overview in my own words
DevOps Overview in my own wordsDevOps Overview in my own words
DevOps Overview in my own words
 
Application Lifecycle Management
Application Lifecycle ManagementApplication Lifecycle Management
Application Lifecycle Management
 
Introduction to Continuous Integration
Introduction to Continuous IntegrationIntroduction to Continuous Integration
Introduction to Continuous Integration
 

Más de hugo lu

Testing in swift
Testing in swiftTesting in swift
Testing in swift
hugo lu
 

Más de hugo lu (11)

WSO2 IoTS Device Manufacturer Guide
WSO2 IoTS Device Manufacturer GuideWSO2 IoTS Device Manufacturer Guide
WSO2 IoTS Device Manufacturer Guide
 
關於測試,我說的其實是......
關於測試,我說的其實是......關於測試,我說的其實是......
關於測試,我說的其實是......
 
Sql injection 幼幼班
Sql injection 幼幼班Sql injection 幼幼班
Sql injection 幼幼班
 
Sql or no sql, that is the question
Sql or no sql, that is the questionSql or no sql, that is the question
Sql or no sql, that is the question
 
Swift 2.0 的新玩意
Swift 2.0 的新玩意Swift 2.0 的新玩意
Swift 2.0 的新玩意
 
精實執行工作坊
精實執行工作坊精實執行工作坊
精實執行工作坊
 
Testing in swift
Testing in swiftTesting in swift
Testing in swift
 
畫出商業模式
畫出商業模式畫出商業模式
畫出商業模式
 
精實軟體度量
精實軟體度量精實軟體度量
精實軟體度量
 
看板實驗室
看板實驗室看板實驗室
看板實驗室
 
嵌入式測試驅動開發
嵌入式測試驅動開發嵌入式測試驅動開發
嵌入式測試驅動開發
 

Último

Último (20)

W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfThe Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
BUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptxBUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptx
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
Pharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodologyPharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodology
 
ManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide DeckManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide Deck
 

Continuous integration

  • 2. Questions • To developers: Do all the software components work together if you commit this code? • To testers: Were all the tests successful after the latest change? How long did you spend on those tests? • To team leader: Were there any problems with the last development? When did you get the report? • To managers: What’s the level of confidence in your team's capability to deliver working software.
  • 3. What’s
 Continuous Integration (CI) • A software development practice where members of a team integrate their work frequently. • Each integration is verified by an automated build to detect integration errors as quickly as possible. • This approach leads to significantly reduced integration problems and allows a team to develop cohesive software more rapidly.
  • 5. Features of CI • By performing automated and continuous compilation, database integration, testing, inspection, deployment, and feedback, your CI system can reduce common risks on your project, thus leading to better confidence and improved communication. • “Build” is a set of activities performed to generate, test, inspect, and deploy software. • Private/system build • Integration build • Release build
  • 6. Testing (Dynamic Analysis) • Automate unit tests • Automate component tests • Automate system tests • Automate functional tests • Categorize developer tests • Run faster tests first • Write tests for defects • Make component tests repeatable • Limit test cases to one assert
  • 7. Inspection (Static Analysis) • Quantitative analysis is better than qualitative analysis. • Reduce code complexity (logic branch) • Perform design reviews (coupling) • Maintain organizational standards with code audits • Reduce duplicate code • Assess code coverage
  • 13. Deployment • Produce a clean environment • Release working software any time, any place • Run all tests • Possess capability to roll back release • Label a repository's assets • Label each build • Create build feedback reports
  • 14. Feedback • Getting the right information to the right people at the right time and in the right way. • Right Information - Build Status, Inspection Reports, Test Results. • Right People - Project Manager, Build Master, Technical Lead, Developer, Business Analyst. • Right Time - When Problem Occurs Daily, Weekly. • Right Way - E-mail, SMS, RSS, Sound/Light, Browser plug-in, Instant Messenger, Widgets.
  • 15. Practices of CI • Write automated developer tests • Run private builds • Commit code frequently • Don’t commit broken code • Avoid getting broken code • Fix broken builds immediately • All tests and inspections must pass
  • 16. CI Tools • CI tools/product • Build scripting • Version control • Database • Testing • Automated inspection • Deployment • Feedback • Documentation
  • 17. Reducing Risks Using CI • Risk is the potential for a problem to occur. • Lack of Deployable Software • Late Discovery of Defects • Low-quality Software • Lack of Project Visibility
  • 18. “It Works on My Machine” • Eliminating tight coupling between IDE and build processes • Use a separate machine solely for integration. • Ensure that everything to build the software is contained in the version control repository. • Create a CI system to run the project build script when it detects a change to the repository.
  • 19. Not Synching with Database • Database is not a separate entity from development • Place all database artifacts in your version control repository. • Rebuild the database and data from the build script. • Test (and inspect) database with database- specific tests.
  • 20. A Missing Click on Deployment • Automate deployment process • Add deployment steps in the build scripts. • Run the build script continuously whenever a change to the version control repository is applied.
  • 21. Part-Regression Testing • Automate regression testing • Write unit and component tests. • Write unit tests for the code that was changed, based on defects. • Configure the build script to run all the unit tests and publish a report for every build. • Tests are executed at every checkin to the version control repository.
  • 22. “Oops!
 Something Is Not Tested” • Adopt Code coverage tools • Run a code coverage tool as a part of CI build script when there is a change of version control repository.
  • 23. “Did You Get the Memo?” • Automatic communication • Configure CI server with the automated mechanism that notify affected parties when a build fails.
  • 24. Inability to Visualize Software • Always have an up-to-date view • Generate UML diagrams of the design automatically. • Generator documents of source code automatically.
  • 25. Coding Standard Not Followed • Find out any violations of the coding standard • A one-page annotated class that contained all of the coding standards. • Enforce the coding standard by using automated inspection tools as a part of the build scripts.
  • 26. Project Becomes a “Big Ball of Mud” • Continually monitor the software architecture • Add automated inspection tools to assess adherence to the project’s architectural standards. • Run a tool such as this with every integration build.
  • 27. Duplicate Code • Continually monitor and reduce code duplication • Analyze the code using a code duplication analyzer. • Reduce the duplicated code by refactoring the code into a single method or component. • Run code duplication inspections continuously in CI system.
  • 28. Value of CI • 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