Enabling CD in Enterprises with Testing

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

description

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.

Transcript of Enabling CD in Enterprises with Testing

Page 1: Enabling CD in Enterprises with Testing

ENABLING CONTINUOUS DELIVERY IN ENTERPRISES WITH TESTING Anand Bagmar

Test Practice Lead 1

Page 2: Enabling CD in Enterprises with Testing

@BagmarAnand

about.me/anand.bagmar

ABOUT ME

Page 3: Enabling CD in Enterprises with Testing

WHAT DO YOU EXPECT FROM THIS SESSION?

Page 4: Enabling CD in Enterprises with Testing

A Triangle = A Pentagon

Page 5: Enabling CD in Enterprises with Testing

Test Automation

A PRACTICE THAT MAKES TEAMS SUCCESSFUL?

Page 6: Enabling CD in Enterprises with Testing

Test Automation

A PRACTICE THAT MAKES TEAMS UNSUCCESSFUL?

Page 7: Enabling CD in Enterprises with Testing

What is Test Automation?

Page 8: Enabling CD in Enterprises with Testing

Automation – A Safety Net

Page 9: Enabling CD in Enterprises with Testing

Manual / Exploratory UI

Web Service

View

JavaScript

Integration

Unit

Time

Value

Cost

IDEAL TEST AUTOMATION PYRAMID

Page 10: Enabling CD in Enterprises with Testing

REALITY

Page 11: Enabling CD in Enterprises with Testing

UI

Web Service

View

JavaScript

Integration

Unit

ICE-CREAM CONE ANTI PATTERN

Manual / Exploratory

Page 12: Enabling CD in Enterprises with Testing

Developers Test Pyramid QA Team Test Pyramid

Web Service

View

JavaScript

Integration

Unit

Manual / Exploratory

UI

Web Service

DUAL TEST PYRAMID ANTI-PATTERN

Page 13: Enabling CD in Enterprises with Testing

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

Page 14: Enabling CD in Enterprises with Testing

CI PROCESS

Page 15: Enabling CD in Enterprises with Testing

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

Page 16: Enabling CD in Enterprises with Testing

CONTINUOUS DELIVERY

Page 17: Enabling CD in Enterprises with Testing

CORE BANKING IMPLEMENTATION Case Study

Page 18: Enabling CD in Enterprises with Testing

ORGANIZATION OBJECTIVE

Money / Value

Time

Quality

Page 19: Enabling CD in Enterprises with Testing

DISTRIBUTION / FRAGMENTATION

Page 20: Enabling CD in Enterprises with Testing

Existing systems in Bank

External systems Customizing the

Core Banking Product

PROGRAM SCOPE

Legacy Core Banking Platform

Page 21: Enabling CD in Enterprises with Testing

130 systems and 290 interfaces!

PROGRAM SCOPE

Page 22: Enabling CD in Enterprises with Testing

EXECUTION CHALLENGES

Multi-Partners -  Policies -  Constraints -  Way of working

Stakeholders

Agile

Money!

Trust

Page 23: Enabling CD in Enterprises with Testing

OTHER CHALLENGES

Co-Existence

Data Migration

Scope

Defect Management

Team Distribution & Integration

Page 24: Enabling CD in Enterprises with Testing

NON FUNCTIONAL REQUIREMENTS

24

Security

Performance

Auditability

Compliance

Accessibility

Page 25: Enabling CD in Enterprises with Testing

DISTRIBUTED TEAMS

Page 26: Enabling CD in Enterprises with Testing

CODE QUALITY

Core product team(s)

Customization team(s)

Integration & configuration team(s)

Systems team(s)

NFR Team(s)

Page 27: Enabling CD in Enterprises with Testing

How do you get early feedback in such type of situation?

27

Page 28: Enabling CD in Enterprises with Testing

De

Integrated Environment

Unit tests

Integration tests

Web Service tests

Functional UI Tests

Manual / Exploratory tests

Legend

Page 29: Enabling CD in Enterprises with Testing

De

Integrated Environment

Developer Environment

Page 30: Enabling CD in Enterprises with Testing

De

Integrated Environment

Developer Environment

Stubbed Environment

Page 31: Enabling CD in Enterprises with Testing

De

Integrated Environment

Developer Environment

Semi-Integrated Environment

Stubbed Environment

Page 32: Enabling CD in Enterprises with Testing

De

Integrated Environment

Developer Environment

Semi-Integrated Environment

Stubbed Environment

Page 33: Enabling CD in Enterprises with Testing

De

Integrated Environment

Developer Environment

Semi-Integrated Environment

Stubbed Environment

Pre-Prod / UAT Environment

Page 34: Enabling CD in Enterprises with Testing

WHAT THIS MEANS IS

34

Identify tests for specific environments

Automation practices

Get early feedback

Identify environments

Test Consolidation

Maintenance

Test Prioritization Common repository

Test categorization

Single Dashboard

DevOps

Testing cannot work in isolation

Page 35: Enabling CD in Enterprises with Testing

KEY TAKEAWAYS

Listen

Buy-in

Levers Scope / Time / Capacity

Transparent

Quick Feedback - Give & Take

Quality

Learn & Evolve Innovate

Trust

Shared Understanding

Flexible

Page 36: Enabling CD in Enterprises with Testing

A Triangle == A Pentagon

36

So ….

Page 37: Enabling CD in Enterprises with Testing

OR …

37

A Triangle == A n-dimensional Polygon

Page 38: Enabling CD in Enterprises with Testing

[email protected] [email protected]

@BagmarAnand

about.me/anand.bagmar

THANK YOU