SlideShare a Scribd company logo
1 of 28
Download to read offline
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

More Related Content

What's hot

Introduction to CICD
Introduction to CICDIntroduction to CICD
Introduction to CICDKnoldus Inc.
 
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 DeliveryVirendra Bhalothia
 
CI and CD with Jenkins
CI and CD with JenkinsCI and CD with Jenkins
CI and CD with JenkinsMartin Málek
 
CI/CD 101
CI/CD 101CI/CD 101
CI/CD 101djdule
 
CI/CD Overview
CI/CD OverviewCI/CD Overview
CI/CD OverviewAn Nguyen
 
Jenkins Introduction
Jenkins IntroductionJenkins Introduction
Jenkins IntroductionPavan Gupta
 
Fundamentals of DevOps and CI/CD
Fundamentals of DevOps and CI/CDFundamentals of DevOps and CI/CD
Fundamentals of DevOps and CI/CDBatyr Nuryyev
 
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 DeploymentChristopher Read
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOpsAhmed Adel
 
Agile Testing and Test Automation
Agile Testing and Test AutomationAgile Testing and Test Automation
Agile Testing and Test AutomationNaveen Kumar Singh
 
Continuous Delivery, Continuous Integration
Continuous Delivery, Continuous Integration Continuous Delivery, Continuous Integration
Continuous Delivery, Continuous Integration Amazon Web Services
 

What's hot (20)

Introduction to CICD
Introduction to CICDIntroduction to CICD
Introduction to CICD
 
Automated Deployments
Automated DeploymentsAutomated Deployments
Automated Deployments
 
intro to DevOps
intro to DevOpsintro to DevOps
intro to DevOps
 
Jenkins tutorial
Jenkins tutorialJenkins tutorial
Jenkins tutorial
 
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
 
DevOps or DevSecOps
DevOps or DevSecOpsDevOps or DevSecOps
DevOps or DevSecOps
 
CI and CD with Jenkins
CI and CD with JenkinsCI and CD with Jenkins
CI and CD with Jenkins
 
Jenkins
JenkinsJenkins
Jenkins
 
CI/CD
CI/CDCI/CD
CI/CD
 
CI/CD 101
CI/CD 101CI/CD 101
CI/CD 101
 
CI/CD Overview
CI/CD OverviewCI/CD Overview
CI/CD Overview
 
Jenkins Introduction
Jenkins IntroductionJenkins Introduction
Jenkins Introduction
 
Fundamentals of DevOps and CI/CD
Fundamentals of DevOps and CI/CDFundamentals of DevOps and CI/CD
Fundamentals of DevOps and CI/CD
 
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
 
Continuous Integration vs Continuous Delivery vs Continuous Deployment
Continuous Integration vs Continuous Delivery vs Continuous Deployment Continuous Integration vs Continuous Delivery vs Continuous Deployment
Continuous Integration vs Continuous Delivery vs Continuous Deployment
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOps
 
DevSecOps: What Why and How : Blackhat 2019
DevSecOps: What Why and How : Blackhat 2019DevSecOps: What Why and How : Blackhat 2019
DevSecOps: What Why and How : Blackhat 2019
 
Agile Testing and Test Automation
Agile Testing and Test AutomationAgile Testing and Test Automation
Agile Testing and Test Automation
 
Continuous Delivery, Continuous Integration
Continuous Delivery, Continuous Integration Continuous Delivery, Continuous Integration
Continuous Delivery, Continuous Integration
 
Jenkins
JenkinsJenkins
Jenkins
 

Viewers also liked

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

Viewers also liked (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 to Continuous integration

Continuous Integration
Continuous IntegrationContinuous Integration
Continuous IntegrationXPDays
 
Hudson
HudsonHudson
Hudson8x8
 
Jenkins_1679702972.pdf
Jenkins_1679702972.pdfJenkins_1679702972.pdf
Jenkins_1679702972.pdfMahmoudAlnmr1
 
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 ChengExcella
 
Continuous deployment steve povilaitis
Continuous deployment   steve povilaitisContinuous deployment   steve povilaitis
Continuous deployment steve povilaitisSteve Povilaitis
 
Agile Engineering Sparker GLASScon 2015
Agile Engineering Sparker GLASScon 2015Agile Engineering Sparker GLASScon 2015
Agile Engineering Sparker GLASScon 2015Stephen Ritchie
 
Introduction to Automated Testing
Introduction to Automated TestingIntroduction to Automated Testing
Introduction to Automated TestingLars Thorup
 
Introduction to-automated-testing
Introduction to-automated-testingIntroduction to-automated-testing
Introduction to-automated-testingBestBrains
 
Introduction to Continuous Integration
Introduction to Continuous IntegrationIntroduction to Continuous Integration
Introduction to Continuous IntegrationSomkiat Puisungnoen
 
Software engineering
Software engineeringSoftware engineering
Software engineeringbartlowe
 
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 projectsTricode (part of Dept)
 
DevOps Overview in my own words
DevOps Overview in my own wordsDevOps Overview in my own words
DevOps Overview in my own wordsSUBHENDU KARMAKAR
 
Application Lifecycle Management
Application Lifecycle ManagementApplication Lifecycle Management
Application Lifecycle ManagementAmazon Web Services
 
Introduction to Continuous Integration
Introduction to Continuous IntegrationIntroduction to Continuous Integration
Introduction to Continuous IntegrationHùng Nguyễn Huy
 

Similar to 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
 

More from hugo lu

WSO2 IoTS Device Manufacturer Guide
WSO2 IoTS Device Manufacturer GuideWSO2 IoTS Device Manufacturer Guide
WSO2 IoTS Device Manufacturer Guidehugo lu
 
關於測試,我說的其實是......
關於測試,我說的其實是......關於測試,我說的其實是......
關於測試,我說的其實是......hugo lu
 
Sql injection 幼幼班
Sql injection 幼幼班Sql injection 幼幼班
Sql injection 幼幼班hugo lu
 
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 questionhugo lu
 
Swift 2.0 的新玩意
Swift 2.0 的新玩意Swift 2.0 的新玩意
Swift 2.0 的新玩意hugo lu
 
精實執行工作坊
精實執行工作坊精實執行工作坊
精實執行工作坊hugo lu
 
Testing in swift
Testing in swiftTesting in swift
Testing in swifthugo lu
 
畫出商業模式
畫出商業模式畫出商業模式
畫出商業模式hugo lu
 
精實軟體度量
精實軟體度量精實軟體度量
精實軟體度量hugo lu
 
看板實驗室
看板實驗室看板實驗室
看板實驗室hugo lu
 
嵌入式測試驅動開發
嵌入式測試驅動開發嵌入式測試驅動開發
嵌入式測試驅動開發hugo lu
 

More from 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
 
畫出商業模式
畫出商業模式畫出商業模式
畫出商業模式
 
精實軟體度量
精實軟體度量精實軟體度量
精實軟體度量
 
看板實驗室
看板實驗室看板實驗室
看板實驗室
 
嵌入式測試驅動開發
嵌入式測試驅動開發嵌入式測試驅動開發
嵌入式測試驅動開發
 

Recently uploaded

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 CCTVshikhaohhpro
 
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...panagenda
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendArshad QA
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfCionsystems
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
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 GoalsJhone kinadey
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 

Recently uploaded (20)

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
 
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...
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and Backend
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdf
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
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
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 

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