Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Agileee 2012


Published on

My slides from AgileEE 2012 conference.
Reversed Tests Pyramid

Published in: Technology
  • Be the first to comment

Agileee 2012

  1. 1. Reversed Tests Pyramid Wiktor Żołnowski @streser
  2. 2. Can you imagine perfect software?
  3. 3. It would be perfect to work with perfect software every day...But... Our everyday work looks a little bit different...
  4. 4. Its called...Legacy Code
  5. 5. Tests pyramid
  6. 6. Its easy...For a perfectly coded application...
  7. 7. Not so easy for legacy code● How to implement unit tests if we dont have any separated units?● You need to refactor your code to test it but refactoring without tests is too risky...● There is a difference between courage and stupidity..● Should we give up then and for example rewrite the whole application?
  8. 8. First of all...How did we get to this point?
  9. 9. Its all because of the Technical Debt
  10. 10. Technical Debt is evil!● Sometimes it is to late to payback technical debt in a simple way...● Success in Software Development is something which is not continuous...● Success is state that you can achieve but also lose very fast if you cant respond to changes fast enough...
  11. 11. Is it possible to pay Technical Debt back?
  12. 12. Reversed Tests Pyramid
  13. 13. Now refactor...● High level tests gives you courage to refactor your code...● You have to assume that the old version of the system works properly...● Now you can write some Unit Tests...● Do it step by step...● Cover your functionality with Unit Tests...
  14. 14. But.. There are few reasons why you shouldnt reverse tests pyramid● End-To-End tests are too long...● End-to-end tests are difficult to maintain...● If we need end-to-end tests we are probably doing something wrong with our architecture...
  15. 15. So its all about reversing back our tests pyramid.
  16. 16. But...● Remember that creating reversed tests pyramid and reversing it back will take some time...● You need to deal with it if you want to pay back your technical debt...● Return of investment will be visible soon...
  17. 17. Few final thoughts...● Beware of refactoring just for refactoring!● Resist temptation to re-write from scratch – history is against you, such projects usually fail.● Remember to always remove your (duplicated) tests!● Software quality in many cases could be understood as ability to introduce changes into software!● Keep your technical debt as low as possible and try to pay it back every time you can. For example use your slack time for that!
  18. 18. Wiktor Żołnowski www.codesprinters.comQuestions?