testing in a continuous delivery world - londoncd meetup - may 2014

44
TESTING IN A CONTINUOUS DELIVERY WORLD Amy Phillips

Upload: testingthemind

Post on 01-Nov-2014

577 views

Category:

Technology


5 download

DESCRIPTION

Talking about how Songkick manages software testing whilst following a Continuous Deployment approach.

TRANSCRIPT

Page 1: Testing in a Continuous Delivery World - LondonCD Meetup - May 2014

TESTING IN A CONTINUOUS DELIVERY WORLD

Amy Phillips

Page 2: Testing in a Continuous Delivery World - LondonCD Meetup - May 2014

Amy Phillips

! @itjustbroke !! testingthemind.wordpress.com

2

Page 3: Testing in a Continuous Delivery World - LondonCD Meetup - May 2014

Songkick

Page 4: Testing in a Continuous Delivery World - LondonCD Meetup - May 2014

Testing:

4

A search for information

Page 5: Testing in a Continuous Delivery World - LondonCD Meetup - May 2014

Quality:

5

Value to some person ! - Gerald Weinberg

Page 6: Testing in a Continuous Delivery World - LondonCD Meetup - May 2014

6

Test that you rolled a one

Page 7: Testing in a Continuous Delivery World - LondonCD Meetup - May 2014

7

Test that you rolled a one

Page 8: Testing in a Continuous Delivery World - LondonCD Meetup - May 2014

8

Test that you rolled a one

Page 9: Testing in a Continuous Delivery World - LondonCD Meetup - May 2014

9

Test that you rolled a one

Page 10: Testing in a Continuous Delivery World - LondonCD Meetup - May 2014

10

Test that you rolled a one

Page 11: Testing in a Continuous Delivery World - LondonCD Meetup - May 2014

11

Test that you rolled a one

Page 12: Testing in a Continuous Delivery World - LondonCD Meetup - May 2014

What were we doing?

! Checking the result !!!

! Testing the result

12

Page 13: Testing in a Continuous Delivery World - LondonCD Meetup - May 2014

Explore It!: Reduce Risk and Increase Confidence with Exploratory Testing Elisabeth Hendrickson

13

Page 14: Testing in a Continuous Delivery World - LondonCD Meetup - May 2014

! You can automate 100% of your system testing

!! Automation will guarantee your system

keeps working - after all you are testing literally everything

14

Some Myths about Automation

Page 15: Testing in a Continuous Delivery World - LondonCD Meetup - May 2014

! You can never test everything to prove it is working

!! It takes just one test to prove that a

system is broken

15

Does it work?

Page 16: Testing in a Continuous Delivery World - LondonCD Meetup - May 2014

! Not working according to requirements ! Doesn’t meet the user’s expectations ! Difficult to use ! Inconsistent ! Doesn’t scale ! Can’t be maintained ! Difficult to test ! …

16

What is a bug?

Page 17: Testing in a Continuous Delivery World - LondonCD Meetup - May 2014

17

The (old) Songkick Way

Automated Test and build

Manual Test Feature & ReleaseQueued

for commit

Commit Deploy

Page 18: Testing in a Continuous Delivery World - LondonCD Meetup - May 2014

18

Don’t Aim for Perfection

Page 19: Testing in a Continuous Delivery World - LondonCD Meetup - May 2014

Why do we have this process?

Release

ProblemsMake everything

safe

Page 20: Testing in a Continuous Delivery World - LondonCD Meetup - May 2014

Scheduled Continuous Releases Integration

!

!

!

20

What were our options?

or

Page 21: Testing in a Continuous Delivery World - LondonCD Meetup - May 2014

What are our values?

!! Ship new features as soon as possible !! Developers responsible for production

quality

Page 22: Testing in a Continuous Delivery World - LondonCD Meetup - May 2014

22

The (old) Songkick Way

Automated Test and build

Manual Test Feature & ReleaseQueued

for commit

Commit Deploy

1 Hour 2 Hours

Page 23: Testing in a Continuous Delivery World - LondonCD Meetup - May 2014

Define a single test strategy

Developers Testers

Unit Tests

Integration Tests

Manual Checks

Manual Tests

Regression Tests

Automated Checks

Page 24: Testing in a Continuous Delivery World - LondonCD Meetup - May 2014

Define a single test strategy

Developers Testers

Unit Tests

Integration Tests Manual ChecksManual Tests

Regression Tests

Automated Checks

Page 25: Testing in a Continuous Delivery World - LondonCD Meetup - May 2014

25

!

Testing

100 %Team Effort

CheckingTesting

Agree on how to split test effort

Page 26: Testing in a Continuous Delivery World - LondonCD Meetup - May 2014

26

!

100 %Team Effort

Testing Machine Human

Agree on how to split test effort

Page 27: Testing in a Continuous Delivery World - LondonCD Meetup - May 2014

27

!!

! Dev teams are responsible for their own testing

A New Value

Page 28: Testing in a Continuous Delivery World - LondonCD Meetup - May 2014

28

!! Test at the right level ! Everyone understands what is being

tested and why ! Everyone has a chance to influence

what should be tested ! Fast feedback

Shared ownership of Automated tests

Page 29: Testing in a Continuous Delivery World - LondonCD Meetup - May 2014

29

!!

! What are we hoping to achieve with this change?

! Identify risks ! Agree on how to mitigate risks

Risk Assess Everything

Page 30: Testing in a Continuous Delivery World - LondonCD Meetup - May 2014

30

The Songkick Way - low risk

Automated Test and build

Commit DeployAutomated Regression

Page 31: Testing in a Continuous Delivery World - LondonCD Meetup - May 2014

31

The Songkick Way - medium risk

Automated Test and build

Manual Test on Dev env

Commit DeployAutomated Regression

Page 32: Testing in a Continuous Delivery World - LondonCD Meetup - May 2014

32

The Songkick Way - high risk

Automated Test and build

Manual Test on Dev env

Commit DeployAutomated Regression

Manual Test on Prod env

Page 33: Testing in a Continuous Delivery World - LondonCD Meetup - May 2014

Releasing doesn’t have to mean Launching

Page 34: Testing in a Continuous Delivery World - LondonCD Meetup - May 2014

Trust the Test Results

! Never release if the build is red ! Green builds must mean the tests have

passed

Page 35: Testing in a Continuous Delivery World - LondonCD Meetup - May 2014

!!You can break anything once ! - Songkick Maxim

35

Learn from your mistakes

Page 36: Testing in a Continuous Delivery World - LondonCD Meetup - May 2014

Executing the right tests at the right time

Automated build and deploy process

Continuous Deployment

Page 37: Testing in a Continuous Delivery World - LondonCD Meetup - May 2014

37

Tools

Page 38: Testing in a Continuous Delivery World - LondonCD Meetup - May 2014

38

Use your brain

Page 39: Testing in a Continuous Delivery World - LondonCD Meetup - May 2014

39

Keep on talking

Page 40: Testing in a Continuous Delivery World - LondonCD Meetup - May 2014

Releases

0

28

56

84

112

140

Mar 2011 Jul 2011 Nov 2011 Mar 2012 Jul 2012

Page 41: Testing in a Continuous Delivery World - LondonCD Meetup - May 2014

But this ended up being about more than just releases…

! Everyone cares about testing ! Fast and maintained automated tests ! Bug fixes often take just minutes

Page 42: Testing in a Continuous Delivery World - LondonCD Meetup - May 2014

In Summary

! You must automate ! But don’t try to automate everything ! The automation you have doesn’t

necessarily make you safe ! Use problems to drive positive change ! Don’t neglect the human aspect

Page 43: Testing in a Continuous Delivery World - LondonCD Meetup - May 2014

43

Songkick is hiring

Page 44: Testing in a Continuous Delivery World - LondonCD Meetup - May 2014

44

Questions?! @itjustbroke !! testingthemind.wordpress.com !

! http://devblog.songkick.com/