automation in an agile implementation€¦ · thinking and the test automation pyramid ui...

14
The National Conference of the Israel Society for Quality - 2015 Automation in an Agile implementation Limor Halfon [email protected]

Upload: others

Post on 17-Oct-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Automation in an Agile implementation€¦ · thinking and the Test Automation Pyramid UI Acceptance (Service/API) Unit Testing Elaborate Requirements Test Design Technical Design

The National Conference of the Israel

Society for Quality - 2015

Automation in an Agile

implementation

Limor Halfon [email protected]

Page 2: Automation in an Agile implementation€¦ · thinking and the Test Automation Pyramid UI Acceptance (Service/API) Unit Testing Elaborate Requirements Test Design Technical Design

Our Backlog

• WHY do we need it?

• WHAT stopping us from doing it? • The challenges

• Why typical automation formula is broken?

• HOW do we start?

• Change patterns

• Sharing ownership

• Agile planning for automation

Page 3: Automation in an Agile implementation€¦ · thinking and the Test Automation Pyramid UI Acceptance (Service/API) Unit Testing Elaborate Requirements Test Design Technical Design

Automation Cloud Why do we need it?

Increase Time to

market

Create an environment for

Continuance improvements

Create Built in

quality

Keep a Sustainable

velocity of the team

Begin with the end

in mind

Increase

Productivity

Create an environment in which people feel safe to promote changes

and focus on value

Embrace

change

Minimize the cost of changing

Free up time for

more important

tasks

Ensure reliable system

at any given moment Reduce risk

Page 4: Automation in an Agile implementation€¦ · thinking and the Test Automation Pyramid UI Acceptance (Service/API) Unit Testing Elaborate Requirements Test Design Technical Design

Automation Cloud Why is it broken?

No resources

No automation infrastructure

ready

No skills in QA

Bottleneck

of experts

No time

Creates a silo environment removed from the development effort

Expensive time to transfer

system requirements

Cycle time between

feature development

and automation is long

High maintainability

It’s someone else’s business

Page 5: Automation in an Agile implementation€¦ · thinking and the Test Automation Pyramid UI Acceptance (Service/API) Unit Testing Elaborate Requirements Test Design Technical Design

Typical Automation Formula

• Most testing done by QA

• Mostly manually through the GUI

• Record & Play automation

• Purchase an expensive GUI test execution tool

• Define a lot of paper test procedures

• Hire an automation team to automate each one

• Build a comprehensive test library and

framework

• Keep fixing it

Page 6: Automation in an Agile implementation€¦ · thinking and the Test Automation Pyramid UI Acceptance (Service/API) Unit Testing Elaborate Requirements Test Design Technical Design

Automation is a

USEFUL skill for

Testers/ Quality

Engineers

NOT their core skill!

It IS a core team/org

capability for enabling

Continuous Quality

Page 7: Automation in an Agile implementation€¦ · thinking and the Test Automation Pyramid UI Acceptance (Service/API) Unit Testing Elaborate Requirements Test Design Technical Design

Change the formula:

Shared ownership

• Automation champion ensures test infrastructure

• Test Experts provide the direction (test design)

• Test/Dev Engineers, implement the detailed tests, the

infrastructure

• Test experts do exploratory testing and apply the

thinking unique to Testing

Page 8: Automation in an Agile implementation€¦ · thinking and the Test Automation Pyramid UI Acceptance (Service/API) Unit Testing Elaborate Requirements Test Design Technical Design

What happens when ownership is shared

• Drives the system to be more testable

• Better test automation maintainability / architecture

(especially in complex systems)

• Unit testing utilized when possible – now DEV has

an incentive to make test automation more efficient

• The “test automation tasks first to go” syndrome is

avoided...

• Acceptance Test Driven Design

http://testobsessed.com/2010/07/19/why-test-automation-costs-too-much/

Page 9: Automation in an Agile implementation€¦ · thinking and the Test Automation Pyramid UI Acceptance (Service/API) Unit Testing Elaborate Requirements Test Design Technical Design

HOW do we start?

• Automation in Sprint0

• Automation as part of DONE

• Automation as part of the pipeline and not a

separate “project”

• Legacy automation applied incrementally for risky areas,

sanity and repairing touch points as new features added.

Baby Steps

Just Do It!

Small Successes

Page 10: Automation in an Agile implementation€¦ · thinking and the Test Automation Pyramid UI Acceptance (Service/API) Unit Testing Elaborate Requirements Test Design Technical Design

Automation Test design approach

• Push automation down the pyramid

• Independent • Set up test data before run, Teardown

• Clear/single Meaningful goal

• Automate a “steel thread” at a time and expand • based on risk assessment (difficult to automate, frequently used,

sensitive area)

• Break into testable, independent segments

UI

Acceptance (Service/API)

Unit Testing

Page 11: Automation in an Agile implementation€¦ · thinking and the Test Automation Pyramid UI Acceptance (Service/API) Unit Testing Elaborate Requirements Test Design Technical Design

• Most expensive automation to develop, run & maintain, so minimize!!!

• Move majority of E2E testing coverage to Service/API layer

• QTP/UFT/Selenium/PerfectoMobile/etc.

UI

• “The Workhorse” of enterprise agile testing

• Created by testers & developers on agile teams supported by frameworks/guidance by Automation CoE

• soapUI, etc.

Acceptance (Service/API)

• Leverage Agile Teams developer testing to reduce coverage needs

• Ability to automatically detect (through coverage tools etc.) what is covered

Unit Testing

Manual

http://www.mountaingoatsoftware.com/blog/th

e-forgotten-layer-of-the-test-automation-

pyramid

Automation Pyramid

Page 12: Automation in an Agile implementation€¦ · thinking and the Test Automation Pyramid UI Acceptance (Service/API) Unit Testing Elaborate Requirements Test Design Technical Design

Whole Team Automation guided by ATDD

thinking and the Test Automation

Pyramid

UI

Acceptance (Service/API)

Unit Testing

Elaborate Requirements

Test Design Technical

Design Coding / Unit

Testing

Test Execution +

Fixing Done

1. ATDD

Thinking Use test scenarios to

guide design

2. ATDD Automation

Built in parallel to development

at the right level (according to the test

automation pyramid)

ATDD = Acceptance Test Driven Development -

Build Quality Into Design –

preventing defects rather than just finding them

Page 13: Automation in an Agile implementation€¦ · thinking and the Test Automation Pyramid UI Acceptance (Service/API) Unit Testing Elaborate Requirements Test Design Technical Design

Takeaways/ Recommendations

• Invest in automation, environments, knowledge in order to left-shift the riskiest test tiers while keeping overheads reasonable

• Automation as part of DONE is the way teams actually make it happen

• Whole team ownership of automation is essential to having a healthy agile team

• Test Engineering != Automation Engineering. Each are important roles on a healthy cross-functional agile team.

• Approaches like ATDD automation help unbundle these roles.

Page 14: Automation in an Agile implementation€¦ · thinking and the Test Automation Pyramid UI Acceptance (Service/API) Unit Testing Elaborate Requirements Test Design Technical Design

Unit Testing

Acceptance (Service/API)

UI

Integration Hell

Continuance Integration