Continuous Integration: A case study Vaibhav Kothari
Vaibhav Kothari <ul><li>Over 6 years of industry experience </li></ul><ul><ul><li>Quality Assurance – Lead, Talentica Soft...
Abstract <ul><ul><li>Developer’s dilemma </li></ul></ul><ul><ul><li>QA’s dilemma </li></ul></ul><ul><ul><li>Continuous Int...
Thought Exercise <ul><li>Goliath: Can you please get the build for client demo? </li></ul><ul><li>David: OK…..oOPs! The bu...
Developer’s dilemma <ul><ul><li>Will my changes integrate successfully with all versions of code? </li></ul></ul><ul><ul><...
QA’s dilemma <ul><ul><li>How much time/effort it will take to build and deploy from different source repository branches? ...
Continuous Integration?? <ul><ul><li>As wiki says </li></ul></ul><ul><ul><li>“  Continuous integration involves integratin...
Continuous Integration….
Continuous Integration…. <ul><ul><li>Integrating the build process with continuous development. </li></ul></ul><ul><ul><li...
CI in Agile development
Case Study <ul><ul><li>Current Product development Lifecycle </li></ul></ul>
<ul><ul><li>Where does integration server stands ? </li></ul></ul>Case Study
<ul><li>Features to look out for </li></ul><ul><ul><li>Basic Continuous Integration </li></ul></ul><ul><ul><li>Build Trigg...
<ul><li>Hudson CI </li></ul><ul><ul><li>Open source tool available as deployable war file. </li></ul></ul><ul><ul><li>Each...
Case Study <ul><ul><li>Tools to be Integrated </li></ul></ul>Windows XP/Linux OS Selenium RC Test Automation Apache Tomcat...
Case Study: Setting up a Build Job…
Case Study: Defining Build Triggers…
<ul><li>Post build tasks </li></ul><ul><ul><li>Automate build and deployment process and server restart. </li></ul></ul><u...
Case Study: Post build tasks…
<ul><li>Distributed Builds </li></ul><ul><ul><li>Build distribution using Single Hudson installation.  </li></ul></ul><ul>...
Case Study
Case Study…Slave set up in Hudson
Case Study….What’s achieved?
<ul><ul><li>Nobody minds it! Single click process. </li></ul></ul><ul><ul><li>Early identification of build issues. </li><...
<ul><ul><li>Maintain a code repository </li></ul></ul><ul><ul><li>Automate the build and Deployment </li></ul></ul><ul><ul...
Other Tools Available Tools Advantages Limitations Cruise Control - Supports wide project and SCM tool. - Good notificatio...
<ul><li>Q&A </li></ul>
Upcoming SlideShare
Loading in …5
×

Continous Integration: A Case Study

2,215
-1

Published on

One of the challenges faced by many web development based projects is the integration of source code for multiple releases during parallel development. The task to build and test the multiple versions of source code can eat out the quality time and limit the efficiency of the development/QA team. The case study focuses to resolve the issues of extensive effort consumed in build and deployment process from multiple branches in source repository and aim at Identification of source code integration issues at the earliest stage. This can further be enhanced to limit the manual intervention by integration of build system with test automation tool.
The above can be achieved by using different CI tools (like Hudson/Bamboo/TeamCity/CruiseControl etc) for continuous build preparation and its integration with any test automation suite. The case study specifies the use of CI-Hudson tool for continuous integration using ANT tool for build preparation and further invoking the automation test suite developed using selenium. It also discusses the limitations and challenges of using such an integration system for testing a web based application deployed on Apache Tomcat server. It also details additional plugins available to enhance such an integration of multiple systems and what can be achieved using the above integration.

Published in: Technology
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,215
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
101
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

Continous Integration: A Case Study

  1. 1. Continuous Integration: A case study Vaibhav Kothari
  2. 2. Vaibhav Kothari <ul><li>Over 6 years of industry experience </li></ul><ul><ul><li>Quality Assurance – Lead, Talentica Software </li></ul></ul><ul><ul><li>Quality Analyst, Infosys </li></ul></ul><ul><li>Education </li></ul><ul><ul><li>B Tech, IIT Delhi </li></ul></ul>
  3. 3. Abstract <ul><ul><li>Developer’s dilemma </li></ul></ul><ul><ul><li>QA’s dilemma </li></ul></ul><ul><ul><li>Continuous Integration ? </li></ul></ul><ul><ul><li>Case study </li></ul></ul><ul><ul><li>What is accomplished? </li></ul></ul><ul><ul><li>Benefits of CI </li></ul></ul><ul><ul><li>Recommended Practices </li></ul></ul><ul><ul><li>Other Tools Available </li></ul></ul><ul><ul><li>Q&A </li></ul></ul>
  4. 4. Thought Exercise <ul><li>Goliath: Can you please get the build for client demo? </li></ul><ul><li>David: OK…..oOPs! The build is failing! </li></ul>
  5. 5. Developer’s dilemma <ul><ul><li>Will my changes integrate successfully with all versions of code? </li></ul></ul><ul><ul><li>How much time/effort will it take to build and deploy from different source repository branches? </li></ul></ul><ul><ul><li>Why can’t QA take this up? </li></ul></ul>
  6. 6. QA’s dilemma <ul><ul><li>How much time/effort it will take to build and deploy from different source repository branches? </li></ul></ul><ul><ul><li>How much time/effort will it take to test builds from different sources? </li></ul></ul><ul><ul><li>I can't build that often! </li></ul></ul>
  7. 7. Continuous Integration?? <ul><ul><li>As wiki says </li></ul></ul><ul><ul><li>“ Continuous integration involves integrating early and often, so as to avoid the pitfalls of &quot; integration hell &quot;. The practice aims to reduce rework and thus reduce cost and time.” </li></ul></ul>
  8. 8. Continuous Integration….
  9. 9. Continuous Integration…. <ul><ul><li>Integrating the build process with continuous development. </li></ul></ul><ul><ul><li>Concurrent build preparation from different branches. </li></ul></ul><ul><ul><li>Integrating build system with deployment and test automation. </li></ul></ul><ul><ul><li>Monitoring build and test. </li></ul></ul>
  10. 10. CI in Agile development
  11. 11. Case Study <ul><ul><li>Current Product development Lifecycle </li></ul></ul>
  12. 12. <ul><ul><li>Where does integration server stands ? </li></ul></ul>Case Study
  13. 13. <ul><li>Features to look out for </li></ul><ul><ul><li>Basic Continuous Integration </li></ul></ul><ul><ul><li>Build Triggering options </li></ul></ul><ul><ul><li>Support for tools </li></ul></ul><ul><ul><li>Set ups and usability </li></ul></ul><ul><ul><li>Build logs and metrics </li></ul></ul><ul><ul><li>Notifications </li></ul></ul><ul><ul><li>Plugins, Extensions </li></ul></ul>Case Study
  14. 14. <ul><li>Hudson CI </li></ul><ul><ul><li>Open source tool available as deployable war file. </li></ul></ul><ul><ul><li>Each build and deployment process can be set up as a separate project and run concurrently or subsequently. </li></ul></ul><ul><ul><li>Supports distributed builds </li></ul></ul><ul><ul><li>The most used CI server in an informal developer survey! </li></ul></ul>Case Study
  15. 15. Case Study <ul><ul><li>Tools to be Integrated </li></ul></ul>Windows XP/Linux OS Selenium RC Test Automation Apache Tomcat 6.0 Web server Apache Ant Build Tool Subversion Version control Hudson CI Continuous Integration
  16. 16. Case Study: Setting up a Build Job…
  17. 17. Case Study: Defining Build Triggers…
  18. 18. <ul><li>Post build tasks </li></ul><ul><ul><li>Automate build and deployment process and server restart. </li></ul></ul><ul><ul><li>Integrate Hudson with test automation suite </li></ul></ul><ul><ul><li>Remote deployment of multiple builds and test suite invocation </li></ul></ul>Case Study
  19. 19. Case Study: Post build tasks…
  20. 20. <ul><li>Distributed Builds </li></ul><ul><ul><li>Build distribution using Single Hudson installation. </li></ul></ul><ul><ul><li>Single click using Master/Slave mode. </li></ul></ul><ul><ul><li>Concurrency in largely distributed projects. </li></ul></ul>Case Study
  21. 21. Case Study
  22. 22. Case Study…Slave set up in Hudson
  23. 23. Case Study….What’s achieved?
  24. 24. <ul><ul><li>Nobody minds it! Single click process. </li></ul></ul><ul><ul><li>Early identification of build issues. </li></ul></ul><ul><ul><li>Early identification of bugs. </li></ul></ul><ul><ul><li>Incremental development. </li></ul></ul><ul><ul><li>Constant availability of sane build. </li></ul></ul><ul><ul><li>Efficient use of Test Automation. </li></ul></ul><ul><ul><li>More time for Quality improvement. </li></ul></ul>Benefits of CI
  25. 25. <ul><ul><li>Maintain a code repository </li></ul></ul><ul><ul><li>Automate the build and Deployment </li></ul></ul><ul><ul><li>Make your build self-testing </li></ul></ul><ul><ul><li>Everyone commits every day </li></ul></ul><ul><ul><li>Every commit (to mainline) should be built </li></ul></ul><ul><ul><li>Keep the build fast </li></ul></ul><ul><ul><li>Test in a clone of the production environment </li></ul></ul><ul><ul><li>Everyone can see the results of the latest build </li></ul></ul>Recommended Practices
  26. 26. Other Tools Available Tools Advantages Limitations Cruise Control - Supports wide project and SCM tool. - Good notification techniques - Large number of plugins - Complicated set up - XML based configuration Continuum - Easy to install and use - Web Administrative console - Not suitable for big projects Luntbuild - Easy to install and use - Web Administrative console - Supports wide range of tools - Not support remote project build up TeamCity - Supports distributed build - Professional support (JetBrains) - Advanced options <ul><li>Commercial tool (free for 10 projects) </li></ul>Bamboo <ul><li>Advanced distributed build options </li></ul><ul><li>Integrates with JIRA </li></ul><ul><li>Commercial tools </li></ul>
  27. 27. <ul><li>Q&A </li></ul>
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×