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
![Page 1: Don’t lose your time on testing. Fool!](https://reader034.vdocuments.net/reader034/viewer/2022042701/559cce991a28ab991f8b47de/html5/thumbnails/1.jpg)
Don’t lose your time on testing. Fool! Marek Koniew
![Page 2: Don’t lose your time on testing. Fool!](https://reader034.vdocuments.net/reader034/viewer/2022042701/559cce991a28ab991f8b47de/html5/thumbnails/2.jpg)
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!](https://reader034.vdocuments.net/reader034/viewer/2022042701/559cce991a28ab991f8b47de/html5/thumbnails/3.jpg)
Microservices architecture
More confidence:- Smaller- Independent- Faster- Short lived
Problem:- Hard to test
![Page 4: Don’t lose your time on testing. Fool!](https://reader034.vdocuments.net/reader034/viewer/2022042701/559cce991a28ab991f8b47de/html5/thumbnails/4.jpg)
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!](https://reader034.vdocuments.net/reader034/viewer/2022042701/559cce991a28ab991f8b47de/html5/thumbnails/5.jpg)
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!](https://reader034.vdocuments.net/reader034/viewer/2022042701/559cce991a28ab991f8b47de/html5/thumbnails/6.jpg)
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!](https://reader034.vdocuments.net/reader034/viewer/2022042701/559cce991a28ab991f8b47de/html5/thumbnails/7.jpg)
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!](https://reader034.vdocuments.net/reader034/viewer/2022042701/559cce991a28ab991f8b47de/html5/thumbnails/8.jpg)
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!](https://reader034.vdocuments.net/reader034/viewer/2022042701/559cce991a28ab991f8b47de/html5/thumbnails/9.jpg)
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!](https://reader034.vdocuments.net/reader034/viewer/2022042701/559cce991a28ab991f8b47de/html5/thumbnails/10.jpg)
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!](https://reader034.vdocuments.net/reader034/viewer/2022042701/559cce991a28ab991f8b47de/html5/thumbnails/11.jpg)
Summary
- Design for production- Test smart not hard- Remove waterfalls- No risk no fun
![Page 12: Don’t lose your time on testing. Fool!](https://reader034.vdocuments.net/reader034/viewer/2022042701/559cce991a28ab991f8b47de/html5/thumbnails/12.jpg)
Questions