SlideShare a Scribd company logo
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
Ad

More Related Content

What's hot (20)

CI and CD with Jenkins
CI and CD with JenkinsCI and CD with Jenkins
CI and CD with Jenkins
Martin Málek
 
Jenkins Pipeline Tutorial | Continuous Delivery Pipeline Using Jenkins | DevO...
Jenkins Pipeline Tutorial | Continuous Delivery Pipeline Using Jenkins | DevO...Jenkins Pipeline Tutorial | Continuous Delivery Pipeline Using Jenkins | DevO...
Jenkins Pipeline Tutorial | Continuous Delivery Pipeline Using Jenkins | DevO...
Edureka!
 
GitLab for CI/CD process
GitLab for CI/CD processGitLab for CI/CD process
GitLab for CI/CD process
HYS Enterprise
 
CI/CD (DevOps) 101
CI/CD (DevOps) 101CI/CD (DevOps) 101
CI/CD (DevOps) 101
Hazzim Anaya
 
Devops Porto - CI/CD at Gitlab
Devops Porto - CI/CD at GitlabDevops Porto - CI/CD at Gitlab
Devops Porto - CI/CD at Gitlab
Filipa Lacerda
 
SonarQube Overview
SonarQube OverviewSonarQube Overview
SonarQube Overview
Ahmed M. Gomaa
 
Introduction to GitHub Actions
Introduction to GitHub ActionsIntroduction to GitHub Actions
Introduction to GitHub Actions
Knoldus Inc.
 
Jenkins CI
Jenkins CIJenkins CI
Jenkins CI
Viyaan Jhiingade
 
Saving Time By Testing With Jest
Saving Time By Testing With JestSaving Time By Testing With Jest
Saving Time By Testing With Jest
Ben McCormick
 
Jenkins Pipeline Tutorial | Jenkins Build And Delivery Pipeline | Jenkins Tut...
Jenkins Pipeline Tutorial | Jenkins Build And Delivery Pipeline | Jenkins Tut...Jenkins Pipeline Tutorial | Jenkins Build And Delivery Pipeline | Jenkins Tut...
Jenkins Pipeline Tutorial | Jenkins Build And Delivery Pipeline | Jenkins Tut...
Simplilearn
 
An Introduction To Jenkins
An Introduction To JenkinsAn Introduction To Jenkins
An Introduction To Jenkins
Knoldus Inc.
 
Introduction to Integration Testing With Cypress
Introduction to Integration Testing With CypressIntroduction to Integration Testing With Cypress
Introduction to Integration Testing With Cypress
Erez Cohen
 
Jenkins tutorial
Jenkins tutorialJenkins tutorial
Jenkins tutorial
Mamun Rashid, CCDH
 
Gitlab CI/CD
Gitlab CI/CDGitlab CI/CD
Gitlab CI/CD
JEMLI Fathi
 
Sonar qube
Sonar qubeSonar qube
Sonar qube
penetration Tester
 
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
Edureka!
 
Introduction to CI/CD
Introduction to CI/CDIntroduction to CI/CD
Introduction to CI/CD
Steve Mactaggart
 
Dev ops using Jenkins
Dev ops using JenkinsDev ops using Jenkins
Dev ops using Jenkins
Synergetics Learning and Cloud Consulting
 
Code Quality
Code QualityCode Quality
Code Quality
François Camus
 
CI/CD 101
CI/CD 101CI/CD 101
CI/CD 101
djdule
 
CI and CD with Jenkins
CI and CD with JenkinsCI and CD with Jenkins
CI and CD with Jenkins
Martin Málek
 
Jenkins Pipeline Tutorial | Continuous Delivery Pipeline Using Jenkins | DevO...
Jenkins Pipeline Tutorial | Continuous Delivery Pipeline Using Jenkins | DevO...Jenkins Pipeline Tutorial | Continuous Delivery Pipeline Using Jenkins | DevO...
Jenkins Pipeline Tutorial | Continuous Delivery Pipeline Using Jenkins | DevO...
Edureka!
 
GitLab for CI/CD process
GitLab for CI/CD processGitLab for CI/CD process
GitLab for CI/CD process
HYS Enterprise
 
CI/CD (DevOps) 101
CI/CD (DevOps) 101CI/CD (DevOps) 101
CI/CD (DevOps) 101
Hazzim Anaya
 
Devops Porto - CI/CD at Gitlab
Devops Porto - CI/CD at GitlabDevops Porto - CI/CD at Gitlab
Devops Porto - CI/CD at Gitlab
Filipa Lacerda
 
Introduction to GitHub Actions
Introduction to GitHub ActionsIntroduction to GitHub Actions
Introduction to GitHub Actions
Knoldus Inc.
 
Saving Time By Testing With Jest
Saving Time By Testing With JestSaving Time By Testing With Jest
Saving Time By Testing With Jest
Ben McCormick
 
Jenkins Pipeline Tutorial | Jenkins Build And Delivery Pipeline | Jenkins Tut...
Jenkins Pipeline Tutorial | Jenkins Build And Delivery Pipeline | Jenkins Tut...Jenkins Pipeline Tutorial | Jenkins Build And Delivery Pipeline | Jenkins Tut...
Jenkins Pipeline Tutorial | Jenkins Build And Delivery Pipeline | Jenkins Tut...
Simplilearn
 
An Introduction To Jenkins
An Introduction To JenkinsAn Introduction To Jenkins
An Introduction To Jenkins
Knoldus Inc.
 
Introduction to Integration Testing With Cypress
Introduction to Integration Testing With CypressIntroduction to Integration Testing With Cypress
Introduction to Integration Testing With Cypress
Erez Cohen
 
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
Edureka!
 
CI/CD 101
CI/CD 101CI/CD 101
CI/CD 101
djdule
 

Viewers also liked (13)

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 architecture
hugo lu
 
從廢柴到成材 - 那 20 個 sprints 教會我們的事 C.C Agile #40
從廢柴到成材 - 那 20 個 sprints 教會我們的事 C.C Agile #40從廢柴到成材 - 那 20 個 sprints 教會我們的事 C.C Agile #40
從廢柴到成材 - 那 20 個 sprints 教會我們的事 C.C Agile #40
diro fan
 
DevOps:建造開發維運的跨界之橋 (@ C.C. Agile #37)
DevOps:建造開發維運的跨界之橋 (@ C.C. Agile #37)DevOps:建造開發維運的跨界之橋 (@ C.C. Agile #37)
DevOps:建造開發維運的跨界之橋 (@ C.C. Agile #37)
Chen Cheng-Wei
 
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 architecture
hugo lu
 
從廢柴到成材 - 那 20 個 sprints 教會我們的事 C.C Agile #40
從廢柴到成材 - 那 20 個 sprints 教會我們的事 C.C Agile #40從廢柴到成材 - 那 20 個 sprints 教會我們的事 C.C Agile #40
從廢柴到成材 - 那 20 個 sprints 教會我們的事 C.C Agile #40
diro fan
 
DevOps:建造開發維運的跨界之橋 (@ C.C. Agile #37)
DevOps:建造開發維運的跨界之橋 (@ C.C. Agile #37)DevOps:建造開發維運的跨界之橋 (@ C.C. Agile #37)
DevOps:建造開發維運的跨界之橋 (@ C.C. Agile #37)
Chen Cheng-Wei
 
Ad

Similar to Continuous integration (20)

Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
Stanislav Tiurikov
 
Enter the Team City
Enter the Team CityEnter the Team City
Enter the Team City
Kashif Ali Siddiqui
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
XPDays
 
Jenkins an opensource CICD platform for all
Jenkins an opensource CICD platform for allJenkins an opensource CICD platform for all
Jenkins an opensource CICD platform for all
ssuserd7cedc
 
Hudson
HudsonHudson
Hudson
8x8
 
Jenkins_1679702972.pdf
Jenkins_1679702972.pdfJenkins_1679702972.pdf
Jenkins_1679702972.pdf
MahmoudAlnmr1
 
jenkins.pdf
jenkins.pdfjenkins.pdf
jenkins.pdf
shahidafrith
 
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
Excella
 
Continuous deployment steve povilaitis
Continuous deployment   steve povilaitisContinuous deployment   steve povilaitis
Continuous deployment steve povilaitis
Steve Povilaitis
 
Agile Engineering Sparker GLASScon 2015
Agile Engineering Sparker GLASScon 2015Agile Engineering Sparker GLASScon 2015
Agile Engineering Sparker GLASScon 2015
Stephen Ritchie
 
Introduction to-automated-testing
Introduction to-automated-testingIntroduction to-automated-testing
Introduction to-automated-testing
BestBrains
 
Introduction to Automated Testing
Introduction to Automated TestingIntroduction to Automated Testing
Introduction to Automated Testing
Lars Thorup
 
Introduction to Continuous Integration
Introduction to Continuous IntegrationIntroduction to Continuous Integration
Introduction to Continuous Integration
Somkiat Puisungnoen
 
Software engineering
Software engineeringSoftware engineering
Software engineering
bartlowe
 
Agile engineering practices
Agile engineering practicesAgile engineering practices
Agile engineering practices
Mustafa Savaşcı
 
CD
CDCD
CD
Igor Stojanovski
 
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
Tricode (part of Dept)
 
Devops architecture
Devops architectureDevops architecture
Devops architecture
Ojasvi Jagtap
 
DevOps Overview in my own words
DevOps Overview in my own wordsDevOps Overview in my own words
DevOps Overview in my own words
SUBHENDU KARMAKAR
 
Introduction to Continuous Integration
Introduction to Continuous IntegrationIntroduction to Continuous Integration
Introduction to Continuous Integration
Hùng Nguyễn Huy
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
XPDays
 
Jenkins an opensource CICD platform for all
Jenkins an opensource CICD platform for allJenkins an opensource CICD platform for all
Jenkins an opensource CICD platform for all
ssuserd7cedc
 
Hudson
HudsonHudson
Hudson
8x8
 
Jenkins_1679702972.pdf
Jenkins_1679702972.pdfJenkins_1679702972.pdf
Jenkins_1679702972.pdf
MahmoudAlnmr1
 
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
Excella
 
Continuous deployment steve povilaitis
Continuous deployment   steve povilaitisContinuous deployment   steve povilaitis
Continuous deployment steve povilaitis
Steve Povilaitis
 
Agile Engineering Sparker GLASScon 2015
Agile Engineering Sparker GLASScon 2015Agile Engineering Sparker GLASScon 2015
Agile Engineering Sparker GLASScon 2015
Stephen Ritchie
 
Introduction to-automated-testing
Introduction to-automated-testingIntroduction to-automated-testing
Introduction to-automated-testing
BestBrains
 
Introduction to Automated Testing
Introduction to Automated TestingIntroduction to Automated Testing
Introduction to Automated Testing
Lars Thorup
 
Introduction to Continuous Integration
Introduction to Continuous IntegrationIntroduction to Continuous Integration
Introduction to Continuous Integration
Somkiat Puisungnoen
 
Software engineering
Software engineeringSoftware engineering
Software engineering
bartlowe
 
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
Tricode (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 words
SUBHENDU KARMAKAR
 
Introduction to Continuous Integration
Introduction to Continuous IntegrationIntroduction to Continuous Integration
Introduction to Continuous Integration
Hùng Nguyễn Huy
 
Ad

More from hugo lu (11)

WSO2 IoTS Device Manufacturer Guide
WSO2 IoTS Device Manufacturer GuideWSO2 IoTS Device Manufacturer Guide
WSO2 IoTS Device Manufacturer Guide
hugo 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 question
hugo 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 swift
hugo lu
 
畫出商業模式
畫出商業模式畫出商業模式
畫出商業模式
hugo lu
 
精實軟體度量
精實軟體度量精實軟體度量
精實軟體度量
hugo lu
 
看板實驗室
看板實驗室看板實驗室
看板實驗室
hugo lu
 
嵌入式測試驅動開發
嵌入式測試驅動開發嵌入式測試驅動開發
嵌入式測試驅動開發
hugo lu
 
WSO2 IoTS Device Manufacturer Guide
WSO2 IoTS Device Manufacturer GuideWSO2 IoTS Device Manufacturer Guide
WSO2 IoTS Device Manufacturer Guide
hugo 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 question
hugo 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 swift
hugo lu
 
畫出商業模式
畫出商業模式畫出商業模式
畫出商業模式
hugo lu
 
精實軟體度量
精實軟體度量精實軟體度量
精實軟體度量
hugo lu
 
看板實驗室
看板實驗室看板實驗室
看板實驗室
hugo lu
 
嵌入式測試驅動開發
嵌入式測試驅動開發嵌入式測試驅動開發
嵌入式測試驅動開發
hugo lu
 

Recently uploaded (20)

Download Wondershare Filmora Crack [2025] With Latest
Download Wondershare Filmora Crack [2025] With LatestDownload Wondershare Filmora Crack [2025] With Latest
Download Wondershare Filmora Crack [2025] With Latest
tahirabibi60507
 
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
Andre Hora
 
Interactive odoo dashboards for sales, CRM , Inventory, Invoice, Purchase, Pr...
Interactive odoo dashboards for sales, CRM , Inventory, Invoice, Purchase, Pr...Interactive odoo dashboards for sales, CRM , Inventory, Invoice, Purchase, Pr...
Interactive odoo dashboards for sales, CRM , Inventory, Invoice, Purchase, Pr...
AxisTechnolabs
 
Maxon CINEMA 4D 2025 Crack FREE Download LINK
Maxon CINEMA 4D 2025 Crack FREE Download LINKMaxon CINEMA 4D 2025 Crack FREE Download LINK
Maxon CINEMA 4D 2025 Crack FREE Download LINK
younisnoman75
 
How can one start with crypto wallet development.pptx
How can one start with crypto wallet development.pptxHow can one start with crypto wallet development.pptx
How can one start with crypto wallet development.pptx
laravinson24
 
Top 10 Client Portal Software Solutions for 2025.docx
Top 10 Client Portal Software Solutions for 2025.docxTop 10 Client Portal Software Solutions for 2025.docx
Top 10 Client Portal Software Solutions for 2025.docx
Portli
 
Not So Common Memory Leaks in Java Webinar
Not So Common Memory Leaks in Java WebinarNot So Common Memory Leaks in Java Webinar
Not So Common Memory Leaks in Java Webinar
Tier1 app
 
Expand your AI adoption with AgentExchange
Expand your AI adoption with AgentExchangeExpand your AI adoption with AgentExchange
Expand your AI adoption with AgentExchange
Fexle Services Pvt. Ltd.
 
FL Studio Producer Edition Crack 2025 Full Version
FL Studio Producer Edition Crack 2025 Full VersionFL Studio Producer Edition Crack 2025 Full Version
FL Studio Producer Edition Crack 2025 Full Version
tahirabibi60507
 
Avast Premium Security Crack FREE Latest Version 2025
Avast Premium Security Crack FREE Latest Version 2025Avast Premium Security Crack FREE Latest Version 2025
Avast Premium Security Crack FREE Latest Version 2025
mu394968
 
WinRAR Crack for Windows (100% Working 2025)
WinRAR Crack for Windows (100% Working 2025)WinRAR Crack for Windows (100% Working 2025)
WinRAR Crack for Windows (100% Working 2025)
sh607827
 
Adobe Illustrator Crack FREE Download 2025 Latest Version
Adobe Illustrator Crack FREE Download 2025 Latest VersionAdobe Illustrator Crack FREE Download 2025 Latest Version
Adobe Illustrator Crack FREE Download 2025 Latest Version
kashifyounis067
 
EASEUS Partition Master Crack + License Code
EASEUS Partition Master Crack + License CodeEASEUS Partition Master Crack + License Code
EASEUS Partition Master Crack + License Code
aneelaramzan63
 
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Dele Amefo
 
Who Watches the Watchmen (SciFiDevCon 2025)
Who Watches the Watchmen (SciFiDevCon 2025)Who Watches the Watchmen (SciFiDevCon 2025)
Who Watches the Watchmen (SciFiDevCon 2025)
Allon Mureinik
 
Meet the Agents: How AI Is Learning to Think, Plan, and Collaborate
Meet the Agents: How AI Is Learning to Think, Plan, and CollaborateMeet the Agents: How AI Is Learning to Think, Plan, and Collaborate
Meet the Agents: How AI Is Learning to Think, Plan, and Collaborate
Maxim Salnikov
 
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
steaveroggers
 
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Andre Hora
 
Revolutionizing Residential Wi-Fi PPT.pptx
Revolutionizing Residential Wi-Fi PPT.pptxRevolutionizing Residential Wi-Fi PPT.pptx
Revolutionizing Residential Wi-Fi PPT.pptx
nidhisingh691197
 
Adobe Master Collection CC Crack Advance Version 2025
Adobe Master Collection CC Crack Advance Version 2025Adobe Master Collection CC Crack Advance Version 2025
Adobe Master Collection CC Crack Advance Version 2025
kashifyounis067
 
Download Wondershare Filmora Crack [2025] With Latest
Download Wondershare Filmora Crack [2025] With LatestDownload Wondershare Filmora Crack [2025] With Latest
Download Wondershare Filmora Crack [2025] With Latest
tahirabibi60507
 
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
Andre Hora
 
Interactive odoo dashboards for sales, CRM , Inventory, Invoice, Purchase, Pr...
Interactive odoo dashboards for sales, CRM , Inventory, Invoice, Purchase, Pr...Interactive odoo dashboards for sales, CRM , Inventory, Invoice, Purchase, Pr...
Interactive odoo dashboards for sales, CRM , Inventory, Invoice, Purchase, Pr...
AxisTechnolabs
 
Maxon CINEMA 4D 2025 Crack FREE Download LINK
Maxon CINEMA 4D 2025 Crack FREE Download LINKMaxon CINEMA 4D 2025 Crack FREE Download LINK
Maxon CINEMA 4D 2025 Crack FREE Download LINK
younisnoman75
 
How can one start with crypto wallet development.pptx
How can one start with crypto wallet development.pptxHow can one start with crypto wallet development.pptx
How can one start with crypto wallet development.pptx
laravinson24
 
Top 10 Client Portal Software Solutions for 2025.docx
Top 10 Client Portal Software Solutions for 2025.docxTop 10 Client Portal Software Solutions for 2025.docx
Top 10 Client Portal Software Solutions for 2025.docx
Portli
 
Not So Common Memory Leaks in Java Webinar
Not So Common Memory Leaks in Java WebinarNot So Common Memory Leaks in Java Webinar
Not So Common Memory Leaks in Java Webinar
Tier1 app
 
Expand your AI adoption with AgentExchange
Expand your AI adoption with AgentExchangeExpand your AI adoption with AgentExchange
Expand your AI adoption with AgentExchange
Fexle Services Pvt. Ltd.
 
FL Studio Producer Edition Crack 2025 Full Version
FL Studio Producer Edition Crack 2025 Full VersionFL Studio Producer Edition Crack 2025 Full Version
FL Studio Producer Edition Crack 2025 Full Version
tahirabibi60507
 
Avast Premium Security Crack FREE Latest Version 2025
Avast Premium Security Crack FREE Latest Version 2025Avast Premium Security Crack FREE Latest Version 2025
Avast Premium Security Crack FREE Latest Version 2025
mu394968
 
WinRAR Crack for Windows (100% Working 2025)
WinRAR Crack for Windows (100% Working 2025)WinRAR Crack for Windows (100% Working 2025)
WinRAR Crack for Windows (100% Working 2025)
sh607827
 
Adobe Illustrator Crack FREE Download 2025 Latest Version
Adobe Illustrator Crack FREE Download 2025 Latest VersionAdobe Illustrator Crack FREE Download 2025 Latest Version
Adobe Illustrator Crack FREE Download 2025 Latest Version
kashifyounis067
 
EASEUS Partition Master Crack + License Code
EASEUS Partition Master Crack + License CodeEASEUS Partition Master Crack + License Code
EASEUS Partition Master Crack + License Code
aneelaramzan63
 
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Dele Amefo
 
Who Watches the Watchmen (SciFiDevCon 2025)
Who Watches the Watchmen (SciFiDevCon 2025)Who Watches the Watchmen (SciFiDevCon 2025)
Who Watches the Watchmen (SciFiDevCon 2025)
Allon Mureinik
 
Meet the Agents: How AI Is Learning to Think, Plan, and Collaborate
Meet the Agents: How AI Is Learning to Think, Plan, and CollaborateMeet the Agents: How AI Is Learning to Think, Plan, and Collaborate
Meet the Agents: How AI Is Learning to Think, Plan, and Collaborate
Maxim Salnikov
 
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
steaveroggers
 
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Andre Hora
 
Revolutionizing Residential Wi-Fi PPT.pptx
Revolutionizing Residential Wi-Fi PPT.pptxRevolutionizing Residential Wi-Fi PPT.pptx
Revolutionizing Residential Wi-Fi PPT.pptx
nidhisingh691197
 
Adobe Master Collection CC Crack Advance Version 2025
Adobe Master Collection CC Crack Advance Version 2025Adobe Master Collection CC Crack Advance Version 2025
Adobe Master Collection CC Crack Advance Version 2025
kashifyounis067
 

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