ENABLING
CONTINUOUS DELIVERY
IN ENTERPRISES WITH
TESTING
Anand Bagmar
Test Practice Lead
@BagmarAnand
about.me/anand.bagmar
ABOUT ME
WHAT DO YOU EXPECT FROM THIS SESSION?
A Triangle = A Pentagon
Money / Value
Time
Quality
ORGANIZATION OBJECTIVE
DISTRIBUTION / FRAGMENTATION
CORE BANKING
IMPLEMENTATION
Case Study
8
DISTRIBUTED TEAMS
PROGRAM SCOPE
PROGRAM SCOPE
PROGRAM SCOPE
130 systems,
290 interfaces!
PROGRAM SCOPE
EXECUTION CHALLENGES
Multi-Partners
-  Policies
-  Constraints
-  Way of working
Stakeholders
Agile
Money!
Trust
OTHER CHALLENGES
Team Distribution
& Integration
Scope
Co-Existence
Data Migration
Defect
Management
NON FUNCTIONAL REQUIREMENTS
Security
Performance
Auditability
Compliance
Accessibility
CODE QUALITY
Core product
team(s)
Customization
team(s)
Integration &
configuration
team(s)
Systems
team(s)
NFR
Team(s)
How to get early
feedback in such
situation?
Money / Value
Time
Quality
ORGANIZATION OBJECTIVE
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-integration
CI PROCESS
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
CONTINUOUS DELIVERY
HOW DO WE GET TO CONTINUOUS DELIVERY?
Principles &
Practices
Test Automation
A PRACTICE THAT MAKES TEAMS SUCCESSFUL?
Test Automation
A PRACTICE THAT MAKES TEAMS UNSUCCESSFUL?
What is
Test Automation?
Automation
-
A Safety Net
Why do we do
Test Automation?
QUICK FEEDBACK
How to get quick
feedback from
Test Automation?
IDEAL TEST AUTOMATION PYRAMID
Unit
Manual / Exploratory
Integration
JavaScript
View
Web Service
UI
Cost
Impact
Time
Business-
facing
Tests
Technology-
facing
Tests
REALITY
ICE-CREAM CONE ANTI PATTERN
Manual / Exploratory
UI
Web Service
View
JavaScript
Integration
Unit
Web Service
View
JavaScript
Integration
Unit
Developers Test Pyramid QA Team Test Pyramid
DUAL TEST PYRAMID ANTI-PATTERN
Manual / Exploratory
UI
Web Service
CUP-CAKE ANTI-PATTERN
HOW DO WE GET TO CONTINUOUS DELIVERY?
Test Automation
Approach
LEGEND
Unit Tests
Integration
Tests
Web Service
Tests
Functional
UI Tests
Manual /
Exploratory
Tests
PROGRAM SCOPE
PROGRAM SCOPE
Developer
Environment
Semi-Integrated
Environment
Pre-Prod / UAT
Environment
Integrated
Environment
Stubbed
Environment
Takeaways
TO GET EARLY FEEDBACK – YOU NEED TO...
Identify tests
for specific
environments
Smart
Automation
Identify correct
& appropriate
environments
Test
Consolidation
Maintenance
Test
Prioritization
Common
repository
Categorize
Tests
Single
Dashboard
DevOps
Testing
cannot work
in isolation
Processes,
Practices & Tools
So ….
A Triangle == A Pentagon
OR …
A Triangle == A n-dimensional Polygon
abagmar@gmail.com
Anand.Bagmar@thoughtworks.com
@BagmarAnand
about.me/anand.bagmar
THANK YOU

Enabling CD in Enterprises with Testing