0% found this document useful (0 votes)
291 views16 pages

Efficient Test Automation in Agile Projects

The document discusses implementing efficient test automation in an agile project for a client that provides financial support to students. It describes setting clear objectives for automation, designing the framework to be flexible yet fit for purpose, using tools like Cucumber and Selenium, and evolving the automation process over time through techniques like designing a domain-specific language, managing test data through personas, abstracting page elements, and structuring tests into journeys, pages, and components. The goal is to make the testing process work effectively within the agile project lifecycle.

Uploaded by

austinfru7
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
291 views16 pages

Efficient Test Automation in Agile Projects

The document discusses implementing efficient test automation in an agile project for a client that provides financial support to students. It describes setting clear objectives for automation, designing the framework to be flexible yet fit for purpose, using tools like Cucumber and Selenium, and evolving the automation process over time through techniques like designing a domain-specific language, managing test data through personas, abstracting page elements, and structuring tests into journeys, pages, and components. The goal is to make the testing process work effectively within the agile project lifecycle.

Uploaded by

austinfru7
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 16

Talented Together

HOW TO IMPLEMENT EFFICIENT TEST


AUTOMATION IN AN AGILE PROJECT

Agile Business Conference, October 2014


Lukasz Grabinski & John OHare
1 How to Implement Efficient Test Automation in an Agile Project
CONTENTS

1 The Client & the Project

2 Application Overview

3 Implementing Automation

4 Tools, tools, tools

5 Evolution (DSL, Data, Structure)

6 Making the Process Work

7 Q&A

2 How to Implement Efficient Test Automation in an Agile Project


THE CLIENT & THE PROJECT

Business Background
Our client provides financial support to students, providing loans and non-repayable grants for living, studying
and tuition costs.

Smooth on-line loan application process is essential:

Aligned with the Governments Digital by Default strategy.

Positive experience for students .

Process of managing loans is extremely complex.

Project Background
Existing web portal was confusing for customers, with each loan application on average resulting in 3.6 calls to
the call centre for additional support.

Cost of avoidable contact was 2.9 million per year

Customer satisfaction was measured at 64% dissatisfied.

Move towards modern service provision via the development of a new customer web portal.

Aim is to drive traffic away from the call centre towards fully capturing applications on the web.

3 How to Implement Efficient Test Automation in an Agile Project


APPLICATION - OVERVIEW

Web portal to create, manage, submit and track application with captured customer data

Multiple screens

Many paths throughout the application process

Various data capture from simple Yes/No to complex recursive data objects

Integration with multiple legacy systems through web services

High focus on the usability and user experience aspects

4 How to Implement Efficient Test Automation in an Agile Project


IMPLEMENTING SUCCESSFUL AUTOMATION

Context
People

Tools
Processes

5 How to Implement Efficient Test Automation in an Agile Project


PLANNING AND ARCHITECTURE

Test Automation is software too:


Set clear objectives:

How much do you want to automate? API ? Front end? Full end to end?

How is it going to compliment other testing areas like unit tests, manual exploratory testing?

What about the level of component/system/integration automation

Consider project aspects:

Profile of your team - especially developers and testers,

Projects aspects : Is it front end heavy? Complex business rules?

Timescales, environments, etc...

Design:

Framework does not mean complex and high up-front cost, it means fit for purpose yet flexible design,

Think about users - test automation should focus on the most repetitive tasks and give testers more
time to design tests/exploratory testing,

How are you going to manage test data?

6 How to Implement Efficient Test Automation in an Agile Project


TOOLS, TOOLS, TOOLS

Gherkin
Java
Cucumber

Selenium

Pickles
Agile BDD

Jenkins CI

SVN

7 How to Implement Efficient Test Automation in an Agile Project


EVOLUTION: DSL - YOUR FRIEND OR ENEMY?

Before: No upfront DSL design led to over 600 step definitions, causing:

Minimal reuse of the existing steps/code

Lack of clear understanding what step does and how

No practical use of the tests as documentation of system to business

High cost of step implementation

Difficult maintenance and increasing technical debt in the test code

After: Core of ~30 designed, parameterised steps used in 95% of the tests

Easy test creation using steps as templates with parameters published in the project wiki

Clear understanding what to expect from the step

Tests useful for the analysts, testers, developers and business

High reusability

Test automation effort reduced several times over

Allow to use defined (business journeys) or explicit data (component/system tests)

Limited number of additional, component test focused steps

8 How to Implement Efficient Test Automation in an Agile Project


DSL EXAMPLES:

Before:

I click Next button

Button Yes has been clicked

I have clicked Save button

I use the previous page link

After:

I click the (.*)

All available buttons and links published on wiki

New elements easy to add to the mapping table (abstraction layer)

9 How to Implement Efficient Test Automation in an Agile Project


EVOLUTION: DATA DRIVES TESTS OR YOU CRAZY?

Before: No test data design or approach, causing:

Complex and difficult to understand scenarios

High duplication of steps in test scenarios

Difficult test data management

Reduced coverage of tests

After: Test data designed and stored as persona concept

Personas data leads to user story or specific test path with desired data

Short and concise scenario 2 steps to get to any point in the application process

Easy data management

Higher coverage at lower cost

Faster test execution ability to create application with required data through web services allow direct jump
to page directly rather than using Selenium

10 How to Implement Efficient Test Automation in an Agile Project


DATA EXAMPLES:

Before:

I login as user JOHN SMITH

I answer X for the first question

I enter A data

I answer Y for the second question

I enter B data

I click Next button

My first question data is A

My second question data is B

My third question data is C

After:
I am logged in persona JOHN SMITH on page X

I have completed page Y until and including question Z

My first page data is persisted

11 How to Implement Efficient Test Automation in an Agile Project


EVOLUTION: IDENTIFY YOUR PAGE ELEMENTS

Before: No abstraction from maze HTML ids, causing:

Difficult test creation

Confusing test scenarios and thus system documentation

More complex and less readable tests

After: Mapping abstraction layer from HTML id (part id) to a name

Meaningful name of the component be it a button, field or an error message

Clear to understand tests and thus system documentation

Easy to manage and update

Single place no confusion where to look for

12 How to Implement Efficient Test Automation in an Agile Project


EVOLUTION: STRUCTURE YOUR TESTS

Before: No clear structure and purpose for the tests, causing:

Difficult test management

Duplication of scenarios across tests

Missed crucial scenarios

Tests as documentation difficult to use by business

After: Split into Journey, Page and Component tests.

Journey tests are user story related scenarios - UAT if you like - taking persona for a journey through the full
or part of the application process

Page tests are classed as system tests, providing more detailed coverage for the specific page, business logic
or data handling

Component tests are focused on specific components of the application such as numeric data capture field
or address capture, providing most detailed coverage

Clear view what tests are required and what level of coverage are to be achieved

Easier test scenarios / execution management and partitioning

13 How to Implement Efficient Test Automation in an Agile Project


MAKING THE PROCESS WORK

14 How to Implement Efficient Test Automation in an Agile Project


QUESTIONS / ANSWERS

15 How to Implement Efficient Test Automation in an Agile Project


Team name Sopra
Lukasz Grabinski +44 (0) 131 332 3311 Orchard Brae House
John OHare +44 (0) 131 332 3311 30 Queensferry Road
Edinburgh
EH4 2HS

www.sopra.com

16 How to Implement Efficient Test Automation in an Agile Project

You might also like