The Testing Strategy

670 views
590 views

Published on

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

  • Be the first to like this

No Downloads
Views
Total views
670
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
14
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

The Testing Strategy

  1. 1. The Testing Strategy Domenico Musto 2012 October
  2. 2. Who am I?25/10/12 www.agiletour.com
  3. 3. About me25/10/12 www.agiletour.com
  4. 4. Not about me25/10/12 www.agiletour.com
  5. 5. What do I do? C# .NET Team leading Web REST Ruby Automation Testing Agile @mimmozzo domenico.musto@gmail.com25/10/12 www.agiletour.com
  6. 6. Today we talk about..• Differences between types of tests• Tests and developers• Tests and QA25/10/12 www.agiletour.com
  7. 7. ..we dont talk about..• Testing frameworks• Libraries25/10/12 www.agiletour.com
  8. 8. The Agile Testing Quadrant25/10/12 www.agiletour.com
  9. 9. Technology facing25/10/12 www.agiletour.com
  10. 10. Types of tests• Unit• Functional• Load• Soak25/10/12 www.agiletour.com
  11. 11. Unit tests• They test units of code in isolation• Interaction between components• Describe the behaviour• Drive the design• Fast execution25/10/12 www.agiletour.com
  12. 12. Be careful• Test just public interfaces• Do not abuse of mocking25/10/12 www.agiletour.com
  13. 13. Adding a new class is not the trigger for a new test.The trigger is the implementation of a new requirement.25/10/12 www.agiletour.com
  14. 14. Functional tests• They test the interaction with components outside the context of our application• They assure integration• They might be slow25/10/12 www.agiletour.com
  15. 15. public class When_getting_an_object_from_the_db{ static int _objectId; static DbWrapper _sut; static object _object; Establish that_there_is_an_object = ()=> { _objectId = 100; ManuallyAddAnObjectInTheDb(_objectId); } Because we_get_the_object = ()=> _object = _sut.Get(_objectId); It should_get_the_object = ()=> _object.ShouldNotBeNull();}25/10/12 www.agiletour.com
  16. 16. public class When_storing_an_object_in_the_db{ static int _objectId; static DbWrapper _sut; static object _object; Establish we_have_an_object_to_save = ()=> { _objectId = 100; } Because we_save_the_object = ()=> _object = _sut.Save(_objectId); It should_store_the_object = ()=> _sut.Get(_objectId).ShouldNotBeNull();}25/10/12 www.agiletour.com
  17. 17. Be careful• Do not mix tests• Use context builders for data fixture25/10/12 www.agiletour.com
  18. 18. Load tests• Feedback on performance• Feedback on volume limit• Complicated to write• Slow execution25/10/12 www.agiletour.com
  19. 19. Soak tests• Discover technologic issues• Slow execution25/10/12 www.agiletour.com
  20. 20. Business facing25/10/12 www.agiletour.com
  21. 21. Types of tests• End to end• Integration• Exploratory25/10/12 www.agiletour.com
  22. 22. End to end tests• They test the whole scope of a feature• They are acceptance tests• Understandable from non-techincal persons• Slow execution25/10/12 www.agiletour.com
  23. 23. They are not (only) interface tests.25/10/12 www.agiletour.com
  24. 24. Integration tests when the end to end arent brave enough• They test pieces of the application• They test the integration• Slow execution25/10/12 www.agiletour.com
  25. 25. Exploratory tests• Manual• Look for feature limit25/10/12 www.agiletour.com
  26. 26. Lets implement a feature25/10/12 www.agiletour.com
  27. 27. The actors of the development process• Developers• QA• Customer25/10/12 www.agiletour.com
  28. 28. The story As a user of huddle I would like to add comments to tasks to collaborate better with my colleagues25/10/12 www.agiletour.com
  29. 29. 25/10/12 www.agiletour.com
  30. 30. 25/10/12 www.agiletour.com
  31. 31. 25/10/12 www.agiletour.com
  32. 32. 25/10/12 www.agiletour.com
  33. 33. 25/10/12 www.agiletour.com
  34. 34. df25/10/12 www.agiletour.com
  35. 35. The feature is ready25/10/12 www.agiletour.com
  36. 36. 25/10/12 www.agiletour.com
  37. 37. What about the tests ?!?!?!25/10/12 www.agiletour.com
  38. 38. 25/10/12 www.agiletour.com
  39. 39. When do I need to do end to end tests ?25/10/12 www.agiletour.com
  40. 40. Test plan25/10/12 www.agiletour.com
  41. 41. 25/10/12 www.agiletour.com
  42. 42. 25/10/12 www.agiletour.com
  43. 43. Test plan• Acceptance tests• Functional tests• Integration tests• Unit tests25/10/12 www.agiletour.com
  44. 44. 25/10/12 www.agiletour.com
  45. 45. Trade-off25/10/12 www.agiletour.com
  46. 46. Quality attributes• Availability• Modifiability• Performance• Security• Testability• Usability25/10/12 www.agiletour.com
  47. 47. The test pyramid25/10/12 www.agiletour.com
  48. 48. QA Team25/10/12 www.agiletour.com
  49. 49. QA Team25/10/12 www.agiletour.com
  50. 50. QAs are part of the dev team25/10/12 www.agiletour.com
  51. 51. The reputation of the tests, of the build server and of the development environment25/10/12 www.agiletour.com
  52. 52. The deployment25/10/12 www.agiletour.com
  53. 53. 25/10/12 www.agiletour.com
  54. 54. Thanks. Q&A @mimmozzo domenico.musto@gmail.com25/10/12 www.agiletour.com

×