SlideShare a Scribd company logo
Pooja Mantri SCIT
What is Integration? Definition: “the act of combining into an integral whole” In software development, integration includes… Combining source files Combining software and environment Combining software and data Combining software and requirements (tests) Combining developers Pooja Mantri  Continuous Integration
Integration Testing in SDLC Combine the application’s components into working software.  Historically done near the end of the project. Very risky! Software modules don’t always work together as expected Best case: Time to fix, time to retest that module Worst case: Time to determine why, time to redesign, time to fix, time to test all of the modules affected by the redesign. Pooja Mantri  Continuous Integration
Nightly Builds Practice became popular in the late 90s after Microsoft published its development practices Integrate all of the software on a nightly basis.  Smoke Test – run the application and conduct a minimal set of tests to see if it “catches fire”.  Pooja Mantri  Continuous Integration
Take it to the Extreme Extreme Programming says… if testing is good, test all the time if integration testing is important, integrate and test all the time if short iterations are good, make the iterations really, really short (minutes and hours, not weeks and months) Continuous Integration is born. Pooja Mantri  Continuous Integration
What is Continuous Integration? It describes a set of software engineering practices that speed up the delivery of software by decreasing integration times. Integrates source code and runs tests after each commit of code to the source repository. Near-immediate feedback to the developer from the authoritative source, the system itself. Pooja Mantri  Continuous Integration
Example:  Development of a Small Feature Assumption: We have to do something which can be competed in few hours. The actual task doesn’t matter. Development checks out current coy of the integrated source code. He performs his task, tests it and commits the changes to the repository. Pooja Mantri  Continuous Integration
The builder than merges the copy to the mainline. If any conflicts found they are fixed by the developer. If no merge conflicts, builder builds the project on integration machine based on mainline code. If compilation error, developer fixes it and repeats the process until builder  can build a working copy which is properly synchronized with the mainline. Pooja Mantri  Continuous Integration
Task is completed on if after a successful build. If a clash between two developers exist, it is caught either when Second developer commits his local copy or Integration build fails Thus error is detected rapidly In continuous integration a failed integration build should never remain failed for long. Pooja Mantri  Continuous Integration
Practices of continuous Integration Maintain a single source repository Automate the build Make your build self-testing Everyone commits frequently Every  commit should build the mainline on an integration machine Keep the build fast Make it easy for anyone to get the latest executable Everyone can see what’s happening Automate deployment Pooja Mantri  Continuous Integration
Nightly vs. Continuous Builds Nightly builds generate deliverables. They result in something tangible:  something for QA to test something for product managers to review something to reassure team members that they are in fact building a product.  Because of the external audience, the nightly build is a formal event, a mini-milestone that your team should hit without fail. Breaking the nightly build is something that generates blame and often consequences, such as becoming the build mother or being awarded a dunce cap. Continuous Integration builds don’t need durable build products to be beneficial. They are a way for a developer to have a conversation with the system to gain reassurance that they have done their part.  Both must be used Pooja Mantri  Continuous Integration
Benefits of Continuous Integration It minimizes integration risk.   It supports easier defect diagnosis.   Frequent Deployment It saves time creating releases. Encourages good testing habits It enables other good development practices… Pooja Mantri  Continuous Integration
C.I. Enables other Practices Test Driven Development Fewer bugs, less time debugging Confidence to refactor Executable Documentation Validation that you are complete Release Management Builds are centralized Builds are repeatable/re-creatable Modifications are clearly mapped to releases Issues are clearly mapped to releases and thus to modifications Releases are only created with committed code Digitally signed code Enforcement of Company Development Policy Automate policy tests with Checkstyle Manual code reviews can focus on design not syntax Pooja Mantri  Continuous Integration

More Related Content

PPTX
Treinamento TDD
PPTX
Resource1 spm
PPTX
DevOps Tactical Adoption Theory - DevOpsDays istanbul 2016
PPT
Test-Driven Development
PPTX
Lean Enterprise, A Definitive Approach in Software Development Production
PPTX
Java Code Quality Improvements - DevWeek
PPTX
Difference between traditional and agile software development
PPT
Test Driven Development
Treinamento TDD
Resource1 spm
DevOps Tactical Adoption Theory - DevOpsDays istanbul 2016
Test-Driven Development
Lean Enterprise, A Definitive Approach in Software Development Production
Java Code Quality Improvements - DevWeek
Difference between traditional and agile software development
Test Driven Development

What's hot (18)

PPTX
Continuous Delivery
PPTX
DevOps
PPT
What Software Quality Assurance Means to Me
PPTX
Quality Assurance
PDF
Agile Testing
PPTX
03. Agile Development
PPT
QA in Agile
PPTX
Xp exterme-programming-model
PPT
Introduction To Extreme Programming
PDF
Extreme programming
PPT
Agile Development Ultimate Slides
PPT
Why Do User Research And Usability Testing
PPTX
Continuous Integration using Hudson and Fitnesse at Ingenuity Systems (Silico...
PPTX
CI-CD and DevOps with Ruby
PPT
Agile Engineering Practices
PPTX
The four generations of test automation
PPT
DevOpsDays Warsaw 2015: Continuous Integration is Dead – Yegor Bugayenko
PDF
Continuous Integration is Dead
Continuous Delivery
DevOps
What Software Quality Assurance Means to Me
Quality Assurance
Agile Testing
03. Agile Development
QA in Agile
Xp exterme-programming-model
Introduction To Extreme Programming
Extreme programming
Agile Development Ultimate Slides
Why Do User Research And Usability Testing
Continuous Integration using Hudson and Fitnesse at Ingenuity Systems (Silico...
CI-CD and DevOps with Ruby
Agile Engineering Practices
The four generations of test automation
DevOpsDays Warsaw 2015: Continuous Integration is Dead – Yegor Bugayenko
Continuous Integration is Dead
Ad

Similar to Continuous Integration (20)

PDF
Continuous integration
PPTX
Introducing Continuous Integration Using Vsts
ODP
Agile Engineering
PPT
Continuous Integration
PPTX
Continuous integration with Jenkins
PPTX
Improving developer tester collaboration with microsoft visual studio 2010
PDF
Magenic-White-Paper-Continuous-Inegration-for-QA-Teams
PPTX
Continuous integration
DOCX
Continuous Integration vs Continuous Delivery vs Continuous Deployment
PPTX
Continuous integration
PDF
Notes On Agile Development
PPT
Continuous Integration
PPT
Continuous Integration
PPTX
TDD - Agile
PPTX
Using Continuous Integration To Ensure Project Health New
PDF
Continuous Everything
PDF
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
PPT
Part 2 improving your software development v1.0
PDF
Agile A to Z Chapter 4 Feedback Loop Part 2 DevOps
PDF
DevOps & DevEx
Continuous integration
Introducing Continuous Integration Using Vsts
Agile Engineering
Continuous Integration
Continuous integration with Jenkins
Improving developer tester collaboration with microsoft visual studio 2010
Magenic-White-Paper-Continuous-Inegration-for-QA-Teams
Continuous integration
Continuous Integration vs Continuous Delivery vs Continuous Deployment
Continuous integration
Notes On Agile Development
Continuous Integration
Continuous Integration
TDD - Agile
Using Continuous Integration To Ensure Project Health New
Continuous Everything
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
Part 2 improving your software development v1.0
Agile A to Z Chapter 4 Feedback Loop Part 2 DevOps
DevOps & DevEx
Ad

Recently uploaded (20)

PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
cuic standard and advanced reporting.pdf
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
KodekX | Application Modernization Development
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Approach and Philosophy of On baking technology
PPTX
Cloud computing and distributed systems.
PDF
Electronic commerce courselecture one. Pdf
PPTX
Big Data Technologies - Introduction.pptx
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
A Presentation on Artificial Intelligence
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PDF
Empathic Computing: Creating Shared Understanding
Understanding_Digital_Forensics_Presentation.pptx
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Chapter 3 Spatial Domain Image Processing.pdf
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
The Rise and Fall of 3GPP – Time for a Sabbatical?
Spectral efficient network and resource selection model in 5G networks
Review of recent advances in non-invasive hemoglobin estimation
cuic standard and advanced reporting.pdf
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
KodekX | Application Modernization Development
Per capita expenditure prediction using model stacking based on satellite ima...
Approach and Philosophy of On baking technology
Cloud computing and distributed systems.
Electronic commerce courselecture one. Pdf
Big Data Technologies - Introduction.pptx
Reach Out and Touch Someone: Haptics and Empathic Computing
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
A Presentation on Artificial Intelligence
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
Empathic Computing: Creating Shared Understanding

Continuous Integration

  • 2. What is Integration? Definition: “the act of combining into an integral whole” In software development, integration includes… Combining source files Combining software and environment Combining software and data Combining software and requirements (tests) Combining developers Pooja Mantri Continuous Integration
  • 3. Integration Testing in SDLC Combine the application’s components into working software. Historically done near the end of the project. Very risky! Software modules don’t always work together as expected Best case: Time to fix, time to retest that module Worst case: Time to determine why, time to redesign, time to fix, time to test all of the modules affected by the redesign. Pooja Mantri Continuous Integration
  • 4. Nightly Builds Practice became popular in the late 90s after Microsoft published its development practices Integrate all of the software on a nightly basis. Smoke Test – run the application and conduct a minimal set of tests to see if it “catches fire”. Pooja Mantri Continuous Integration
  • 5. Take it to the Extreme Extreme Programming says… if testing is good, test all the time if integration testing is important, integrate and test all the time if short iterations are good, make the iterations really, really short (minutes and hours, not weeks and months) Continuous Integration is born. Pooja Mantri Continuous Integration
  • 6. What is Continuous Integration? It describes a set of software engineering practices that speed up the delivery of software by decreasing integration times. Integrates source code and runs tests after each commit of code to the source repository. Near-immediate feedback to the developer from the authoritative source, the system itself. Pooja Mantri Continuous Integration
  • 7. Example: Development of a Small Feature Assumption: We have to do something which can be competed in few hours. The actual task doesn’t matter. Development checks out current coy of the integrated source code. He performs his task, tests it and commits the changes to the repository. Pooja Mantri Continuous Integration
  • 8. The builder than merges the copy to the mainline. If any conflicts found they are fixed by the developer. If no merge conflicts, builder builds the project on integration machine based on mainline code. If compilation error, developer fixes it and repeats the process until builder can build a working copy which is properly synchronized with the mainline. Pooja Mantri Continuous Integration
  • 9. Task is completed on if after a successful build. If a clash between two developers exist, it is caught either when Second developer commits his local copy or Integration build fails Thus error is detected rapidly In continuous integration a failed integration build should never remain failed for long. Pooja Mantri Continuous Integration
  • 10. Practices of continuous Integration Maintain a single source repository Automate the build Make your build self-testing Everyone commits frequently Every commit should build the mainline on an integration machine Keep the build fast Make it easy for anyone to get the latest executable Everyone can see what’s happening Automate deployment Pooja Mantri Continuous Integration
  • 11. Nightly vs. Continuous Builds Nightly builds generate deliverables. They result in something tangible: something for QA to test something for product managers to review something to reassure team members that they are in fact building a product. Because of the external audience, the nightly build is a formal event, a mini-milestone that your team should hit without fail. Breaking the nightly build is something that generates blame and often consequences, such as becoming the build mother or being awarded a dunce cap. Continuous Integration builds don’t need durable build products to be beneficial. They are a way for a developer to have a conversation with the system to gain reassurance that they have done their part. Both must be used Pooja Mantri Continuous Integration
  • 12. Benefits of Continuous Integration It minimizes integration risk. It supports easier defect diagnosis. Frequent Deployment It saves time creating releases. Encourages good testing habits It enables other good development practices… Pooja Mantri Continuous Integration
  • 13. C.I. Enables other Practices Test Driven Development Fewer bugs, less time debugging Confidence to refactor Executable Documentation Validation that you are complete Release Management Builds are centralized Builds are repeatable/re-creatable Modifications are clearly mapped to releases Issues are clearly mapped to releases and thus to modifications Releases are only created with committed code Digitally signed code Enforcement of Company Development Policy Automate policy tests with Checkstyle Manual code reviews can focus on design not syntax Pooja Mantri Continuous Integration