SlideShare une entreprise Scribd logo
1  sur  25
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! =)

Contenu connexe

Tendances

Test Strategies in Microservices
Test Strategies in MicroservicesTest Strategies in Microservices
Test Strategies in MicroservicesMesut Özen
 
Automated testing
Automated testingAutomated testing
Automated testings0194975
 
Automated visual-regression-testing (1)
Automated visual-regression-testing (1)Automated visual-regression-testing (1)
Automated visual-regression-testing (1)Sriram Angajala
 
The Continuous delivery Value @ codemotion 2014
The Continuous delivery Value @ codemotion 2014The Continuous delivery Value @ codemotion 2014
The Continuous delivery Value @ codemotion 2014David Funaro
 
Continuous delivery @wcap 5-09-2013
Continuous delivery   @wcap 5-09-2013Continuous delivery   @wcap 5-09-2013
Continuous delivery @wcap 5-09-2013David Funaro
 
Fundamentals of software part 1
Fundamentals of software part 1Fundamentals of software part 1
Fundamentals of software part 1Siddharth Sharma
 
Taking your version control to a next level with TFS and Git
Taking your version control to a next level with TFS and GitTaking your version control to a next level with TFS and Git
Taking your version control to a next level with TFS and GitAlexander Vanwynsberghe
 
Software Testing Strategies
Software Testing StrategiesSoftware Testing Strategies
Software Testing StrategiesAlpana Bhaskar
 
Info Card - Techical Debt Management
Info Card  - Techical Debt ManagementInfo Card  - Techical Debt Management
Info Card - Techical Debt ManagementFabricio Epaminondas
 
Software engineering- system testing
Software engineering- system testingSoftware engineering- system testing
Software engineering- system testingTejas Mhaske
 
Testing as a Career
Testing as a CareerTesting as a Career
Testing as a CareerPrabal Dutta
 
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 integration with Drone.IO
Continuous integration with Drone.IOContinuous integration with Drone.IO
Continuous integration with Drone.IOHoffman Lab
 
The complete guide for software integration testing | David Tzemach
The complete guide for software integration testing | David TzemachThe complete guide for software integration testing | David Tzemach
The complete guide for software integration testing | David TzemachDavid Tzemach
 

Tendances (20)

Test Strategies in Microservices
Test Strategies in MicroservicesTest Strategies in Microservices
Test Strategies in Microservices
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Software Quality
Software Quality Software Quality
Software Quality
 
Automated testing
Automated testingAutomated testing
Automated testing
 
Automated visual-regression-testing (1)
Automated visual-regression-testing (1)Automated visual-regression-testing (1)
Automated visual-regression-testing (1)
 
The Continuous delivery Value @ codemotion 2014
The Continuous delivery Value @ codemotion 2014The Continuous delivery Value @ codemotion 2014
The Continuous delivery Value @ codemotion 2014
 
Continuous delivery @wcap 5-09-2013
Continuous delivery   @wcap 5-09-2013Continuous delivery   @wcap 5-09-2013
Continuous delivery @wcap 5-09-2013
 
Manual testing - Introduction to Manual Software testing
Manual testing - Introduction to Manual Software testingManual testing - Introduction to Manual Software testing
Manual testing - Introduction to Manual Software testing
 
Fundamentals of software part 1
Fundamentals of software part 1Fundamentals of software part 1
Fundamentals of software part 1
 
Taking your version control to a next level with TFS and Git
Taking your version control to a next level with TFS and GitTaking your version control to a next level with TFS and Git
Taking your version control to a next level with TFS and Git
 
7 steps to Software test automation success
7 steps to Software test automation success7 steps to Software test automation success
7 steps to Software test automation success
 
Automation Testing
Automation TestingAutomation Testing
Automation Testing
 
Software Testing Strategies
Software Testing StrategiesSoftware Testing Strategies
Software Testing Strategies
 
Info Card - Techical Debt Management
Info Card  - Techical Debt ManagementInfo Card  - Techical Debt Management
Info Card - Techical Debt Management
 
Software engineering- system testing
Software engineering- system testingSoftware engineering- system testing
Software engineering- system testing
 
Testing as a Career
Testing as a CareerTesting as a Career
Testing as a Career
 
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 integration with Drone.IO
Continuous integration with Drone.IOContinuous integration with Drone.IO
Continuous integration with Drone.IO
 
System testing
System testingSystem testing
System testing
 
The complete guide for software integration testing | David Tzemach
The complete guide for software integration testing | David TzemachThe complete guide for software integration testing | David Tzemach
The complete guide for software integration testing | David Tzemach
 

En vedette

Ops Meta-Metrics: The Currency You Pay For Change
Ops Meta-Metrics: The Currency You Pay For ChangeOps Meta-Metrics: The Currency You Pay For Change
Ops Meta-Metrics: The Currency You Pay For ChangeJohn Allspaw
 
Мониторь, автоматизируй Docker
Мониторь, автоматизируй DockerМониторь, автоматизируй Docker
Мониторь, автоматизируй DockerBadoo Development
 
Docker в Badoo: ПМЖ или временная регистрация
Docker в Badoo: ПМЖ или временная регистрацияDocker в Badoo: ПМЖ или временная регистрация
Docker в Badoo: ПМЖ или временная регистрацияBadoo Development
 
BizOps and you
BizOps and youBizOps and you
BizOps and youLeon Fayer
 

En vedette (7)

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

Similaire à Continuous Integration

Continuous integration
Continuous integrationContinuous integration
Continuous integrationhugo lu
 
CI, CD -Tools to integrate without manual intervention
CI, CD -Tools to integrate without manual interventionCI, CD -Tools to integrate without manual intervention
CI, CD -Tools to integrate without manual interventionajayrajaganeshkayala
 
Flight East 2018 Presentation–Continuous Integration––An Overview
Flight East 2018 Presentation–Continuous Integration––An OverviewFlight East 2018 Presentation–Continuous Integration––An Overview
Flight East 2018 Presentation–Continuous Integration––An OverviewSynopsys Software Integrity Group
 
Automated testing overview
Automated testing overviewAutomated testing overview
Automated testing overviewAlex Pop
 
Introduction to-automated-testing
Introduction to-automated-testingIntroduction to-automated-testing
Introduction to-automated-testingBestBrains
 
Introduction to Automated Testing
Introduction to Automated TestingIntroduction to Automated Testing
Introduction to Automated TestingLars Thorup
 
Continuous Integration Practices
Continuous Integration Practices Continuous Integration Practices
Continuous Integration Practices Marcelo Freire
 
Atagg 2015 Test automation and effective continuous integration
Atagg 2015 Test automation and effective continuous integrationAtagg 2015 Test automation and effective continuous integration
Atagg 2015 Test automation and effective continuous integrationAgile Testing Alliance
 
Software testing methods, levels and types
Software testing methods, levels and typesSoftware testing methods, levels and types
Software testing methods, levels and typesConfiz
 
manualtesting-170218090020 (1).pdf
manualtesting-170218090020 (1).pdfmanualtesting-170218090020 (1).pdf
manualtesting-170218090020 (1).pdfperamdevi06
 
Continuous Integration Testing for SAP
Continuous Integration Testing for SAPContinuous Integration Testing for SAP
Continuous Integration Testing for SAPWorksoft
 
Test Driven Development & CI/CD
Test Driven Development & CI/CDTest Driven Development & CI/CD
Test Driven Development & CI/CDShanmuga S Muthu
 
Building a Complete Pipeline: The Essential Components of Continuous Testing ...
Building a Complete Pipeline: The Essential Components of Continuous Testing ...Building a Complete Pipeline: The Essential Components of Continuous Testing ...
Building a Complete Pipeline: The Essential Components of Continuous Testing ...Applitools
 
Test Automation Architecture That Works by Bhupesh Dahal
Test Automation Architecture That Works by Bhupesh DahalTest Automation Architecture That Works by Bhupesh Dahal
Test Automation Architecture That Works by Bhupesh DahalQA or the Highway
 
testing strategies and tactics
 testing strategies and tactics testing strategies and tactics
testing strategies and tacticsPreeti Mishra
 
Automated Testing with Agile
Automated Testing with AgileAutomated Testing with Agile
Automated Testing with AgileKen McCorkell
 
Manual Testing software testing all slide
Manual Testing software testing all slideManual Testing software testing all slide
Manual Testing software testing all slideSmileySmiley39
 
Software Testing Foundations Part 2 - Testing in Software Lifecycle
Software Testing Foundations Part 2 - Testing in Software LifecycleSoftware Testing Foundations Part 2 - Testing in Software Lifecycle
Software Testing Foundations Part 2 - Testing in Software LifecycleNikita Knysh
 

Similaire à Continuous Integration (20)

Continuous integration
Continuous integrationContinuous integration
Continuous integration
 
CI, CD -Tools to integrate without manual intervention
CI, CD -Tools to integrate without manual interventionCI, CD -Tools to integrate without manual intervention
CI, CD -Tools to integrate without manual intervention
 
Flight East 2018 Presentation–Continuous Integration––An Overview
Flight East 2018 Presentation–Continuous Integration––An OverviewFlight East 2018 Presentation–Continuous Integration––An Overview
Flight East 2018 Presentation–Continuous Integration––An Overview
 
Automated testing overview
Automated testing overviewAutomated testing overview
Automated testing overview
 
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
 
Continuous Integration Practices
Continuous Integration Practices Continuous Integration Practices
Continuous Integration Practices
 
Atagg 2015 Test automation and effective continuous integration
Atagg 2015 Test automation and effective continuous integrationAtagg 2015 Test automation and effective continuous integration
Atagg 2015 Test automation and effective continuous integration
 
Software testing methods, levels and types
Software testing methods, levels and typesSoftware testing methods, levels and types
Software testing methods, levels and types
 
manualtesting-170218090020 (1).pdf
manualtesting-170218090020 (1).pdfmanualtesting-170218090020 (1).pdf
manualtesting-170218090020 (1).pdf
 
Continuous Integration Testing for SAP
Continuous Integration Testing for SAPContinuous Integration Testing for SAP
Continuous Integration Testing for SAP
 
QAorHighway2016
QAorHighway2016QAorHighway2016
QAorHighway2016
 
Test Driven Development & CI/CD
Test Driven Development & CI/CDTest Driven Development & CI/CD
Test Driven Development & CI/CD
 
Building a Complete Pipeline: The Essential Components of Continuous Testing ...
Building a Complete Pipeline: The Essential Components of Continuous Testing ...Building a Complete Pipeline: The Essential Components of Continuous Testing ...
Building a Complete Pipeline: The Essential Components of Continuous Testing ...
 
Test Automation Architecture That Works by Bhupesh Dahal
Test Automation Architecture That Works by Bhupesh DahalTest Automation Architecture That Works by Bhupesh Dahal
Test Automation Architecture That Works by Bhupesh Dahal
 
Software testing
Software testingSoftware testing
Software testing
 
testing strategies and tactics
 testing strategies and tactics testing strategies and tactics
testing strategies and tactics
 
Automated Testing with Agile
Automated Testing with AgileAutomated Testing with Agile
Automated Testing with Agile
 
Manual Testing software testing all slide
Manual Testing software testing all slideManual Testing software testing all slide
Manual Testing software testing all slide
 
Software Testing Foundations Part 2 - Testing in Software Lifecycle
Software Testing Foundations Part 2 - Testing in Software LifecycleSoftware Testing Foundations Part 2 - Testing in Software Lifecycle
Software Testing Foundations Part 2 - Testing in Software Lifecycle
 

Dernier

Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Commit University
 
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDEADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDELiveplex
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostMatt Ray
 
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding TeamAdam Moalla
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsSeth Reyes
 
COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a WebsiteCOMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Websitedgelyza
 
Designing A Time bound resource download URL
Designing A Time bound resource download URLDesigning A Time bound resource download URL
Designing A Time bound resource download URLRuncy Oommen
 
20230202 - Introduction to tis-py
20230202 - Introduction to tis-py20230202 - Introduction to tis-py
20230202 - Introduction to tis-pyJamie (Taka) Wang
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationIES VE
 
VoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXVoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXTarek Kalaji
 
Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioComparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioChristian Posta
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxGDSC PJATK
 
Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.YounusS2
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdfPedro Manuel
 
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1DianaGray10
 
UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7DianaGray10
 
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...DianaGray10
 
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfIaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfDaniel Santiago Silva Capera
 
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAAnypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAshyamraj55
 
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IES VE
 

Dernier (20)

Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)
 
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDEADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
 
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and Hazards
 
COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a WebsiteCOMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Website
 
Designing A Time bound resource download URL
Designing A Time bound resource download URLDesigning A Time bound resource download URL
Designing A Time bound resource download URL
 
20230202 - Introduction to tis-py
20230202 - Introduction to tis-py20230202 - Introduction to tis-py
20230202 - Introduction to tis-py
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
 
VoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXVoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBX
 
Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioComparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and Istio
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptx
 
Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdf
 
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1
 
UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7
 
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
 
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfIaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
 
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAAnypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
 
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
 

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! =)