testing in the devops world of continuous delivery · pdf filetesting in the devops world of...

15
W18 Track 10/3/2012 3:00:00 PM "Testing in the DevOps World of Continuous Delivery" Presented by: Manoj Narayanan Cognizant Technology Solutions Brought to you by: 340 Corporate Way, Suite 300, Orange Park, FL 32073 888-268-8770 ∙ 904-278-0524 ∙ [email protected] ∙ www.sqe.com

Upload: trandieu

Post on 28-Mar-2018

229 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Testing in the DevOps World of Continuous Delivery · PDF fileTesting in the DevOps world of Continuous Delivery ... Is DevOps different from Agile? ... •Change to a DevOps environment

W18 Track

10/3/2012 3:00:00 PM

"Testing in the DevOps World of Continuous

Delivery"

Presented by:

Manoj Narayanan

Cognizant Technology Solutions

Brought to you by:

340 Corporate Way, Suite 300, Orange Park, FL 32073

888-268-8770 ∙ 904-278-0524 ∙ [email protected] ∙ www.sqe.com

Page 2: Testing in the DevOps World of Continuous Delivery · PDF fileTesting in the DevOps world of Continuous Delivery ... Is DevOps different from Agile? ... •Change to a DevOps environment

Manoj Narayanan Cognizant Technology Solutions

Manoj Narayanan is the director of testing services at Cognizant Technology Solutions, a leading

provider of information technology and consulting services. Manoj is the QA practice leader for

Cognizant’s retail and consumer goods, travel and hospitality, and manufacturing verticals in

North America. He provides thought leadership and implementation assistance for his clients as

they transition the QA organization toward the next maturity level. During his fifteen years in

the IT services industry, Manoj has successfully played multiple roles including performance

services evangelist, program manager, and transition advisor. Prior to Cognizant, Manoj was a

management consultant with A T Kearney where he focused on business process re-

engineering and risk optimization.

Page 3: Testing in the DevOps World of Continuous Delivery · PDF fileTesting in the DevOps world of Continuous Delivery ... Is DevOps different from Agile? ... •Change to a DevOps environment

1

by

Manoj NarayananSenior Director –Testing Services, Cognizant

Testing in the DevOps world of Continuous Delivery

What we will discuss today

• Is there a need to change traditional testing approaches?

• What is DevOps - Is it different from Agile?

• How does it help the organization?

• Impact to testing in a DevOps scenario

� People

� Process

� Governance

� Technology

1

Page 4: Testing in the DevOps World of Continuous Delivery · PDF fileTesting in the DevOps world of Continuous Delivery ... Is DevOps different from Agile? ... •Change to a DevOps environment

2

2

Traditional testing approach is geared

towards sequential delivery

Development Testing Deployment

leads to leads to

Resulting in a siloed organization structure …

… with communication challenges

Also leads to focus on discrete skill sets -

minimizing cross functional behavior

Development Testing Deployment

Need to know

Java, .Net etc

Master of QA, but

ignorant of all else

Limited opportunity for mutual

assistance and sharing of ideas

3

Page 5: Testing in the DevOps World of Continuous Delivery · PDF fileTesting in the DevOps world of Continuous Delivery ... Is DevOps different from Agile? ... •Change to a DevOps environment

3

Result: Unintended Consequences!

What the end

user wanted

What the

developers built

What was

tested

Finally

Deployed!

4

Sequential delivery approach also results

in longer delivery times & higher risk

Time

Functionality

Long wait time

Higher risk due to discrete functionality addition

Is this a viable option???5

Page 6: Testing in the DevOps World of Continuous Delivery · PDF fileTesting in the DevOps world of Continuous Delivery ... Is DevOps different from Agile? ... •Change to a DevOps environment

4

©2011, Cognizant

Reducing risk by preventing poor quality

from impacting satisfaction

Quickly responding to customer

requests and requirements

22%Reducing costs by improving

our development and testing productivity

17%Delivering

applications on time and on

budget

14%Improving

collaboration between

development and QA

13%Delivering applications

before competition

7%Compliance

and regulatory issues

5%

Source- QAI –Edista Testing

Reducing RiskReducing Risk

Responding FastResponding Fast

Beat CompetitorsBeat Competitors

More than 60%

24%

What does business want today?

6

©2011, Cognizant

How does one achieve this?

Time

Functionality

Functionality

Time

Moving from a discrete

delivery approach to'.

'. a Continuous Delivery

approach

From “Build it Right” to “Build the Right It”

7

Page 7: Testing in the DevOps World of Continuous Delivery · PDF fileTesting in the DevOps world of Continuous Delivery ... Is DevOps different from Agile? ... •Change to a DevOps environment

5

©2011, Cognizant

Agile – Path to Continuous Delivery

Requirements

Gathering

Architecture

& DesignDevelopment Testing Release

From Discrete and Independent Testing to'

'Continuous and Integrated Testing

Waterfall Methodology

Scrum

8

©2011, Cognizant

Development

Testing

“Last Mile Problem” still exists

Deployment

leads to

• Long time between testing and deployment

• Testers still do not have SysAdmin skill sets

• Additional delivery pace adds to the confusion

9

Page 8: Testing in the DevOps World of Continuous Delivery · PDF fileTesting in the DevOps world of Continuous Delivery ... Is DevOps different from Agile? ... •Change to a DevOps environment

6

©2011, Cognizant

One Team: Development + Testing + Operations

DevOps aims to be the solution to this

integration challenge

One Team: Capable of playing all the roles

“Ensure the fastest path to deployment ready code”

10

©2011, Cognizant

Is DevOps different from Agile?

“Our highest priority is to satisfy the customer through

Early and continuous delivery of valuable software”

- Agile Manifesto1

1. Courtsey: Jezz Humble11

Page 9: Testing in the DevOps World of Continuous Delivery · PDF fileTesting in the DevOps world of Continuous Delivery ... Is DevOps different from Agile? ... •Change to a DevOps environment

7

©2011, Cognizant

Who is doing it now?• Web 2.0 firms with heavy reliance on eCommerce have

been the front runners

• Fast changes are mandatory - the better the integration,

the better the response time. Hence DevOps.

12

©2011, Cognizant

Impact on testing• Change to a DevOps environment has to be gradual as it

has multiple impact points

People

Process

Technology

Governance

13

Page 10: Testing in the DevOps World of Continuous Delivery · PDF fileTesting in the DevOps world of Continuous Delivery ... Is DevOps different from Agile? ... •Change to a DevOps environment

8

©2011, Cognizant

Impact on testing

• Focus on Knowledge Management

� Information access to increase re-usability

� Testers need to learn development languages – rise

of user friendly tools like Python and Cucumber

� Testers need to learn deployment process and tools

People

• Train Developers & SysAdmin on test

processes, design techniques, tools

� Increasing reliance on developers

for shift – left testing

14

©2011, Cognizant

Impact on testing

• Continuous Integration becomes mandatory

�Test Driven Development

� Single source code repository

�Automate the build process

�Fast Build - What is my “zero release time”?

�Everyone should know what is going on - transparency

Process

15

Page 11: Testing in the DevOps World of Continuous Delivery · PDF fileTesting in the DevOps world of Continuous Delivery ... Is DevOps different from Agile? ... •Change to a DevOps environment

9

©2011, Cognizant

Automation becomes critical

Need to move away from

traditional approach focusing

on GUI based testing..

'to focusing on increased

defect capture through Unit

and Service Layer Testing

Unit

Testing

Service Layer Testing

GUI Testing

Unit Testing

Service Layer Testing

GUI

Testing Perc

en

tag

e e

ffo

rt

sp

en

t

Impact on testingProcess

Heavy reliance on innovative automation embedded early into the life cycle

16

©2011, Cognizant

“Smart Testing” dissolving boundaries of traditional system & integration testing

QE Approach

Unit Testing

Service Layer

Testing

Functional

Testing

(automation)

Regression

Testing

(automation)

Beta Testing

User Acceptance Testing

QA Approach

Impact on testingProcess

17

Page 12: Testing in the DevOps World of Continuous Delivery · PDF fileTesting in the DevOps world of Continuous Delivery ... Is DevOps different from Agile? ... •Change to a DevOps environment

10

©2011, Cognizant

Leverage optimal mix of automation across lifecycle

Unit Testing

Service Layer

Testing

Regression

Testing

• Re-usable, automated test cases

used by developers

• Leveraging xUnit Frameworks

• Leverage re-usable frameworks

& tools like Fitnesse & Cucumber

• Web Services testing

• Leverage Service Virutalization

• >90% automated regression tests

• 100% automated smoke testing

• Continuous validation of test

flow relevancy

Manual

Testing

Impact on testingProcess

& Release Management Automation facilitating

Continuous Integration18

©2011, Cognizant

Need for “industrialization” – focus on getting application functionally and operationally ready

Impact on testingProcess

Operational Readiness Testing

Network & Geographical Testing

Failover & Disaster Recovery Testing

Additional types of testing needed

19

Page 13: Testing in the DevOps World of Continuous Delivery · PDF fileTesting in the DevOps world of Continuous Delivery ... Is DevOps different from Agile? ... •Change to a DevOps environment

11

©2011, Cognizant

Impact on testingGovernance

• Teams work best in pods of “jack of all arts”

� Critical to have pods talking to each other

� Central co-ordination needed – a rotating position?

� Incremental changes driven by business – continuous

interface and demos

• Focus on core competence increases!

� Greater need for specialists - they will focus on

challenging sub-tasks that pods cannot handle

� Identification of repeatable tasks – automated and

executed by pods

• Might not work in large organizations20

©2011, Cognizant

Impact on testingTechnology

• Need for user-friendly tools that can be used by developers,

testers and SysAdmin

• Greater focus on automation and re-usability

• Cost consciousness or the desire to be technically esoteric!

21

Page 14: Testing in the DevOps World of Continuous Delivery · PDF fileTesting in the DevOps world of Continuous Delivery ... Is DevOps different from Agile? ... •Change to a DevOps environment

12

And most importantly, do not forget to

communicate

• Ensure Executive & Stakeholder buy-in on the change

• Establish a communication channel for regular updates

and feedback22

Summary

• Traditional testing approaches are limited by their long

delivery timeline and inefficient cross pollination of work

• Agile works better, but faces challenges in the “last mile”

• DevOps provides an integrated approach to delivery

• Focus on Continuous Integration and Continuous Delivery

• Need for extensive automation & re-usability

• Teams work in pods performing all roles – however,

specialists are now more in demand

• Transition to DevOps is facilitated by the rise of a new breed

of user and business friendly tools

• Effective Communication & Change Management – very

critical for an organization embarking on this journey23

Page 15: Testing in the DevOps World of Continuous Delivery · PDF fileTesting in the DevOps world of Continuous Delivery ... Is DevOps different from Agile? ... •Change to a DevOps environment

13

@manoj7698

http:\\everydaytesting.blogspot.com

www.cognizant.com