testing in devops - how to assess teams and give guidance · competitors in time to market and...

31
Testing in DevOps - how to assess teams and give guidance Szilard Szell, 5G DevOps transformation lead

Upload: others

Post on 03-Aug-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Testing in DevOps - how to assess teams and give guidance · competitors in time to market and agility, you are sunk.” Gene Kim 3. The Third Way: The Principles of Continual Learning

Testing in DevOps -

how to assess

teams and give

guidanceSzilard Szell, 5G DevOps transformation lead

Page 2: Testing in DevOps - how to assess teams and give guidance · competitors in time to market and agility, you are sunk.” Gene Kim 3. The Third Way: The Principles of Continual Learning

Szilárd Széll – introResponsibilities

● 5G DevOps transformation lead and Senior Consultant at Eficode

● Test Coach and DevOps Evangelist in NOKIA (19 years experience)

● Former President of the Hungarian Testing Board

● Processes Management and Compliance Work Group Chair of

ISTQB

● Program Committee Chair and Member of – UCAAT and HUSTEF

Certifications

● DevOps DASA Foundation, SAFe SPC, Certified Scrum Master

● ISTQB CTEL-ITP-Full, CTAL-TM, CTFL-AT, CTFL

● IREB CPRE

● Lean Six Sigma Green Belt

● Lean Service Creation - Facilitator

Page 3: Testing in DevOps - how to assess teams and give guidance · competitors in time to market and agility, you are sunk.” Gene Kim 3. The Third Way: The Principles of Continual Learning

eficode.com

Index

1. DEVOPS IN A NUTSHELL

2. DEVOPS ASSESSMENT

3. TESTING ASPECT OF DEVOPS

4. TAKE AWAY

Page 4: Testing in DevOps - how to assess teams and give guidance · competitors in time to market and agility, you are sunk.” Gene Kim 3. The Third Way: The Principles of Continual Learning

eficode.com

DEVOPS IN A NUTSHELL

Page 5: Testing in DevOps - how to assess teams and give guidance · competitors in time to market and agility, you are sunk.” Gene Kim 3. The Third Way: The Principles of Continual Learning

eficode.com

Dev OpsBusiness Customer

1. The First Way: The Principles of Flow

Page 6: Testing in DevOps - how to assess teams and give guidance · competitors in time to market and agility, you are sunk.” Gene Kim 3. The Third Way: The Principles of Continual Learning

eficode.com

“Being able to take needless work out of the

system is more important than being able to

put more work into the system.”

Gene Kim

1. The First Way: The Principles of Flow

Page 7: Testing in DevOps - how to assess teams and give guidance · competitors in time to market and agility, you are sunk.” Gene Kim 3. The Third Way: The Principles of Continual Learning

eficode.com

Dev OpsBusiness Customer

2. The Second Way: The Principles of Feedback

Page 8: Testing in DevOps - how to assess teams and give guidance · competitors in time to market and agility, you are sunk.” Gene Kim 3. The Third Way: The Principles of Continual Learning

eficode.com

“Improving daily work is even more important than doing

daily work.”

Gene Kim

2. The Second Way: The Principles of Feedback

Page 9: Testing in DevOps - how to assess teams and give guidance · competitors in time to market and agility, you are sunk.” Gene Kim 3. The Third Way: The Principles of Continual Learning

eficode.com

Dev OpsBusiness Customer

3. The Third Way: The Principles of Continual Learning and Experimentation

Page 10: Testing in DevOps - how to assess teams and give guidance · competitors in time to market and agility, you are sunk.” Gene Kim 3. The Third Way: The Principles of Continual Learning

eficode.com

“If you can’t out-experiment and beat your

competitors in time to market and agility, you

are sunk.”

Gene Kim

3. The Third Way: The Principles of Continual Learning and Experimentation

Page 11: Testing in DevOps - how to assess teams and give guidance · competitors in time to market and agility, you are sunk.” Gene Kim 3. The Third Way: The Principles of Continual Learning

● Image source: DevOps | freeCodeCamp Guide

one DevOps view

Page 12: Testing in DevOps - how to assess teams and give guidance · competitors in time to market and agility, you are sunk.” Gene Kim 3. The Third Way: The Principles of Continual Learning

Using technology to make organization’s operations more agile and reactive

to customer needs

Eficode’s DevOps view

Page 13: Testing in DevOps - how to assess teams and give guidance · competitors in time to market and agility, you are sunk.” Gene Kim 3. The Third Way: The Principles of Continual Learning

eficode.com

DEVOPS ASSESSMENT(s)

Page 14: Testing in DevOps - how to assess teams and give guidance · competitors in time to market and agility, you are sunk.” Gene Kim 3. The Third Way: The Principles of Continual Learning

DevOps – CALMS or CALMR model

Culture Automation Lean

Measuring SharingRelentless

Improvement

Page 15: Testing in DevOps - how to assess teams and give guidance · competitors in time to market and agility, you are sunk.” Gene Kim 3. The Third Way: The Principles of Continual Learning

SAFe DevOps and Release on Demand Health Radar

● Continuous Exploration

● Continuous Integration

● Continuous Deployment

● Release on Demand

Page 16: Testing in DevOps - how to assess teams and give guidance · competitors in time to market and agility, you are sunk.” Gene Kim 3. The Third Way: The Principles of Continual Learning

CouldBees DevOps Quadrant

Page 17: Testing in DevOps - how to assess teams and give guidance · competitors in time to market and agility, you are sunk.” Gene Kim 3. The Third Way: The Principles of Continual Learning

eficode.com

DEVOPSeficode Maturity model

DEVOPS MATURITY 68 / 100

001 002 003 004

ENABLEMENTDevelopment operations have been

separated from the business

knowledge. Starting a new

development project is laborious.

Starting new development projects

is agile, and there are practices in

place for steering the project.

New projects can be connected to

organization’s strategic targets.

Starting a new pilot project is easy.

Real-time metrics supporting

decision making and tracking the

completion of strategic targets are

available.

ORGANIZATION AND CULTURE

Design, development and quality

assurance are separate from each

other. Communication is primarily

in writing.

Work is conducted in teams but

development and quality assurance

are separate from each other.

The teams work independently.

They have total liability for the

development and quality assurance

of features.

The teams communicate with each

other regularly and work together

to improve their practices.

Communication with the IT

operations is continuous.

ENVIRONMENTS AND RELEASE

Products are environment-specific

and they are compiled manually.

Environments are installed and

configured manually.

The system is divided into parts and

the compiling environment is

known. Some releases are

automated.

Environments can be installed and

configured automatically. Build and

release processes are automated.

Releases may be conducted

automatically and continuously.

Migration and recovery processes

work as expected.

BUILDS AND CONTINUOUS INTEGRATION

Product integration is automatic,

but configuration and deployment

are controlled manually. No artifact

or change logs management.

The process starts team-specifically

after every change. Tools are

shared. Integration does not involve

testing.

Integration covers the entire

product and it is connected to

acceptance testing. Dependencies

are known and managed.

Build and integration processes are

continuously improved based on

collected metrics with aim to speed

up the feedback cycle and improve

visibility.

QUALITY ASSURANCEQuality assurance is conducted

completely by hand and primarily

after development.

Unit testing or static code analysis is

in place for some parts of the

product.

Features visible to the end users are

covered with automatic tests.

Testers participate in the

development process.

Acceptance tests present system

requirements clearly and guide the

development of the system as much

as possible.

VISIBILITY AND REPORTING Reports are made by hand when

necessary.

Code integration, unit testing and

code analysis are visible to the team.

The status of requirements can be

monitored in real time in relation to

tests and released features.

Real-time metrics are automatically

collected from the product

development process and used as a

basis for improvement.

TECHNOLOGIES AND ARCHITECTURE

Technologies and tools are obsolete

or are not fit for current

requirements.

Technologies are growing old and

the architecture is only partially

adaptive or the interfaces are

lacking.

Technologies are modern or well

supported. The interfaces are well

documented and exist for all key

functionalities.

The architecture and technologies

are optimal and enable reaching

business targets efficiently.

Page 18: Testing in DevOps - how to assess teams and give guidance · competitors in time to market and agility, you are sunk.” Gene Kim 3. The Third Way: The Principles of Continual Learning

eficode DevOps maturity assessment scope

REQUIREMENTSMANAGEMENT

ACCEPTANCE

DEVELOPMENT BUILD,

ARTIFACTSAUTOMATED

TESTING

VERSION MANAGEMENT

CONTINUOUS INTEGRATION OR DELIVERY

CODEANALYSIS

DEPLOYMENT

REAL-TIME VISIBILITY (DASHBOARDS), COMMUNICATION

MANAGEMENT

DEVELOPMENT

PRODUCTION

SERVERS /CLOUD

CONFIGURATION

MONITORING

Page 19: Testing in DevOps - how to assess teams and give guidance · competitors in time to market and agility, you are sunk.” Gene Kim 3. The Third Way: The Principles of Continual Learning

eficode.com

TESTING ASPECT OF DEVOPS

Page 20: Testing in DevOps - how to assess teams and give guidance · competitors in time to market and agility, you are sunk.” Gene Kim 3. The Third Way: The Principles of Continual Learning

What is important for QA in DevOps?● Value driven testing built on customer collaboration

Continuous Product level Quality

AssuranceShift Left

Automation of Testing tasks

Share (testing) tools and assets across the

Value Stream

Test First Thinking

Page 21: Testing in DevOps - how to assess teams and give guidance · competitors in time to market and agility, you are sunk.” Gene Kim 3. The Third Way: The Principles of Continual Learning

● Feature level acceptance criteria are

defined upfront collaboratively

● All types of test are identified upfront

collaboratively

● Testing is guided by Risk

Test First Thinking

What is important for QA in DevOps?● Value driven testing built on customer collaboration

Page 22: Testing in DevOps - how to assess teams and give guidance · competitors in time to market and agility, you are sunk.” Gene Kim 3. The Third Way: The Principles of Continual Learning

Collaborative Test Design

Acceptance Tests

Tests to cover Risks

Specification based testing

Exploratory Tests

Business Focus

Technology Focus

• ATDD or BDD, resulting in Automatic Acceptance Tests

• Focusing on Functional aspect

• Failure Mode and Effect Analysis to capture negative scenarios

• Risk Based Testing to focus effort

• Requirement Based Test Design on all level of Requirements, with traceability

• Focusing on Non-functional aspect as well

• Experience Based test design focusing on Rainy Day scenarios

• Continuous learning of our system

Production Acceptance Test

In house testing

Page 23: Testing in DevOps - how to assess teams and give guidance · competitors in time to market and agility, you are sunk.” Gene Kim 3. The Third Way: The Principles of Continual Learning

Testing is guided by Risk Levels

mid high very high

low mid high

very low low mid

Business Impact

Pro

ba

bil

ity

F 1

F 2

F 3F 4

F 5

F 6 F 7

F 10

F 8

F 9

QC 1

QC2

low - 1 mid - 2 high - 3

hig

h -

3m

id -

2lo

w -

1

Fx – Feature x or Functional Requirement QCx – Quality Characteristic or Non-functional RequirementFMx – Failure mode

FM 1

FM 2FM 3

Page 24: Testing in DevOps - how to assess teams and give guidance · competitors in time to market and agility, you are sunk.” Gene Kim 3. The Third Way: The Principles of Continual Learning

Differentiated Test Approach for different Risk levels – example by Rex Black

Aggregate Risk Extent of Testing Comments

Very low None Only report bugs observed in these risk areas.

Low Opportunistic Leverage other tests or activities to run a test or two of an interesting condition in the related risk area, but only if it involves a very small investment of time and effort and only if the opportunity presents itself.

Medium Cursory Run a small number of tests that sample the most interesting conditions in the related risk areas.

High Broad Run a medium number of tests that exercise many different interesting conditions in the related risk areas.

Very high Extensive Run a large number of tests that are both broad and deep, where deep tests exercise many combinations and variations of interesting conditions.

Copyright (c) 1999-2010 RBCS

Page 25: Testing in DevOps - how to assess teams and give guidance · competitors in time to market and agility, you are sunk.” Gene Kim 3. The Third Way: The Principles of Continual Learning

What is important for QA in DevOps?● Value driven testing built on customer collaboration

Continuous Product level Quality

Assurance

● Coverage and Traceability

● Non-functional QA

● Regression set is updated regularly

Page 26: Testing in DevOps - how to assess teams and give guidance · competitors in time to market and agility, you are sunk.” Gene Kim 3. The Third Way: The Principles of Continual Learning

● Static Code Analysis is in use

● Module/Unit testing is in use

● Collaborative, cross-functional Test

Planning

Shift Left

What is important for QA in DevOps?● Value driven testing built on customer collaboration

Page 27: Testing in DevOps - how to assess teams and give guidance · competitors in time to market and agility, you are sunk.” Gene Kim 3. The Third Way: The Principles of Continual Learning

● Test case as Software

● Automated Test results analysis and

reporting

● Test environment deployment automation

Automation of Testing tasks

What is important for QA in DevOps?● Value driven testing built on customer collaboration

Page 28: Testing in DevOps - how to assess teams and give guidance · competitors in time to market and agility, you are sunk.” Gene Kim 3. The Third Way: The Principles of Continual Learning

● Reuse of Test Assets

● Standardized pipeline and tools in useShare (testing) tools

and assets across the Value Stream

What is important for QA in DevOps?● Value driven testing built on customer collaboration

Page 29: Testing in DevOps - how to assess teams and give guidance · competitors in time to market and agility, you are sunk.” Gene Kim 3. The Third Way: The Principles of Continual Learning

eficode.com

TAKE AWAY

Page 30: Testing in DevOps - how to assess teams and give guidance · competitors in time to market and agility, you are sunk.” Gene Kim 3. The Third Way: The Principles of Continual Learning

eficode.com

Learning points

1. Big size transformation needs a dedicated team and support

2. There are many DevOps assessments available, choose the one for you

3. Testing and CI/CD is key in DevOps, but there are more key areas

4. Continuous Exploration and Learning is a must

Page 31: Testing in DevOps - how to assess teams and give guidance · competitors in time to market and agility, you are sunk.” Gene Kim 3. The Third Way: The Principles of Continual Learning

For more information, please contact

Thank You

32

Szilard [email protected]