The secret art of agile performance testing

765 views
712 views

Published on

Published in: Technology, Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
765
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
22
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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 />

×