SlideShare a Scribd company logo
Continuous Integration
Stanislav Tyurikov
Business Goal
Profit increasing
Total Profit = Project Profit [1] + … + Project Profit [N]
Project Profit = Project Revenue – Project Costs
Increase project
count
Increase project
price
Decrease project
costs
Lean Software Development: Wastes
• Defects
• Overproduction
• Transportation
• Waiting
• Inventory
• Motion
• Extra processing
Cost of change
Requarements Design Coding Testing Production
Costofchange
Project phase
What Continuous Integration is?
Continuous integration (CI) implements continuous processes of
applying quality control - small pieces of effort, applied
frequently. Continuous integration aims to improve the quality of
software, and to reduce the time taken to deliver it, by replacing
the traditional practice of applying quality control after
completing all development.
© http://en.wikipedia.org/wiki/Continuous_integration
Feedback
Mechanism
commit changes
(1)
Version
Control System
Continuous
Integration System
Build Script
Developers
Poll (2)
Report (4)
Execute (3)
Compile Source Code
Run Inspections
Run DB Scripts
Run Tests
Deploy Software
Look (5)
CI Scenario
• Write Automated Developer Tests
• Run Private Builds
• All Tests and Inspections Must Pass
• Don’t Commit Broken Code
• Fix Broken Builds Immediately
• Commit Code Frequently
• Avoid Getting Broken Code
• Run Manual Integration Builds (optional)
Developer
• Separate Build Scripts from Your IDE
• Automate Builds
• Perform Single Command Builds
• Build for Any Environment
• Fail Builds Fast
Build Script
• Centralize Software Assets
• Create a Consistent Directory Structure
Version Control System
• CI Server always available
• Use a Dedicated Integration Build Machine
• Stage Builds
CI Server
• Getting the right information to the right people at
the right time and in the right way—CI is the best
tool for making this feedback automated, targeted,
and real-time (continuous).
• Email, IM, SMS an other feedback mechanisms can
be used.
Feedback Mechanism
• Reduce Code Complexity
• Perform Design Reviews Continuously
• Maintain Organizational Standards with Code Audits
• Reduce Duplicate Code
• Assess Test Code Coverage (after test execution)
Continuous Inspection
Compilation Inspection Testing Deployment
Continuous Integration
What Continuous Testing is?
• Is a part of continuous integration process
• Test are created on development phase
• All test are automated
• Tests are frequently executed
Continuous Integration
Compilation Inspection Testing Deployment
Continuous Test Types
• Unit Tests
• Component (Integration) Tests
• System Tests
• Functional (Acceptance, Story) Tests
DB
API
UI
Automate Unit Test
Unit Test verifies the behavior of small elements in a software
system, which are most often a single class or method. Every UT
must have several characteristics (F.I.R.S.T.):
• Fast
takes a little time to execute (less than 0,01 sec).
• Isolated
does not interact with over parts of a system, failure reasons become obvious.
• Repeatable
run repeatedly in any order, any time.
• Self-Checking
no manual evaluation required.
• Timely
written before the code.
DB
API
UI
Automate Component Tests
• Component or subsystem tests verify portions of a
system and may require a fully installed system or
some external dependencies, such as databases, file
systems, or network endpoints, to name a few.
• Tend to run longer than UT.
DB
API
UI
Automate System Tests
• System tests exercise a complete software system
and therefore require a fully installed system, such
as a servlet container and associated database.
• Tend to run longer than CT.
• Use system API to perform testing.
DB
API
UI
Automate Functional Tests
• Functional tests, as the name implies, test the
functionality of an application from the viewpoint of
a client, which means the tests themselves mimic
clients (for example, using Silenium).
• Tend to run longer than ST.
DB
API
UI
Functional Tests
System Tests
Test Scopes
Data Access
Object
Business
Logic Service
Web Service
DB
Web Page
Unit Tests
Integration
Tests
Run Faster Test First
Unit Test Component Test System Test Functional Test
Also known as Integration Test
Acceptance/Story
Test
Depends on
Execution Time ms sec min hour
Description
Check class,
method
Test component
integrity, DB
queries.
System API (WS,
JNDI, etc), external
client interaction
Customer oriented.
Use UI controls,
pages, links, etc.
execution order
Each kind of test has its own area of responsibility, setup efforts, and accordingly,
different execution time.
• Set of test works like safety net. Once a new test is added, it will always
cover target functionality.
• If defect has been found, you can create additional test case for it (defect-
driven development). This makes your safety net much effective to prevent
defect reappearance.
add new test cases to make
the safety net much effective
Safety Net & Defect-Driven Development
• Release Working Software Any Time, Any Place
• Label a Repository’s Assets
• Produce a Clean Environment
• Label Each Build
• Run All Tests
• Create Build Feedback Reports
• Possess Capability to Roll Back Release
Continuous Deployment
Compilation Inspection Testing Deployment
Continuous Integration
The most typical problems which CI solves:
• “It Works on My Machine”
• “The Missing Click“
• “Did You Get the Memo?”
• Regression Testing
• Inability to Visualize Software
• Coding Standard Adherence
• Code Duplication
Typical problems
Without Continuous Testing:
With Continuous Testing:
time
time
Without CT lots of efforts and time are spent to find bugs and apply CR. CTs make
these activities more painless, but we have to create and support test as well.
Automated Tests:
1) Increase coding time.
2) Decrease bug searching/debugging time.
3) Decrease functionality modification time.
Coding Bug Fixing Functionality Modification
Coding Bug Fixing Functionality Modification
Time Saving Hypothesis
Additional Information
Books & articles:
• Continuous Integration: Improving Software Quality and Reducing Risk.
• Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation.
• Implementing Lean Software Development: From Concept to Cash.
• The Art of Lean Software Development.
• Continuous Integration by Martin Fowler.
Google it! =)

More Related Content

PDF
Continuous Integration Introduction
PPTX
Testing
PDF
Continuous integration practices to improve the software quality
PDF
Integration testing
PPTX
Testing strategies,techniques & test case SE
PDF
Quickstart for continuous integration
PPTX
Agile Engineering Sparker GLASScon 2015
PPTX
Software Testing Training in Chandigarh
Continuous Integration Introduction
Testing
Continuous integration practices to improve the software quality
Integration testing
Testing strategies,techniques & test case SE
Quickstart for continuous integration
Agile Engineering Sparker GLASScon 2015
Software Testing Training in Chandigarh

What's hot (20)

PPTX
Test Strategies in Microservices
PPTX
Test Driven Development
PPT
Software Quality
PPTX
Automated testing
PPTX
Automated visual-regression-testing (1)
PDF
The Continuous delivery Value @ codemotion 2014
PDF
Continuous delivery @wcap 5-09-2013
PPT
Manual testing - Introduction to Manual Software testing
PPTX
Fundamentals of software part 1
PPTX
Taking your version control to a next level with TFS and Git
PPT
7 steps to Software test automation success
PPTX
Automation Testing
PPTX
Software Testing Strategies
PDF
Info Card - Techical Debt Management
PPTX
Software engineering- system testing
PPTX
Testing as a Career
PDF
Agile Engineering Best Practices by Richard Cheng
PPTX
Continuous integration with Drone.IO
PPTX
System testing
PPTX
The complete guide for software integration testing | David Tzemach
Test Strategies in Microservices
Test Driven Development
Software Quality
Automated testing
Automated visual-regression-testing (1)
The Continuous delivery Value @ codemotion 2014
Continuous delivery @wcap 5-09-2013
Manual testing - Introduction to Manual Software testing
Fundamentals of software part 1
Taking your version control to a next level with TFS and Git
7 steps to Software test automation success
Automation Testing
Software Testing Strategies
Info Card - Techical Debt Management
Software engineering- system testing
Testing as a Career
Agile Engineering Best Practices by Richard Cheng
Continuous integration with Drone.IO
System testing
The complete guide for software integration testing | David Tzemach
Ad

Viewers also liked (7)

ZIP
Ops Meta-Metrics: The Currency You Pay For Change
PDF
Docker by Example - Quiz
PDF
Docker networking
PDF
Мониторь, автоматизируй Docker
PDF
Docker в Badoo: ПМЖ или временная регистрация
PDF
Docker penetration
PDF
BizOps and you
Ops Meta-Metrics: The Currency You Pay For Change
Docker by Example - Quiz
Docker networking
Мониторь, автоматизируй Docker
Docker в Badoo: ПМЖ или временная регистрация
Docker penetration
BizOps and you
Ad

Similar to Continuous Integration (20)

PDF
Continuous Integration and Continuous Testing (CI/CT)
PDF
Continuous Integration and Continuous Testing (CI/CT)
PDF
What is Continuous Integration Testing.pdf
PPTX
Continuos Delivery
ODP
Continuous integration by Halyna Levko
PDF
Introduction to Continuous Integration
PDF
Flight East 2018 Presentation–Continuous Integration––An Overview
PDF
10 Things You Might Not Know: Continuous Integration
PPTX
Introducing Continuous Integration Using Vsts
PPTX
Continuous Integration
PDF
[Quang nguyen] Continuous Integration XP Day 2015 Vietnam Danang
PPTX
continous integration and delivery
PDF
Magenic-White-Paper-Continuous-Inegration-for-QA-Teams
PDF
Continuous Integration
PDF
Continuous integration - stability, reliability and speed in software develop...
PDF
Continuous Integration
PPTX
Continuous Integration Testing for SAP
PPTX
Continuous integration introduction
PDF
What is Continuous Integration_ - A Comprehensive Guide.pdf
Continuous Integration and Continuous Testing (CI/CT)
Continuous Integration and Continuous Testing (CI/CT)
What is Continuous Integration Testing.pdf
Continuos Delivery
Continuous integration by Halyna Levko
Introduction to Continuous Integration
Flight East 2018 Presentation–Continuous Integration––An Overview
10 Things You Might Not Know: Continuous Integration
Introducing Continuous Integration Using Vsts
Continuous Integration
[Quang nguyen] Continuous Integration XP Day 2015 Vietnam Danang
continous integration and delivery
Magenic-White-Paper-Continuous-Inegration-for-QA-Teams
Continuous Integration
Continuous integration - stability, reliability and speed in software develop...
Continuous Integration
Continuous Integration Testing for SAP
Continuous integration introduction
What is Continuous Integration_ - A Comprehensive Guide.pdf

Recently uploaded (20)

PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
solutions_manual_-_materials___processing_in_manufacturing__demargo_.pdf
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PPTX
Big Data Technologies - Introduction.pptx
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
GamePlan Trading System Review: Professional Trader's Honest Take
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
MYSQL Presentation for SQL database connectivity
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
cuic standard and advanced reporting.pdf
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
Advanced Soft Computing BINUS July 2025.pdf
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
20250228 LYD VKU AI Blended-Learning.pptx
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
solutions_manual_-_materials___processing_in_manufacturing__demargo_.pdf
Per capita expenditure prediction using model stacking based on satellite ima...
Understanding_Digital_Forensics_Presentation.pptx
Big Data Technologies - Introduction.pptx
The Rise and Fall of 3GPP – Time for a Sabbatical?
GamePlan Trading System Review: Professional Trader's Honest Take
NewMind AI Weekly Chronicles - August'25 Week I
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
MYSQL Presentation for SQL database connectivity
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Review of recent advances in non-invasive hemoglobin estimation
Advanced methodologies resolving dimensionality complications for autism neur...
cuic standard and advanced reporting.pdf
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
Advanced Soft Computing BINUS July 2025.pdf
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Reach Out and Touch Someone: Haptics and Empathic Computing

Continuous Integration

  • 2. Business Goal Profit increasing Total Profit = Project Profit [1] + … + Project Profit [N] Project Profit = Project Revenue – Project Costs Increase project count Increase project price Decrease project costs
  • 3. Lean Software Development: Wastes • Defects • Overproduction • Transportation • Waiting • Inventory • Motion • Extra processing
  • 4. Cost of change Requarements Design Coding Testing Production Costofchange Project phase
  • 5. What Continuous Integration is? Continuous integration (CI) implements continuous processes of applying quality control - small pieces of effort, applied frequently. Continuous integration aims to improve the quality of software, and to reduce the time taken to deliver it, by replacing the traditional practice of applying quality control after completing all development. © http://en.wikipedia.org/wiki/Continuous_integration
  • 6. Feedback Mechanism commit changes (1) Version Control System Continuous Integration System Build Script Developers Poll (2) Report (4) Execute (3) Compile Source Code Run Inspections Run DB Scripts Run Tests Deploy Software Look (5) CI Scenario
  • 7. • Write Automated Developer Tests • Run Private Builds • All Tests and Inspections Must Pass • Don’t Commit Broken Code • Fix Broken Builds Immediately • Commit Code Frequently • Avoid Getting Broken Code • Run Manual Integration Builds (optional) Developer
  • 8. • Separate Build Scripts from Your IDE • Automate Builds • Perform Single Command Builds • Build for Any Environment • Fail Builds Fast Build Script
  • 9. • Centralize Software Assets • Create a Consistent Directory Structure Version Control System
  • 10. • CI Server always available • Use a Dedicated Integration Build Machine • Stage Builds CI Server
  • 11. • Getting the right information to the right people at the right time and in the right way—CI is the best tool for making this feedback automated, targeted, and real-time (continuous). • Email, IM, SMS an other feedback mechanisms can be used. Feedback Mechanism
  • 12. • Reduce Code Complexity • Perform Design Reviews Continuously • Maintain Organizational Standards with Code Audits • Reduce Duplicate Code • Assess Test Code Coverage (after test execution) Continuous Inspection Compilation Inspection Testing Deployment Continuous Integration
  • 13. What Continuous Testing is? • Is a part of continuous integration process • Test are created on development phase • All test are automated • Tests are frequently executed Continuous Integration Compilation Inspection Testing Deployment
  • 14. Continuous Test Types • Unit Tests • Component (Integration) Tests • System Tests • Functional (Acceptance, Story) Tests DB API UI
  • 15. Automate Unit Test Unit Test verifies the behavior of small elements in a software system, which are most often a single class or method. Every UT must have several characteristics (F.I.R.S.T.): • Fast takes a little time to execute (less than 0,01 sec). • Isolated does not interact with over parts of a system, failure reasons become obvious. • Repeatable run repeatedly in any order, any time. • Self-Checking no manual evaluation required. • Timely written before the code. DB API UI
  • 16. Automate Component Tests • Component or subsystem tests verify portions of a system and may require a fully installed system or some external dependencies, such as databases, file systems, or network endpoints, to name a few. • Tend to run longer than UT. DB API UI
  • 17. Automate System Tests • System tests exercise a complete software system and therefore require a fully installed system, such as a servlet container and associated database. • Tend to run longer than CT. • Use system API to perform testing. DB API UI
  • 18. Automate Functional Tests • Functional tests, as the name implies, test the functionality of an application from the viewpoint of a client, which means the tests themselves mimic clients (for example, using Silenium). • Tend to run longer than ST. DB API UI
  • 19. Functional Tests System Tests Test Scopes Data Access Object Business Logic Service Web Service DB Web Page Unit Tests Integration Tests
  • 20. Run Faster Test First Unit Test Component Test System Test Functional Test Also known as Integration Test Acceptance/Story Test Depends on Execution Time ms sec min hour Description Check class, method Test component integrity, DB queries. System API (WS, JNDI, etc), external client interaction Customer oriented. Use UI controls, pages, links, etc. execution order Each kind of test has its own area of responsibility, setup efforts, and accordingly, different execution time.
  • 21. • Set of test works like safety net. Once a new test is added, it will always cover target functionality. • If defect has been found, you can create additional test case for it (defect- driven development). This makes your safety net much effective to prevent defect reappearance. add new test cases to make the safety net much effective Safety Net & Defect-Driven Development
  • 22. • Release Working Software Any Time, Any Place • Label a Repository’s Assets • Produce a Clean Environment • Label Each Build • Run All Tests • Create Build Feedback Reports • Possess Capability to Roll Back Release Continuous Deployment Compilation Inspection Testing Deployment Continuous Integration
  • 23. The most typical problems which CI solves: • “It Works on My Machine” • “The Missing Click“ • “Did You Get the Memo?” • Regression Testing • Inability to Visualize Software • Coding Standard Adherence • Code Duplication Typical problems
  • 24. Without Continuous Testing: With Continuous Testing: time time Without CT lots of efforts and time are spent to find bugs and apply CR. CTs make these activities more painless, but we have to create and support test as well. Automated Tests: 1) Increase coding time. 2) Decrease bug searching/debugging time. 3) Decrease functionality modification time. Coding Bug Fixing Functionality Modification Coding Bug Fixing Functionality Modification Time Saving Hypothesis
  • 25. Additional Information Books & articles: • Continuous Integration: Improving Software Quality and Reducing Risk. • Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation. • Implementing Lean Software Development: From Concept to Cash. • The Art of Lean Software Development. • Continuous Integration by Martin Fowler. Google it! =)