Enabling CD in Enterprises with Testing

3,858 views

Published on

The key objectives of Organizations is to provide / derive value from the products / services they offer. To achieve this, they need to be able to deliver their offerings in the quickest time possible, and of good quality! In such a fast moving environment, CI (Continuous Integration) and CD (Continuous Delivery) are now a necessity and not a luxury! There are various practices that Organizations and Enterprises need to implement to enable CD. Testing (automation) is one of the important practices that needs to be setup correctly for CD to be successful. Testing in Organizations on the CD journey is tricky and requires a lot of discipline, rigor and hard work. In Enterprises, the Testing complexity and challenges increase exponentially.

I am sharing my vision of the Test Vision and Strategy required to make successful the journey of an Enterprise on the path of implementing CD. Learn via a case study of an Enterprise, what does CD really means, and how and what Testing needs to be done in order to enable CD.

Published in: Technology

Enabling CD in Enterprises with Testing

  1. 1. ENABLING CONTINUOUS DELIVERY IN ENTERPRISES WITH TESTING Anand Bagmar Test Practice Lead 1
  2. 2. @BagmarAnand about.me/anand.bagmar ABOUT ME
  3. 3. WHAT DO YOU EXPECT FROM THIS SESSION?
  4. 4. A Triangle = A Pentagon
  5. 5. Test Automation A PRACTICE THAT MAKES TEAMS SUCCESSFUL?
  6. 6. Test Automation A PRACTICE THAT MAKES TEAMS UNSUCCESSFUL?
  7. 7. What is Test Automation?
  8. 8. Automation – A Safety Net
  9. 9. Manual / Exploratory UI Web Service View JavaScript Integration Unit Time Value Cost IDEAL TEST AUTOMATION PYRAMID
  10. 10. REALITY
  11. 11. UI Web Service View JavaScript Integration Unit ICE-CREAM CONE ANTI PATTERN Manual / Exploratory
  12. 12. Developers Test Pyramid QA Team Test Pyramid Web Service View JavaScript Integration Unit Manual / Exploratory UI Web Service DUAL TEST PYRAMID ANTI-PATTERN
  13. 13. CONTINUOUS INTEGRATION (CI) ”… is a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily - leading to multiple integrations per day. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible…." - Martin Fowler, ThoughtWorks Chief Scientist http://www.thoughtworks.com/continuous-delivery
  14. 14. CI PROCESS
  15. 15. CONTINUOUS DELIVERY (CD) … is the natural extension of Continuous Integration: an approach in which teams ensure that every change to the system is releasable, and that we can release any version at the push of a button. Continuous Delivery aims to make releases boring, so we can deliver frequently and get fast feedback on what users care about. - Martin Fowler, ThoughtWorks Chief Scientist http://www.thoughtworks.com/continuous-delivery
  16. 16. CONTINUOUS DELIVERY
  17. 17. CORE BANKING IMPLEMENTATION Case Study
  18. 18. ORGANIZATION OBJECTIVE Money / Value Time Quality
  19. 19. DISTRIBUTION / FRAGMENTATION
  20. 20. Existing systems in Bank External systems Customizing the Core Banking Product PROGRAM SCOPE Legacy Core Banking Platform
  21. 21. 130 systems and 290 interfaces!PROGRAM SCOPE
  22. 22. EXECUTION CHALLENGES Multi-Partners -  Policies -  Constraints -  Way of working Stakeholders Agile Money! Trust
  23. 23. OTHER CHALLENGES Co-Existence Data Migration Scope Defect Management Team Distribution & Integration
  24. 24. NON FUNCTIONAL REQUIREMENTS 24 Security Performance Auditability Compliance Accessibility
  25. 25. DISTRIBUTED TEAMS
  26. 26. CODE QUALITY Core product team(s) Customization team(s) Integration & configuration team(s) Systems team(s) NFR Team(s)
  27. 27. How do you get early feedback in such type of situation? 27
  28. 28. De Integrated Environment Unit tests Integration tests Web Service tests Functional UI Tests Manual / Exploratory tests Legend
  29. 29. De Integrated Environment Developer Environment
  30. 30. De Integrated Environment Developer Environment Stubbed Environment
  31. 31. De Integrated Environment Developer Environment Semi-Integrated Environment Stubbed Environment
  32. 32. De Integrated Environment Developer Environment Semi-Integrated Environment Stubbed Environment
  33. 33. De Integrated Environment Developer Environment Semi-Integrated Environment Stubbed Environment Pre-Prod / UAT Environment
  34. 34. WHAT THIS MEANS IS 34 Identify tests for specific environments Automation practices Get early feedback Identify environments Test Consolidation Maintenance Test PrioritizationCommon repository Test categorization Single Dashboard DevOps Testing cannot work in isolation
  35. 35. KEY TAKEAWAYS Listen Buy-in Levers Scope / Time / Capacity Transparent Quick Feedback - Give & Take Quality Learn & EvolveInnovate Trust Shared Understanding Flexible
  36. 36. A Triangle == A Pentagon 36 So ….
  37. 37. OR … 37 A Triangle == A n-dimensional Polygon
  38. 38. abagmar@gmail.com Anand.Bagmar@thoughtworks.com @BagmarAnand about.me/anand.bagmar THANK YOU

×