Don’t lose your time on testing. Fool!

12
Don’t lose your time on testing. Fool! Marek Koniew

description

High code coverage, code reviews, pair programming, TDD, testers, QA managers ... and we are still afraid to release every 15 minutes. What are we testing? Maybe we do not test what we should? How to become more confident? Who should test and how? This presentation shows how to approach testing in agile world of microservices. Presented on Gliwice Software BarCamp #2 - edycja pochmurna http://www.meetup.com/Gliwice-Software-BarCamp/events/218635233/ Links mentioned in from presentation: Release early. Release often. And listen to your customers: http://en.wikipedia.org/wiki/Release_early,_release_often http://12factor.net/ http://www.reactivemanifesto.org/ Martin Fowler “Sacrificial Architecture” http://martinfowler.com/bliki/SacrificialArchitecture.html Greg Young “The art of destroying software” http://vimeo.com/108441214 Is TDD dead? http://david.heinemeierhansson.com/2014/tdd-is-dead-long-live-testing.html http://martinfowler.com/articles/is-tdd-dead/ Canary Testing: http://techblog.netflix.com/2013/08/deploying-netflix-api.html Kill All the Product Owners http://vimeo.com/74437772 Release it! http://www.amazon.com/Release-It-Production-Ready-Pragmatic-Programmers/dp/0978739213

Transcript of Don’t lose your time on testing. Fool!

Page 1: Don’t lose your time on testing. Fool!

Don’t lose your time on testing. Fool! Marek Koniew

Page 2: Don’t lose your time on testing. Fool!

The problem "Release early. Release often. And listen to your customers"

- Faster feedback loop- Progress faster- Go to right direction- Better product- Better quality

How to be confident?

http://en.wikipedia.org/wiki/Release_early,_release_often

Page 3: Don’t lose your time on testing. Fool!

Microservices architecture

More confidence:- Smaller- Independent- Faster- Short lived

Problem:- Hard to test

Page 4: Don’t lose your time on testing. Fool!

Microservice is not a free lunch

- http://12factor.net/ - Software As A Service- http://www.reactivemanifesto.org/

Page 5: Don’t lose your time on testing. Fool!

Design to go fast

- Share nothing- Recalculate each time- Send duplicate messages- Loose messages- Rest is not the best

Page 6: Don’t lose your time on testing. Fool!

The art of destroying software

How big should be a microservice?- Fix design or model quickly- Add new feature easily- Easy to understand- Dump code and rewrite it- Short life

Martin Fowler “Sacrificial Architecture”Greg Young “The art of destroying software”

Page 7: Don’t lose your time on testing. Fool!

Test smart not hard

- Do not rely on code coverage- Test to go faster- Test to increase confidence- TDD is dead- Monitoring is modern way of testing

Endpoint

Service

DAO 10% of tests failed when this method is omitted

Page 8: Don’t lose your time on testing. Fool!

Monitoring is modern way of testing

Canary testing:- Can be automated- You will newer know unless you run it- Netflix uses it- The best for resilient designs- The same tools for test and monitor

Page 9: Don’t lose your time on testing. Fool!

Then, Kill All the Product Owners

2000 2005 2010 2015

- Know the business- Learn the domain- Love users

Page 10: Don’t lose your time on testing. Fool!

We need just one more feature

time

com

ple

ten

ess

100%

80%

- Users will always say only one more feature is missing- For improving resiliency, stability, feature completeness … effort is exponential

Page 11: Don’t lose your time on testing. Fool!

Summary

- Design for production- Test smart not hard- Remove waterfalls- No risk no fun

Page 12: Don’t lose your time on testing. Fool!

Questions