Download - Enabling CD in Enterprises with Testing

Transcript

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