don’t lose your time on testing. fool!
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/0978739213TRANSCRIPT
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