implementing bdd at scale for agile and devops teams

35
Delivering successfully a huge ticketing system using Behavior Driven Development Test Expo UK - 2016

Upload: laurent-py

Post on 13-Apr-2017

404 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Implementing BDD at scale for agile and DevOps teams

Delivering successfully a huge ticketing system using

Behavior Driven Development

Test Expo UK - 2016

Page 2: Implementing BDD at scale for agile and DevOps teams

LAURENT PY@py_laurent

[email protected]://hiptest.net

RAPHAËL [email protected]

http://www.parkeon.com

PRESENTED BY

2

Page 3: Implementing BDD at scale for agile and DevOps teams

PRESENTATIONAGENDA

A huge ticketing system

What’s and Why BDD ?

BDD adoption step by step

Key practices

Key takeaways

3

Page 4: Implementing BDD at scale for agile and DevOps teams

A HUGE TICKETING SYSTEM

4

Page 5: Implementing BDD at scale for agile and DevOps teams

A HUGE TICKETING SYSTEM

Customer : The city of Helsinki• Prime contractor : Tieto• Many partners as Parkeon• Teams distributed over 6 countries

 

5

1.5 M

50%

inhabitants

•trips made using public transport

360 M commuters a year

Page 6: Implementing BDD at scale for agile and DevOps teams

A HUGE TICKETING SYSTEM

6

CONFIGURATION AND MONITORING (backoffice node JS)x 50 Modules

SALES POINTS & SERVICES POINTS(web services)x 300

ONBOARD & ON STREETDEVICES(Android)x 6000

THE SYSTEM

Page 7: Implementing BDD at scale for agile and DevOps teams

A HUGE TICKETING SYSTEM

7

Page 8: Implementing BDD at scale for agile and DevOps teams

A HUGE TICKETING SYSTEM

8

Page 9: Implementing BDD at scale for agile and DevOps teams

WHAT’SBDD ?

9

Page 10: Implementing BDD at scale for agile and DevOps teams

« BDD in a tweet : Using examples at multiple levels to create a shared understanding and surface uncertainty to deliver software

that matters » - Dan North

Create a shared understanding of the system using examples

Based on a common business terminology A

definition of stop

Once automated, these examples become the living specification

BEHAVIOR DRIVEN DEVELOPMENT IN A NUTSHELL

10

Page 11: Implementing BDD at scale for agile and DevOps teams

11

STORY

WHAT WILL BE REALLY DONE TO MEET THE NEED

Page 12: Implementing BDD at scale for agile and DevOps teams

12

STORY : ONCE AUTOMATED

LIVING SPECIFICATION

Page 13: Implementing BDD at scale for agile and DevOps teams

WHYBDD ?

13

Page 14: Implementing BDD at scale for agile and DevOps teams

PROJECT MANAGEMENT CHALLENGES

14

Page 15: Implementing BDD at scale for agile and DevOps teams

STEP BY STEP ADOPTION

15

Page 16: Implementing BDD at scale for agile and DevOps teams

16

BUILD PYRAMIDS1. DEFINING MODULES’ BEHAVIORS AND INITIALIZING

BUSINESS TERMINOLOGYUNIT FONCTIONAL SCENARIOS ARE CREATEDTESTS STEPS ARE AUTOMATED

2.ASSEMBLING THE MODULES, 2 BY 2, TO INTEGRATE THE SYSTEM

INTEGRATION TESTS ARE CREATED USING UNIT FONCTIONAL STEPSSOME NEW TESTS STEPS ARE CREATED, AUTOMATED

3.BUILDING THE SYSTEM WITH ALL MODULESEND TO END, TESTS ARE CREATED USING INTEGRATION STEPSINTEGRATE THE HARDWARE

Page 17: Implementing BDD at scale for agile and DevOps teams

Limiting the number of steps to ease automation and limit maintenance

Controlling the wording to standardize the test plans

Writing stateless tests to ensure reusability

Always keep in mind the volume of the system in production to focus on the real condition of use

Keeping requirement’s links from Unit Functional Tests to ensure traceability

TAKE CARE OF

17

Page 18: Implementing BDD at scale for agile and DevOps teams

COMMON OBJECTIVE

Building tests library and an

automation tool to validate the system

together.

BDD offered the keys and the framework that bound them

The principals were well accepted by most of the teams

BDD has the advantage of focusing the teams on the customer value

HOW IT WAS PERCEIVED

18

Page 19: Implementing BDD at scale for agile and DevOps teams

●For a team that works independently on a sub-system

Test and requirement coverage is impressive

Very strong fit with BDD approach

Quite no bug in production !

HOW IT WAS PERCEIVED

19

Page 20: Implementing BDD at scale for agile and DevOps teams

●For teams that have to work together and synchronize

Some difficulties to sync parallel works, but it’s quite ok

Strong fit with BDD approach

HOW IT WAS PERCEIVED

20

Page 21: Implementing BDD at scale for agile and DevOps teams

●For teams that work on a product used in multiple projects

«It is complicated»Maintaining the roadmap was a challenge

HOW IT WAS PERCEIVED

21

Page 22: Implementing BDD at scale for agile and DevOps teams

2 - Refine wih examples1 - Jira to manage stories 3 - Implement the stories

5 – Create builds and run tests4 – Execute tests

Results

Results

TOOL STACK

22

Page 23: Implementing BDD at scale for agile and DevOps teams

KEYPRACTICES

23

Page 24: Implementing BDD at scale for agile and DevOps teams

我希望我可以混合颜色function(c1, c2) { if (c1==c2) { return c1; } else { … }};

Given the color red and the color greenwhen you mix the colorsthen you obtain yellow

Business user Developer

Tester

DEFINE A COMMON BUSINESS TERMINOLOGY

24

Page 25: Implementing BDD at scale for agile and DevOps teams

Given : a context

When : I do an action

Then : I can check an impact

GHERKIN SYNTAX

25

Page 26: Implementing BDD at scale for agile and DevOps teams

Autocomplete

USE A CONSISTENT BUSINESS TERMINOLOGY

26

Page 27: Implementing BDD at scale for agile and DevOps teams

Identify duplication and create a single point of maintenance

Identify duplication and create a single point of maintenance

REFACTOR SCENARIOS CONTINUOUSLY

27

Page 28: Implementing BDD at scale for agile and DevOps teams

Impact hundreds of tests automatically when changing a step

REFACTOR SCENARIOS CONTINUOUSLY

28

Page 29: Implementing BDD at scale for agile and DevOps teams

OUTCOMES

29

Page 30: Implementing BDD at scale for agile and DevOps teams

200

End to end tests

475 990 1635

Systems test Module integration

tests

Functional unit tests

Business terminology: 1690 steps

A FEW FIGURES

30

Page 31: Implementing BDD at scale for agile and DevOps teams

No more than a week of delay on the deliverables

20% of the features (among 800) have been changed without impact on the planning agile!

ON TIME

31

Page 32: Implementing BDD at scale for agile and DevOps teams

32

ON BUDGET

21%Project management

16%Devices

30%Backoffice

30%Sales server

16%Test

Page 33: Implementing BDD at scale for agile and DevOps teams

33

HAPPY CUSTOMER

61%Development tasks

11%Integration issues

20%Validation issues

3%Customer issues

5%Development issues

Page 34: Implementing BDD at scale for agile and DevOps teams

ANY QUESTIONS ?

Page 35: Implementing BDD at scale for agile and DevOps teams

LAURENT PY@py_laurent

[email protected]://hiptest.net

RAPHAËL [email protected]

http://www.parkeon.com

THANK YOU !