testing observability · 2018-05-04 · white box testing if input == 4 return input else break 44...

36
Testing Observability Amy Phillips

Upload: others

Post on 26-Jan-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Testing Observability · 2018-05-04 · White box testing if input == 4 return input else break 44 4 Testing Observability | Amy Phillips | @amyjph Test case Expected result Test

Testing ObservabilityAmy Phillips

Page 2: Testing Observability · 2018-05-04 · White box testing if input == 4 return input else break 44 4 Testing Observability | Amy Phillips | @amyjph Test case Expected result Test

Amy Phillips

● Engineering Manager at Moo

● Previously manager and tester at Songkick, The Guardian,

and Yahoo!

● Can be found @amyjph

Testing Observability | Amy Phillips | @amyjph

Page 3: Testing Observability · 2018-05-04 · White box testing if input == 4 return input else break 44 4 Testing Observability | Amy Phillips | @amyjph Test case Expected result Test

The early daysTesting Observability | Amy Phillips | @amyjph

Page 4: Testing Observability · 2018-05-04 · White box testing if input == 4 return input else break 44 4 Testing Observability | Amy Phillips | @amyjph Test case Expected result Test

Black box testing

Test case Expected result Test result

User saves a value of 4. Retrieve value.

System returns a value of 4 Pass

44

Testing Observability | Amy Phillips | @amyjph

Page 5: Testing Observability · 2018-05-04 · White box testing if input == 4 return input else break 44 4 Testing Observability | Amy Phillips | @amyjph Test case Expected result Test

White box testing

if input == 4return inputelsebreak

44 44

Testing Observability | Amy Phillips | @amyjph

Test case Expected result Test result

User saves a value of 4. Retrieve value.

System returns a value of 4 Pass

Page 6: Testing Observability · 2018-05-04 · White box testing if input == 4 return input else break 44 4 Testing Observability | Amy Phillips | @amyjph Test case Expected result Test

Releases

Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec

Build new

website

Coding

Testing

Bug fixing

Retesting

UAT

Bug fixing

Retesting

Go Live!

Testing Observability | Amy Phillips | @amyjph

Page 7: Testing Observability · 2018-05-04 · White box testing if input == 4 return input else break 44 4 Testing Observability | Amy Phillips | @amyjph Test case Expected result Test

Introducing agile

Mon Tue Wed Thur Fri Mon Tue Wed Thur Fri Mon

Feature 1 Coding Testing

Bug fixingGo Live!

Feature 2 Coding Testing

Feature 3 Coding Testing

Integration testing

Testing Observability | Amy Phillips | @amyjph

Page 8: Testing Observability · 2018-05-04 · White box testing if input == 4 return input else break 44 4 Testing Observability | Amy Phillips | @amyjph Test case Expected result Test

Fluid testing

Acceptance testing

Manual Automated

Pairing

Code reviews

Error log reviews

Ad Hoc tools

Testing Observability | Amy Phillips | @amyjph

Page 9: Testing Observability · 2018-05-04 · White box testing if input == 4 return input else break 44 4 Testing Observability | Amy Phillips | @amyjph Test case Expected result Test

Continuous deliveryTesting Observability | Amy Phillips | @amyjph

Page 10: Testing Observability · 2018-05-04 · White box testing if input == 4 return input else break 44 4 Testing Observability | Amy Phillips | @amyjph Test case Expected result Test

The monolith

Microservices and the impact on testing

Push code Release

Testing Observability | Amy Phillips | @amyjph

Page 11: Testing Observability · 2018-05-04 · White box testing if input == 4 return input else break 44 4 Testing Observability | Amy Phillips | @amyjph Test case Expected result Test

The monolith

Microservices and the impact on testing

Testing

Testing

Testing Observability | Amy Phillips | @amyjph

Page 12: Testing Observability · 2018-05-04 · White box testing if input == 4 return input else break 44 4 Testing Observability | Amy Phillips | @amyjph Test case Expected result Test

Service

Microservices and the impact on testing

ReleasePush code

Service ReleasePush code

Service ReleasePush code

Testing Observability | Amy Phillips | @amyjph

Page 13: Testing Observability · 2018-05-04 · White box testing if input == 4 return input else break 44 4 Testing Observability | Amy Phillips | @amyjph Test case Expected result Test

Service

Microservices and the impact on testing

Push code

Service ReleasePush code

ServicePush code

Testing Observability | Amy Phillips | @amyjph

End to EndTesting

Page 14: Testing Observability · 2018-05-04 · White box testing if input == 4 return input else break 44 4 Testing Observability | Amy Phillips | @amyjph Test case Expected result Test

Service 1

Consumer driven contract testing

ReleasePush code

Service 2 ReleasePush code

Test broker e.g. PACT

Test

Test

Testing Observability | Amy Phillips | @amyjph

Page 15: Testing Observability · 2018-05-04 · White box testing if input == 4 return input else break 44 4 Testing Observability | Amy Phillips | @amyjph Test case Expected result Test

Node A

Master

Self healing systems

Service 1 Service 2

Node B

Service 3

Testing Observability | Amy Phillips | @amyjph

Page 16: Testing Observability · 2018-05-04 · White box testing if input == 4 return input else break 44 4 Testing Observability | Amy Phillips | @amyjph Test case Expected result Test

A quick look at testing

Testing Observability | Amy Phillips | @amyjph

Page 17: Testing Observability · 2018-05-04 · White box testing if input == 4 return input else break 44 4 Testing Observability | Amy Phillips | @amyjph Test case Expected result Test

The two sides to testingTesting Observability | Amy Phillips | @amyjph

Have we built the thing right?

Have we broken anything else?

Page 18: Testing Observability · 2018-05-04 · White box testing if input == 4 return input else break 44 4 Testing Observability | Amy Phillips | @amyjph Test case Expected result Test

Testing

An investigation conducted to

gather information on the

quality of the system or product.

Testing Observability | Amy Phillips | @amyjph

Page 19: Testing Observability · 2018-05-04 · White box testing if input == 4 return input else break 44 4 Testing Observability | Amy Phillips | @amyjph Test case Expected result Test

Quality

A quality system meets the

needs of the user.

Testing Observability | Amy Phillips | @amyjph

Page 20: Testing Observability · 2018-05-04 · White box testing if input == 4 return input else break 44 4 Testing Observability | Amy Phillips | @amyjph Test case Expected result Test

Test pyramid

UI

Integration

Unit

Testing Observability | Amy Phillips | @amyjph

Page 21: Testing Observability · 2018-05-04 · White box testing if input == 4 return input else break 44 4 Testing Observability | Amy Phillips | @amyjph Test case Expected result Test

Testing dials

Unit testing Integrationtesting

Contracttesting

Manualtesting

Testing Observability | Amy Phillips | @amyjph

Page 22: Testing Observability · 2018-05-04 · White box testing if input == 4 return input else break 44 4 Testing Observability | Amy Phillips | @amyjph Test case Expected result Test

Testing that something works can be hard

Push code Test Release

Two problems:

● Process assumes a positive outcome = bug reports or rework

● Forced failure states can be unrealistic = limited value

Testing Observability | Amy Phillips | @amyjph

Page 23: Testing Observability · 2018-05-04 · White box testing if input == 4 return input else break 44 4 Testing Observability | Amy Phillips | @amyjph Test case Expected result Test

Observability instead of testing?

Testing Observability | Amy Phillips | @amyjph

Page 24: Testing Observability · 2018-05-04 · White box testing if input == 4 return input else break 44 4 Testing Observability | Amy Phillips | @amyjph Test case Expected result Test

Retrospectively adding logging

LoggingService

DB

Testing Observability | Amy Phillips | @amyjph

Page 25: Testing Observability · 2018-05-04 · White box testing if input == 4 return input else break 44 4 Testing Observability | Amy Phillips | @amyjph Test case Expected result Test

How will we know when it isn’t working?

Testing Observability | Amy Phillips | @amyjph

Page 26: Testing Observability · 2018-05-04 · White box testing if input == 4 return input else break 44 4 Testing Observability | Amy Phillips | @amyjph Test case Expected result Test

How would you test observability?

Monitoring Alerting

Tracing Log aggregation

Testing Observability | Amy Phillips | @amyjph

Page 27: Testing Observability · 2018-05-04 · White box testing if input == 4 return input else break 44 4 Testing Observability | Amy Phillips | @amyjph Test case Expected result Test

Chaos monkey

● Weekly scheduled session

● Two “monkeys”

● One “victim”

Testing Observability | Amy Phillips | @amyjph

Page 28: Testing Observability · 2018-05-04 · White box testing if input == 4 return input else break 44 4 Testing Observability | Amy Phillips | @amyjph Test case Expected result Test

Make it easy to observe failures

Break

something

Testing Observability | Amy Phillips | @amyjph

Observability

Fix it

Improve

Page 29: Testing Observability · 2018-05-04 · White box testing if input == 4 return input else break 44 4 Testing Observability | Amy Phillips | @amyjph Test case Expected result Test

Predictable chimp

● Cheeky

● Multi-talented

● Engaging

● Attention grabbing

● Playful

http://interactivepuppy.com/spinmaster-zoomer-chimp-interactive-monkey-toy-review/

Testing Observability | Amy Phillips | @amyjph

Page 30: Testing Observability · 2018-05-04 · White box testing if input == 4 return input else break 44 4 Testing Observability | Amy Phillips | @amyjph Test case Expected result Test

How to design test scenarios

Testing Observability | Amy Phillips | @amyjph

Page 31: Testing Observability · 2018-05-04 · White box testing if input == 4 return input else break 44 4 Testing Observability | Amy Phillips | @amyjph Test case Expected result Test

Do you really need a tester?Testing Observability | Amy Phillips | @amyjph

Page 32: Testing Observability · 2018-05-04 · White box testing if input == 4 return input else break 44 4 Testing Observability | Amy Phillips | @amyjph Test case Expected result Test

Idea generationTesting Observability | Amy Phillips | @amyjph

Page 33: Testing Observability · 2018-05-04 · White box testing if input == 4 return input else break 44 4 Testing Observability | Amy Phillips | @amyjph Test case Expected result Test

Is it worth it?

Test value = risk vs. effort

Testing Observability | Amy Phillips | @amyjph

Page 34: Testing Observability · 2018-05-04 · White box testing if input == 4 return input else break 44 4 Testing Observability | Amy Phillips | @amyjph Test case Expected result Test

Make it better

Break

something

Testing Observability | Amy Phillips | @amyjph

Observability

Fix it

Improve

Page 35: Testing Observability · 2018-05-04 · White box testing if input == 4 return input else break 44 4 Testing Observability | Amy Phillips | @amyjph Test case Expected result Test

In summary

● Testing is changing as systems change

● Observability may take the place of many testing tasks

● But observability isn’t free

● We should be asking “How will be know when it isn’t

working?”

Testing Observability | Amy Phillips | @amyjph

Page 36: Testing Observability · 2018-05-04 · White box testing if input == 4 return input else break 44 4 Testing Observability | Amy Phillips | @amyjph Test case Expected result Test

ThanksAmy Phillips

@amyjph