Don’t lose your time on testing. Fool!

Post on 08-Jul-2015

263 views 5 download

Tags:

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!

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

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

Microservices architecture

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

Problem:- Hard to test

Microservice is not a free lunch

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

Design to go fast

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

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”

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

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

Then, Kill All the Product Owners

2000 2005 2010 2015

- Know the business- Learn the domain- Love users

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

Summary

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

Questions