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.

The secret art of agile performance testing

845 views

Published on

Published in: Technology, Education
  • Be the first to comment

  • Be the first to like this

The secret art of agile performance testing

  1. 1. The Secret Art of Agile Performance Testing<br />Alois Reitbauer, dynaTrace Software<br />
  2. 2. The Classical Approach<br />
  3. 3. Waterfallsarepretty<br />
  4. 4. But mightgetscary<br />
  5. 5. Dream<br />Iteration<br />ComfortZone<br />Test<br />Iteration<br />Reality<br />Iteration<br />Test<br />
  6. 6. Dream<br />Iteration<br />Iteration<br />ComfortZone<br />Test<br />Iteration<br />Iteration<br />Reality<br />Iteration<br />Test<br />Iteration<br />
  7. 7. NFRs and Maslow<br />
  8. 8. The Focus Problem<br />
  9. 9. Methodology<br />
  10. 10. The Agile Approach<br />
  11. 11. DefiningourStrategy<br />Start Early<br />Break in Pieces<br />Test Continuously<br />
  12. 12. Creating Focus<br />Automate<br />Risk<br />Regular Testing<br />Skip<br />Impact<br />
  13. 13. Frequency vs. Granularity<br />JUnit-based<br />Tests (2x day)<br />Total System<br />Tests<br />Long-running<br />Stabiltiy Tests<br />(2 w duration)<br />Granularity<br />Frequency<br />
  14. 14. Granularity<br />Comparability<br />Complexity<br />Quality<br />
  15. 15. Define KPIs<br />Throughput<br />Response Time<br />Memory Consumption<br />Other KPIs …<br />
  16. 16. Follow a Strategy<br />Monitor<br />GainVisibility<br />Resolve<br />Reduce ResolutionTime<br />Prevent<br />ProactivelyAvoidProblems<br />
  17. 17. Avoid Re-Runs<br /><ul><li>Whatcould happen?
  18. 18. Whichinformation do youwant?
  19. 19. Whatdescribesyoursystem?
  20. 20. Whatis different fromthe last run?</li></li></ul><li>Don´t Forget theReal World<br />
  21. 21. Lessonslearned<br />
  22. 22. Profilingis not enough<br />Goodforfindingproblems<br />Resultcomparisonhard<br />Only valid untilnextcheck-in<br />Toomuchwork<br />
  23. 23. The Life of a Log Statement<br />Enter the code<br />publicvoidfoo (){<br /> … // do something<br /> bar ();<br />}<br />publicvoid bar (){<br /> … // do somethingelse<br /> Logger.log (“executiontook“ + time);<br />}<br />
  24. 24. The Life of a Log Statement<br />Somebody changes something<br />publicvoidfoo (){<br /> … // do something<br />if (condition) <br /> bar ();<br />else<br />otherBar ();<br />}<br />publicvoid bar (){<br /> … // do somethingelse<br /> Logger.log (“executiontook“ + time);<br />}<br />
  25. 25. The Life of a Log Statement<br />Your code gets deprecated<br />publicvoidfoo (){<br /> … // do something<br />newBar ();<br />}<br />publicvoid bar (){<br /> … // do somethingelse<br /> Logger.log (“executiontook“ + time);<br />}<br />
  26. 26. Measurements<br />
  27. 27. Stability of Tests<br />
  28. 28. UseDedicated Hardware<br />Comparability<br />Stability<br /> Efficiency<br />
  29. 29. Trends in Unstable Tests<br />
  30. 30. Create Instability<br />.. addingsomevolatilityincreasesthelikelyness<br />todiscoverproblems …“<br />
  31. 31. Testing scalability<br />Small Dump Operations<br />Big Dump Operations<br />
  32. 32. Understandyourmeasurements<br />Response Time and GC<br />Response Time only<br />
  33. 33. Motivateyourteam<br />
  34. 34. Howtomakedeveloperswritetests<br />#1 Heroism<br />#2 Boomerang<br />#3 The otherguy<br />#4 Bug me not<br />#5 Feedback<br />#6 Code vs. Wine<br />#7 Newb vs. Noob<br />
  35. 35. Test Case Complexity<br />First<br />Start dynaTrace infrastructure<br />Whenready<br />Start n WebSphereinstances on servers … <br />Whenready<br />Start LoadtestagainstWebSphereservers<br />After loadteststart<br />Execute testcase<br />
  36. 36. Making complex things easy<br />    @DtdRemoteSud(<br />            host = "lab2",<br />            name = "WAS7.0",<br />            startupPriority = 1,<br />            postStartClosure = WaitForWebSphereSudIsUp.class<br />    )<br />    private SudInterfacewebSphereSud;<br />
  37. 37. Findingtheresponsiblecode<br />Version Control History Lookup<br />
  38. 38. E-Mail Notification<br />… betterhumans<br />
  39. 39. WrapUp<br /> Say „Yes“<br /> Focus<br />Define KPIs<br />RedefineDone<br /> Remove Barriers<br />Automate<br /> Monitor<br />Resolve<br />Prevent<br />
  40. 40. alois.reitbauer@dynatrace.com Mail<br />blog.dynatrace.com Blog<br />AloisReitbauerTwitter<br />

×