Testing in Agile Projects

23,133 views

Published on

Presentation delivered by Amarender Yogender at the June 09 Knowledge sharing session hosted at Oracle India

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

No Downloads
Views
Total views
23,133
On SlideShare
0
From Embeds
0
Number of Embeds
36
Actions
Shares
0
Downloads
1,248
Comments
0
Likes
17
Embeds 0
No embeds

No notes for slide

Testing in Agile Projects

  1. 1. The Agile (Scrum) Process [email_address]
  2. 2. Activities in Agile testing Changing role of tester Key success factors Q&A Agile development process
  3. 3. Activities in Agile testing Changing role of tester Key success factors Q&A Agile development process
  4. 4. Traditional Development <ul><ul><li>Requires knowing everything upfront </li></ul></ul><ul><ul><li>Fixed requirements, estimated time and resources </li></ul></ul><ul><ul><li>Freezing requirements and controlling changes from early stage </li></ul></ul><ul><ul><li>Status measured at life cycle phases </li></ul></ul><ul><ul><li>Working software delivered only at end of development cycle </li></ul></ul>
  5. 5. Traditional Model Limitations <ul><ul><li>Impossible to anticipate and estimate all tasks early in big projects </li></ul></ul><ul><ul><li>Difficult to define requirements precisely without customers getting Hands On feel of product </li></ul></ul><ul><ul><li>Changes later in the development cycle could be expensive to handle </li></ul></ul><ul><ul><li>Different roles engaged in different phases thereby losing continuity across development cycle </li></ul></ul><ul><ul><li>Working software delivered only at end of cycle </li></ul></ul>
  6. 6. The Agile Manifesto Source: www.agilemanifesto.org Process and tools Individuals and interactions over Following a plan Responding to change over Comprehensive documentation Working software over Contract negotiation Customer collaboration over
  7. 7. Popular Agile Methodologies <ul><ul><li>Scrum </li></ul></ul><ul><ul><ul><li>Project Management framework </li></ul></ul></ul><ul><ul><li>Crystal Clear </li></ul></ul><ul><ul><ul><li>Focus on people and not processes or artifacts </li></ul></ul></ul><ul><ul><li>Extreme Programming </li></ul></ul><ul><ul><ul><li>Dev centric, focus on reducing cost of change </li></ul></ul></ul><ul><ul><li>Feature Driven Development </li></ul></ul><ul><ul><ul><li>Dev based on client valued functionality </li></ul></ul></ul><ul><ul><li>Lean </li></ul></ul><ul><ul><ul><li>Applying lean manufacturing practices to SW engg. </li></ul></ul></ul><ul><li>We would explore Scrum in detail today </li></ul>
  8. 8. Scrum
  9. 9. Scrum Characteristics <ul><ul><li>Product progresses in a series of month-long “sprints” </li></ul></ul><ul><ul><li>Requirements are captured as items in a list of “product backlog” </li></ul></ul><ul><ul><li>No specific engineering practices prescribed </li></ul></ul><ul><ul><li>Uses generative rules to create an agile environment for delivering projects </li></ul></ul><ul><ul><li>Self-organizing teams </li></ul></ul>
  10. 10. Sprints <ul><ul><li>Scrum projects make progress in a series of “sprints” </li></ul></ul><ul><ul><ul><li>Analogous to Extreme Programming iterations </li></ul></ul></ul><ul><ul><li>Typical duration is 2–4 weeks or a calendar month at most </li></ul></ul><ul><ul><li>A constant duration leads to a better rhythm </li></ul></ul><ul><ul><li>Product is designed, coded, and tested during the sprint </li></ul></ul>
  11. 11. Scrum framework <ul><ul><li>Product owner </li></ul></ul><ul><ul><li>ScrumMaster </li></ul></ul><ul><ul><li>Team </li></ul></ul>Roles <ul><ul><li>Sprint planning </li></ul></ul><ul><ul><li>Sprint review </li></ul></ul><ul><ul><li>Sprint retrospective </li></ul></ul><ul><ul><li>Daily scrum meeting </li></ul></ul>Events <ul><ul><li>Product backlog </li></ul></ul><ul><ul><li>Sprint backlog </li></ul></ul><ul><ul><li>Burndown charts </li></ul></ul>Artifacts
  12. 12. Scrum framework <ul><ul><li>Sprint planning </li></ul></ul><ul><ul><li>Sprint review </li></ul></ul><ul><ul><li>Sprint retrospective </li></ul></ul><ul><ul><li>Daily scrum meeting </li></ul></ul>Ceremonies <ul><ul><li>Product backlog </li></ul></ul><ul><ul><li>Sprint backlog </li></ul></ul><ul><ul><li>Burndown charts </li></ul></ul>Artifacts <ul><ul><li>Product owner </li></ul></ul><ul><ul><li>ScrumMaster </li></ul></ul><ul><ul><li>Team </li></ul></ul>Roles
  13. 13. Roles <ul><ul><li>Product Owner </li></ul></ul><ul><ul><ul><ul><li>Defines features and release plans </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Prioritize features every iteration as needed </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Accept or reject work results </li></ul></ul></ul></ul><ul><ul><li>Scrum Master </li></ul></ul><ul><ul><ul><ul><li>Responsible for enacting Scrum values and practices </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Ensure that the team is fully functional and productive </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Enable close cooperation across all roles and functions </li></ul></ul></ul></ul><ul><ul><li>Team </li></ul></ul><ul><ul><ul><ul><li>Cross-functional:Programmers, testers, user experience designers, etc. </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Members should be full-time </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Teams are self-organizing </li></ul></ul></ul></ul>
  14. 14. Scrum framework <ul><ul><li>Product owner </li></ul></ul><ul><ul><li>ScrumMaster </li></ul></ul><ul><ul><li>Team </li></ul></ul>Roles <ul><ul><li>Product backlog </li></ul></ul><ul><ul><li>Sprint backlog </li></ul></ul><ul><ul><li>Burndown charts </li></ul></ul>Artifacts <ul><ul><li>Sprint planning </li></ul></ul><ul><ul><li>Sprint review </li></ul></ul><ul><ul><li>Sprint retrospective </li></ul></ul><ul><ul><li>Daily scrum meeting </li></ul></ul>Events
  15. 15. Sprint planning meeting Sprint prioritization <ul><ul><li>Analyze and evaluate product backlog </li></ul></ul><ul><ul><li>Select sprint goal </li></ul></ul>Sprint planning <ul><ul><li>Decide how to achieve sprint goal (design) </li></ul></ul><ul><ul><li>Create sprint backlog (tasks) from product backlog items (user stories / features) </li></ul></ul><ul><ul><li>Estimate sprint backlog in hours </li></ul></ul>Sprint goal Sprint backlog Business conditions Team capacity Product backlog Technology Current product Sprint planning
  16. 16. Sprint Events <ul><ul><li>Daily scrum meeting </li></ul></ul><ul><ul><ul><ul><li>Daily review meeting for 10-15 mins </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Status review and not for problem solving </li></ul></ul></ul></ul><ul><ul><ul><ul><li>All sprint team members participate </li></ul></ul></ul></ul><ul><ul><li>Sprint review </li></ul></ul><ul><ul><ul><ul><li>Demo of new features to customer/product owner </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Team presents work accomplished during the sprint </li></ul></ul></ul></ul><ul><ul><ul><ul><li>All major stakeholders participate </li></ul></ul></ul></ul><ul><ul><li>Sprint retrospective </li></ul></ul><ul><ul><ul><ul><li>Periodic post mortem to review what's working and what's not </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Done after every sprint </li></ul></ul></ul></ul><ul><ul><ul><ul><li>All major stakeholders participate </li></ul></ul></ul></ul>
  17. 17. Scrum framework <ul><ul><li>Product owner </li></ul></ul><ul><ul><li>ScrumMaster </li></ul></ul><ul><ul><li>Team </li></ul></ul>Roles <ul><ul><li>Sprint planning </li></ul></ul><ul><ul><li>Sprint review </li></ul></ul><ul><ul><li>Sprint retrospective </li></ul></ul><ul><ul><li>Daily scrum meeting </li></ul></ul>Ceremonies <ul><ul><li>Product backlog </li></ul></ul><ul><ul><li>Sprint backlog </li></ul></ul><ul><ul><li>Burndown charts </li></ul></ul>Artifacts
  18. 18. Product backlog <ul><ul><li>A list of all desired work on the project </li></ul></ul><ul><ul><li>Ideally expressed such that each item has value to the users or customers of the product </li></ul></ul><ul><ul><li>Prioritized by the product owner </li></ul></ul><ul><ul><li>Reprioritized at the start of each sprint </li></ul></ul>This is the product backlog
  19. 19. A sample product backlog Estimate
  20. 20. A sprint burndown chart
  21. 21. Activities in Agile testing Changing role of tester Key success factors Q&A Agile development process
  22. 22. QA Activities in Agile Testing <ul><li>Provide effort estimates during release and sprint plan </li></ul><ul><li>Collaborate with business analysts and developers in defining requirements and designs </li></ul><ul><li>Prepare test conditions based on design discussions </li></ul><ul><ul><ul><li>Just in time test cases only for current sprint and not entire project </li></ul></ul></ul><ul><li>Execute test conditions and report issues </li></ul><ul><ul><ul><li>Usually, test driven development </li></ul></ul></ul><ul><li>Automate feature specific test cases </li></ul><ul><li>Report status, impediments in daily standup meetings </li></ul><ul><li>Participate in Sprint review meeting </li></ul>
  23. 23. Activities in Agile testing Changing role of tester Key success factors Q&A Agile development process
  24. 24. Changing role of tester Waterfall Agile Work in homogeneous team of testing pro ’ s Work in cross functional team of biz analysts, developers, testers etc. Role predominantly involves testing Expanded role involves design def/review, write/review code and testing Quality Cop: Last line of defense for Software Quality Quality Partner: Quality responsibility of entire sprint team Test cases prepared from well documented req ’ s and designs Test cases prepared from user stories, req & design discussions, minimal documentation. Clearly defined entry and exit criteria for testing phase Testing is collaborative effort with other functions, no phase gates
  25. 25. Changing role of tester Agile Test execution after code complete for project, back loaded Iterative testing by feature and not entire project, evenly spread Waterfall Testing essentially Top Down – Business flows, Integration points and then units Testing essentially Bottom Up – Units, Integration points and then flows Minimal involvement in Unit testing Active participation in unit testing System level Automation test scripts, after code is stabilized Automation from unit testing level, as code is getting built Report progress by testing phase Report progress by Feature complete rather than testing completion
  26. 26. Activities in Agile testing Changing role of tester Key success factors Q&A Agile development process
  27. 27. Key success factors <ul><ul><li>Comfort in incremental and Iterative development </li></ul></ul><ul><ul><ul><li>Test in small packages but do not lose sight of big picture </li></ul></ul></ul><ul><ul><li>Comfortable with speed and just in time delivery </li></ul></ul><ul><ul><li>Design and Coding skills </li></ul></ul><ul><ul><ul><li>At minimum, good analytical and review skills </li></ul></ul></ul><ul><ul><li>Handling Abstraction </li></ul></ul><ul><ul><ul><li>Requirements and designs are evolved rather than assumed to be an input </li></ul></ul></ul>
  28. 28. Key success factors <ul><ul><li>Minimal reliance on documentary support </li></ul></ul><ul><ul><ul><li>Rely on meetings and interactions for requirements and design specifications rather than structured documents </li></ul></ul></ul><ul><ul><li>Interpersonal skills </li></ul></ul><ul><ul><ul><li>Ability to get things done in a group which is self organized </li></ul></ul></ul><ul><ul><li>Communication and Collaboration skills </li></ul></ul><ul><ul><li>Focus on project deliverable and not phase deliverable </li></ul></ul>
  29. 29. Questions ?

×