Agile Testing 1210187639850462 9

3,529 views

Published on

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

No Downloads
Views
Total views
3,529
On SlideShare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
341
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Agile Testing 1210187639850462 9

  1. 1. Agile Testing Embrace Uncertainty Naresh Jain naresh@agilefaqs.com Licensed Under Creative Commons by Naresh Jain 1
  2. 2. Objective Introduce Agile Testing Concepts Some background about Agile Compare with Traditional Testing practices Highlight the fundamental shift in Thought Process Discuss some tools and techniques used Some pointers to help you try some of these techniques Licensed Under Creative Commons by Naresh Jain 2
  3. 3. Traditional Software Development With great optimism and the best of intentions, The Project Plan is announced Analyze Design Code Test/Bug Fix e od t s ent Dev C ed o Tes m ire f to t ple off t qu Re ed of m Co ded and han H Source Agile/QA Testing - Elisabeth Hendrickson Licensed Under Creative Commons by Naresh Jain 3
  4. 4. Traditional Software Development With great optimism and the best of intentions, The Project Plan is announced Analyze Design Code Test/Bug Fix e od t s ent Dev C ed o Tes Release m ire f to t ple off t qu Re ed of m Co ded and han H Source Agile/QA Testing - Elisabeth Hendrickson Licensed Under Creative Commons by Naresh Jain 3
  5. 5. Reality Inevitably, the project plan is revised Analyze, Design and Code Test/Bug Fix e od t Cs ted to Te ple off m Co ded han Source Agile/QA Testing - Elisabeth Hendrickson Licensed Under Creative Commons by Naresh Jain 4
  6. 6. Reality Inevitably, the project plan is revised Analyze, Design and Code Test/Bug Fix e od t Release Cs ted to Te ple off m Co ded han Source Agile/QA Testing - Elisabeth Hendrickson Licensed Under Creative Commons by Naresh Jain 4
  7. 7. Controlling the Chaos Source Agile/QA Testing - Elisabeth Hendrickson Licensed Under Creative Commons by Naresh Jain 5
  8. 8. Controlling the Chaos Traditional testing practices attempt to manage the chaos (or at least avoid the blame): Source Agile/QA Testing - Elisabeth Hendrickson Licensed Under Creative Commons by Naresh Jain 5
  9. 9. Controlling the Chaos Traditional testing practices attempt to manage the chaos (or at least avoid the blame): “Last Defender of Quality” stance Source Agile/QA Testing - Elisabeth Hendrickson Licensed Under Creative Commons by Naresh Jain 5
  10. 10. Controlling the Chaos Traditional testing practices attempt to manage the chaos (or at least avoid the blame): “Last Defender of Quality” stance Strict change management Source Agile/QA Testing - Elisabeth Hendrickson Licensed Under Creative Commons by Naresh Jain 5
  11. 11. Controlling the Chaos Traditional testing practices attempt to manage the chaos (or at least avoid the blame): “Last Defender of Quality” stance Strict change management Detailed preparation and up front planning Source Agile/QA Testing - Elisabeth Hendrickson Licensed Under Creative Commons by Naresh Jain 5
  12. 12. Controlling the Chaos Traditional testing practices attempt to manage the chaos (or at least avoid the blame): “Last Defender of Quality” stance Strict change management Detailed preparation and up front planning Heavyweight documentation Source Agile/QA Testing - Elisabeth Hendrickson Licensed Under Creative Commons by Naresh Jain 5
  13. 13. Controlling the Chaos Traditional testing practices attempt to manage the chaos (or at least avoid the blame): “Last Defender of Quality” stance Strict change management Detailed preparation and up front planning Heavyweight documentation Strict entrance and exit criteria with sign-offs Source Agile/QA Testing - Elisabeth Hendrickson Licensed Under Creative Commons by Naresh Jain 5
  14. 14. Controlling the Chaos Traditional testing practices attempt to manage the chaos (or at least avoid the blame): “Last Defender of Quality” stance Strict change management Detailed preparation and up front planning Heavyweight documentation Strict entrance and exit criteria with sign-offs Heavyweight test automation focused on regression Source Agile/QA Testing - Elisabeth Hendrickson Licensed Under Creative Commons by Naresh Jain 5
  15. 15. Controlling the Chaos Traditional testing practices attempt to manage the chaos (or at least avoid the blame): “Last Defender of Quality” stance Strict change management Detailed preparation and up front planning Heavyweight documentation Strict entrance and exit criteria with sign-offs Heavyweight test automation focused on regression Attempts at process enforcement Source Agile/QA Testing - Elisabeth Hendrickson Licensed Under Creative Commons by Naresh Jain 5
  16. 16. Project Management Triangle Licensed Under Creative Commons by Naresh Jain 6
  17. 17. Project Management Triangle e Quality op Tim Sc e ?? Cost/Resource Licensed Under Creative Commons by Naresh Jain 6
  18. 18. Lower cost of change through higher quality software Traditional cost profile Licensed Under Creative Commons by Naresh Jain 7
  19. 19. Lower cost of change through higher quality software Traditional cost profile Time spent: • Finding defects • Fixing Defects • Regression Testing • Deploying Licensed Under Creative Commons by Naresh Jain 7
  20. 20. Lower cost of change through higher quality software Traditional cost profile Time spent: • Finding defects • Fixing Defects • Regression Testing • Deploying More defects found Agile system cost profile & corrected – causes lower cost of defect correction Licensed Under Creative Commons by Naresh Jain 7
  21. 21. Building Quality into the Process Licensed Under Creative Commons by Naresh Jain 8
  22. 22. Building Quality into the Process Toyoda Loom Licensed Under Creative Commons by Naresh Jain 8
  23. 23. Lessons from Queuing theory Utilization (%) Source: Beyond Agile Software Development Becoming Lean, Mary Poppendieck, Poppendieck.llc Licensed Under Creative Commons by Naresh Jain 9
  24. 24. Traditional Software Development Licensed Under Creative Commons by Naresh Jain 10
  25. 25. Traditional Software Development Licensed Under Creative Commons by Naresh Jain 10
  26. 26. Traditional Software Development 50 % done? Licensed Under Creative Commons by Naresh Jain 10
  27. 27. Applying Lean Principles to Software Development ... A better way of doing the same Licensed Under Creative Commons by Naresh Jain 11
  28. 28. Applying Lean Principles to Software Development ... A better way of doing the same End-to-End small slices of work Licensed Under Creative Commons by Naresh Jain 11
  29. 29. Applying Lean Principles to Software Development ... A better way of doing the same End-to-End small slices 20 % done = 100 % usable of work Licensed Under Creative Commons by Naresh Jain 11
  30. 30. Traditional vs Agile Project Plan/Estimation Requirements Gathering Use Cases / Functional Specs Design Specifications Code Test Fix / Integrate $ Inception $ $ $ $ Licensed Under Creative Commons by Naresh Jain 12
  31. 31. Agile = Continuous Stream of Value Release 1 Release 2 iteration iteration iteration iteration iteration iteration iteration 1 2 3 4 5 6 7 Completed Working Features Designed, Coded and Tested Source Agile/QA Testing - Elisabeth Hendrickson Licensed Under Creative Commons by Naresh Jain 13
  32. 32. Agile = Continuous Stream of Value Release 1 Release 2 iteration iteration iteration iteration iteration iteration iteration 1 2 3 4 5 6 7 Completed Working Features Designed, Coded and Tested Source Agile/QA Testing - Elisabeth Hendrickson Licensed Under Creative Commons by Naresh Jain 13
  33. 33. Becoming Agile : Delivering Value Increase the rate of delivery (usually with smaller increments) Source Agile/QA Testing - Elisabeth Hendrickson Licensed Under Creative Commons by Naresh Jain 14
  34. 34. Becoming Agile : Increasing Feedback Increase the rate and quality of feedback Source Agile/QA Testing - Elisabeth Hendrickson Licensed Under Creative Commons by Naresh Jain 15
  35. 35. Becoming Agile : Reducing Waste Reduce waste Source Agile/QA Testing - Elisabeth Hendrickson Licensed Under Creative Commons by Naresh Jain 16
  36. 36. Agile Umbrella Agile XP Scrum DSDM FDD Adaptive Pragmatic Lean Crystal Licensed Under Creative Commons by Naresh Jain 17
  37. 37. A typical XP Project Licensed Under Creative Commons by Naresh Jain 18
  38. 38. A typical XP Project Project 1 year Licensed Under Creative Commons by Naresh Jain 18
  39. 39. A typical XP Project Project 1 year Releases 3 months Licensed Under Creative Commons by Naresh Jain 18
  40. 40. A typical XP Project Project 1 year Releases 3 months Iterations 2 weeks Licensed Under Creative Commons by Naresh Jain 18
  41. 41. A typical XP Project Project 1 year Releases 3 months Iterations 2 weeks Days 1 day Licensed Under Creative Commons by Naresh Jain 18
  42. 42. A typical XP Project Project 1 year Releases 3 months Iterations 2 weeks Days 1 day Tasks 2 hrs Licensed Under Creative Commons by Naresh Jain 18
  43. 43. A typical XP Project Project 1 year Releases 3 months Iterations 2 weeks Days 1 day Tasks 2 hrs 15 min Test-Code-Refactor Cycles Licensed Under Creative Commons by Naresh Jain 18
  44. 44. Source : http://www.extremeprogramming.org Licensed Under Creative Commons by Naresh Jain 19
  45. 45. Key Questions Business Facing Are we building the right product? Are we building the product right? Technology Facing Licensed Under Creative Commons by Naresh Jain 20
  46. 46. Brian Marick’s Test Categorization Business Facing Supports Programming Critique product Technology Facing Licensed Under Creative Commons by Naresh Jain 21
  47. 47. Brian Marick’s Test Categorization Business Facing Supports Programming Acceptance Testing Exploratory Testing Critique product Low-fi prototypes UI and Usability Testing Unit Testing Performance Testing Technology Facing Licensed Under Creative Commons by Naresh Jain 22
  48. 48. Acceptance Test Driven Development Licensed Under Creative Commons by Naresh Jain 23
  49. 49. Acceptance Test Driven Development Story Licensed Under Creative Commons by Naresh Jain 23
  50. 50. Acceptance Test Driven Development Acceptance Criteria Story Licensed Under Creative Commons by Naresh Jain 23
  51. 51. Acceptance Test Driven Development Iteration Acceptance Criteria Story Licensed Under Creative Commons by Naresh Jain 23
  52. 52. Acceptance Test Driven Development Iteration Automated Acceptance Acceptance Tests Criteria Story Licensed Under Creative Commons by Naresh Jain 23
  53. 53. Acceptance Test Driven Development Iteration Automated Acceptance Acceptance Tests Criteria Automated Story Unit Test Licensed Under Creative Commons by Naresh Jain 23
  54. 54. Acceptance Test Driven Development Iteration Automated Acceptance Acceptance Tests Criteria Automated Story Unit Test Automated Acceptance Tests Licensed Under Creative Commons by Naresh Jain 23
  55. 55. Acceptance Test Driven Development Iteration Automated Acceptance Acceptance Tests Criteria Automated Story Unit Test Automated Acceptance Tests Exploratory Testing Licensed Under Creative Commons by Naresh Jain 23
  56. 56. Acceptance Test Driven Development Iteration Automated Acceptance Acceptance Tests Criteria Automated Story Unit Test Automated Acceptance Tests Acceptance Exploratory Criteria Testing Licensed Under Creative Commons by Naresh Jain 23
  57. 57. Acceptance Test Driven Development Iteration Automated Acceptance Acceptance Tests Criteria Automated Story Unit Test Automated UI Tests Automated Acceptance Tests Acceptance Exploratory Criteria Testing Licensed Under Creative Commons by Naresh Jain 23
  58. 58. Acceptance Test Driven Development Iteration P Automated E Acceptance Acceptance R Tests Criteria F O R Automated Story M T Unit Test Automated E E N UI Tests S C T E S Automated Acceptance Tests Acceptance Exploratory Criteria Testing Licensed Under Creative Commons by Naresh Jain 23
  59. 59. Test Driven Development TDD Rhythm - Test, Code, Refactor Licensed Under Creative Commons by Naresh Jain 24
  60. 60. Test Driven Development Add a Test TDD Rhythm - Test, Code, Refactor Licensed Under Creative Commons by Naresh Jain 24
  61. 61. Test Driven Development Add a Test Run the Test TDD Rhythm - Test, Code, Refactor Licensed Under Creative Commons by Naresh Jain 24
  62. 62. Test Driven Development Add a Test Pass Run the Test TDD Rhythm - Test, Code, Refactor Licensed Under Creative Commons by Naresh Jain 24
  63. 63. Test Driven Development Add a Test Pass Run the Test Fail TDD Rhythm - Test, Code, Refactor Licensed Under Creative Commons by Naresh Jain 24
  64. 64. Test Driven Development Add a Test Pass Run the Test Fail TDD Rhythm - Test, Code, Refactor Make a little change Licensed Under Creative Commons by Naresh Jain 24
  65. 65. Test Driven Development Add a Test Pass Run the Test Fail TDD Rhythm - Test, Code, Refactor Make a little change Run the Test Licensed Under Creative Commons by Naresh Jain 24
  66. 66. Test Driven Development Add a Test Pass Run the Test Fail TDD Rhythm - Test, Code, Refactor Make a little change Fail Run the Test Licensed Under Creative Commons by Naresh Jain 24
  67. 67. Test Driven Development Add a Test Pass Run the Test Fail TDD Rhythm - Test, Code, Refactor Make a little change Fail Run the Test Pass Licensed Under Creative Commons by Naresh Jain 24
  68. 68. Test Driven Development Add a Test Pass Run the Test Fail TDD Rhythm - Test, Code, Refactor Make a little change Fail Run the Test Pass Refactor Licensed Under Creative Commons by Naresh Jain 24
  69. 69. Test Driven Development Add a Test Pass Run the Test Fail TDD Rhythm - Test, Code, Refactor Make a little change Fail Run the Test Pass Refactor Licensed Under Creative Commons by Naresh Jain 24
  70. 70. Test Driven Development Add a Test Pass Run the Test Fail TDD Rhythm - Test, Code, Refactor Make a little change Fail Run the Test Pass Refactor Licensed Under Creative Commons by Naresh Jain 24
  71. 71. Test Driven Development Add a Test Pass Run the Test Fail TDD Rhythm - Test, Code, Refactor Make a little change Fail Run the Test Pass Refactor Licensed Under Creative Commons by Naresh Jain 24
  72. 72. Mike Cohn’s Testing Pyramid Licensed Under Creative Commons by Naresh Jain 25
  73. 73. Mike Cohn’s Testing Pyramid GUI Tests Licensed Under Creative Commons by Naresh Jain 25
  74. 74. Mike Cohn’s Testing Pyramid Small in Number Tools: Selenium, Sahi, Watir, Abbot, Frankenstein GUI Tests Licensed Under Creative Commons by Naresh Jain 25
  75. 75. Mike Cohn’s Testing Pyramid Small in Number Tools: Selenium, Sahi, Watir, Abbot, Frankenstein GUI Tests Acceptance Tests Licensed Under Creative Commons by Naresh Jain 25
  76. 76. Mike Cohn’s Testing Pyramid Small in Number Tools: Selenium, Sahi, Watir, Abbot, Frankenstein GUI Tests At least one per story Acceptance Tools: Fit, FitNesse, RSpec, JBehave Tests Licensed Under Creative Commons by Naresh Jain 25
  77. 77. Mike Cohn’s Testing Pyramid Small in Number Tools: Selenium, Sahi, Watir, Abbot, Frankenstein GUI Tests At least one per story Acceptance Tools: Fit, FitNesse, RSpec, JBehave Tests Unit Tests Licensed Under Creative Commons by Naresh Jain 25
  78. 78. Mike Cohn’s Testing Pyramid Small in Number Tools: Selenium, Sahi, Watir, Abbot, Frankenstein GUI Tests At least one per story Acceptance Tools: Fit, FitNesse, RSpec, JBehave Tests At least one per class or module Tools: xUnit, TestNG Unit Tests Licensed Under Creative Commons by Naresh Jain 25
  79. 79. FitNesse and Selenium Demo Licensed Under Creative Commons by Naresh Jain 26
  80. 80. What is the Role of a Tester on Agile Projects? Licensed Under Creative Commons by Naresh Jain 27
  81. 81. What is the Role of a Tester on Agile Projects? Testers are part of the team Licensed Under Creative Commons by Naresh Jain 27
  82. 82. What is the Role of a Tester on Agile Projects? Testers are part of the team Works closely with customers to define acceptance tests for each story Licensed Under Creative Commons by Naresh Jain 27
  83. 83. What is the Role of a Tester on Agile Projects? Testers are part of the team Works closely with customers to define acceptance tests for each story Tests each story as it is complete Licensed Under Creative Commons by Naresh Jain 27
  84. 84. What is the Role of a Tester on Agile Projects? Testers are part of the team Works closely with customers to define acceptance tests for each story Tests each story as it is complete Practices pair testing Licensed Under Creative Commons by Naresh Jain 27
  85. 85. What is the Role of a Tester on Agile Projects? Testers are part of the team Works closely with customers to define acceptance tests for each story Tests each story as it is complete Practices pair testing Provides continuous feedback to the team Licensed Under Creative Commons by Naresh Jain 27
  86. 86. What is the Role of a Tester on Agile Projects? Testers are part of the team Works closely with customers to define acceptance tests for each story Tests each story as it is complete Practices pair testing Provides continuous feedback to the team Works closely with developers to do performance and other types of testing Licensed Under Creative Commons by Naresh Jain 27
  87. 87. Challenges Licensed Under Creative Commons by Naresh Jain 28
  88. 88. Challenges Technical Requirements are changing Bringing Testing Forward Moving from Manual Testing to Automation Licensed Under Creative Commons by Naresh Jain 28
  89. 89. Challenges Technical Requirements are changing Bringing Testing Forward Moving from Manual Testing to Automation Organizational Tester/Developer roles are blurred Dev/Test Teams might be separate Everyone has not bought into agile practices Licensed Under Creative Commons by Naresh Jain 28
  90. 90. Challenges Technical Requirements are changing Bringing Testing Forward Moving from Manual Testing to Automation Organizational Tester/Developer roles are blurred Dev/Test Teams might be separate Everyone has not bought into agile practices People Licensed Under Creative Commons by Naresh Jain 28
  91. 91. References Agile/QA Testing - Elisabeth Hendrickson quot;Agile Testing Directionsquot; - Brian Marick Beck, K. (1999). Extreme Programming Explained: Embrace Change. Addison-Wesley. Cockburn, A. (2004). Crystal Clear: A Human- Powered Methodology for Small Teams. Crispin, L., & House, T. (2002). Testing Extreme Programming. Addison- Wesley. Poppendieck, M. & Poppendieck, T. (2003). Lean Software Development. Addison-Wesley. Schwaber, K. & Beedle, M. (2001). Agile Software Development with SCRUM. Prentice Hall. http://www.extremeprogramming.org Licensed Under Creative Commons by Naresh Jain 29

×