Enabling CD in Enterprises with Testing

48
ENABLING CONTINUOUS DELIVERY IN ENTERPRISES WITH TESTING Anand Bagmar Test Practice Lead

Transcript of Enabling CD in Enterprises with Testing

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

[email protected] [email protected]

@BagmarAnand

about.me/anand.bagmar

THANK YOU