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

Post on 26-Jan-2020

2 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Testing ObservabilityAmy Phillips

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

The early daysTesting Observability | Amy Phillips | @amyjph

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

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

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

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

Fluid testing

Acceptance testing

Manual Automated

Pairing

Code reviews

Error log reviews

Ad Hoc tools

Testing Observability | Amy Phillips | @amyjph

Continuous deliveryTesting Observability | Amy Phillips | @amyjph

The monolith

Microservices and the impact on testing

Push code Release

Testing Observability | Amy Phillips | @amyjph

The monolith

Microservices and the impact on testing

Testing

Testing

Testing Observability | Amy Phillips | @amyjph

Service

Microservices and the impact on testing

ReleasePush code

Service ReleasePush code

Service ReleasePush code

Testing Observability | Amy Phillips | @amyjph

Service

Microservices and the impact on testing

Push code

Service ReleasePush code

ServicePush code

Testing Observability | Amy Phillips | @amyjph

End to EndTesting

Service 1

Consumer driven contract testing

ReleasePush code

Service 2 ReleasePush code

Test broker e.g. PACT

Test

Test

Testing Observability | Amy Phillips | @amyjph

Node A

Master

Self healing systems

Service 1 Service 2

Node B

Service 3

Testing Observability | Amy Phillips | @amyjph

A quick look at testing

Testing Observability | Amy Phillips | @amyjph

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

Have we built the thing right?

Have we broken anything else?

Testing

An investigation conducted to

gather information on the

quality of the system or product.

Testing Observability | Amy Phillips | @amyjph

Quality

A quality system meets the

needs of the user.

Testing Observability | Amy Phillips | @amyjph

Test pyramid

UI

Integration

Unit

Testing Observability | Amy Phillips | @amyjph

Testing dials

Unit testing Integrationtesting

Contracttesting

Manualtesting

Testing Observability | Amy Phillips | @amyjph

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

Observability instead of testing?

Testing Observability | Amy Phillips | @amyjph

Retrospectively adding logging

LoggingService

DB

Testing Observability | Amy Phillips | @amyjph

How will we know when it isn’t working?

Testing Observability | Amy Phillips | @amyjph

How would you test observability?

Monitoring Alerting

Tracing Log aggregation

Testing Observability | Amy Phillips | @amyjph

Chaos monkey

● Weekly scheduled session

● Two “monkeys”

● One “victim”

Testing Observability | Amy Phillips | @amyjph

Make it easy to observe failures

Break

something

Testing Observability | Amy Phillips | @amyjph

Observability

Fix it

Improve

Predictable chimp

● Cheeky

● Multi-talented

● Engaging

● Attention grabbing

● Playful

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

Testing Observability | Amy Phillips | @amyjph

How to design test scenarios

Testing Observability | Amy Phillips | @amyjph

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

Idea generationTesting Observability | Amy Phillips | @amyjph

Is it worth it?

Test value = risk vs. effort

Testing Observability | Amy Phillips | @amyjph

Make it better

Break

something

Testing Observability | Amy Phillips | @amyjph

Observability

Fix it

Improve

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

ThanksAmy Phillips

@amyjph

top related