QA в Agile

897 views
797 views

Published on

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

No Downloads
Views
Total views
897
On SlideShare
0
From Embeds
0
Number of Embeds
10
Actions
Shares
0
Downloads
13
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

QA в Agile

  1. 2. QA in Agile QA Driven Development Alimenkou Mikalai 28.06.2008
  2. 3. QA Activities <ul><li>Required </li></ul><ul><ul><li>Regression testing </li></ul></ul><ul><ul><li>Iteration/release tasks testing </li></ul></ul><ul><li>Optional </li></ul><ul><ul><li>Release/demo management </li></ul></ul><ul><ul><li>Documentation management </li></ul></ul>
  3. 4. Regression Testing <ul><li>Goals </li></ul><ul><ul><li>Verify existing functionality </li></ul></ul><ul><ul><li>Check new integration points </li></ul></ul><ul><ul><li>Show and monitor project status </li></ul></ul><ul><ul><li>Check existing documentation </li></ul></ul>
  4. 5. Regression Testing <ul><li>Issues </li></ul><ul><ul><li>Functionality is growing too quickly </li></ul></ul><ul><ul><li>Not enough QA engineers </li></ul></ul><ul><ul><li>Too much manual work </li></ul></ul><ul><ul><li>Setup and configuration issues </li></ul></ul><ul><ul><li>Testing without plan/structure </li></ul></ul>
  5. 6. Iteration/Release Tasks Testing <ul><li>Goals </li></ul><ul><ul><li>Check new functionality </li></ul></ul><ul><ul><li>Show iteration/release status </li></ul></ul><ul><ul><li>Update/create documentation </li></ul></ul>
  6. 7. Iteration/Release Tasks Testing <ul><li>Issues </li></ul><ul><ul><li>Too many bugs in implemented tasks </li></ul></ul><ul><ul><li>Not enough time to the end of iteration </li></ul></ul><ul><ul><li>Regression testing is not finished </li></ul></ul><ul><ul><li>Tasks are too large </li></ul></ul><ul><ul><li>Long feedback/bug-fixing loop </li></ul></ul><ul><ul><li>QA work is not included in ‘DONE’ criteria </li></ul></ul><ul><ul><li>Switching of environments </li></ul></ul>
  7. 8. Release/Demo Management <ul><li>Issues </li></ul><ul><ul><li>Full regression is not finished </li></ul></ul><ul><ul><li>Bug fixes produces new bugs </li></ul></ul><ul><ul><li>Release/demo is prepared in the next iteration </li></ul></ul>
  8. 9. Documentation Management <ul><li>Issues </li></ul><ul><ul><li>No documentation at all </li></ul></ul><ul><ul><li>Documentation is hard to maintain </li></ul></ul><ul><ul><li>Too much time is spend for documentation </li></ul></ul><ul><ul><li>Documentation is not up to date </li></ul></ul><ul><ul><li>Documentation is not shared </li></ul></ul>
  9. 10. Common Issues <ul><li>QA team is not collocated with developers </li></ul><ul><li>QA team members are part-time </li></ul><ul><li>Developers defend their code from QA </li></ul><ul><li>QA team don’t share project interests </li></ul><ul><li>QA tools minimize face-to-face interaction </li></ul><ul><li>Lack of respect for QA work </li></ul><ul><li>QA team is not enough skilled </li></ul>
  10. 11. QA Iteration 1 2 4 3 6 5 8 9 7 10 days Phase I: Planning Phase II: Automated Acceptance Testing Phase III: Stories Testing Phase IV: Regression Testing Phase V: Demo
  11. 12. Phase I: Planning <ul><li>Goals </li></ul><ul><ul><li>Complete understanding of sprint scope </li></ul></ul><ul><ul><li>Prioritization of tasks in the sprint </li></ul></ul><ul><ul><li>Additional point of view on stories </li></ul></ul><ul><ul><li>Increasing team collaboration </li></ul></ul><ul><li>Best practices </li></ul><ul><ul><li>Full QA team take part in planning </li></ul></ul><ul><ul><li>QA team members estimate stories </li></ul></ul><ul><ul><li>Some time at the end of iteration is reserved </li></ul></ul><ul><ul><li>QA estimations are used to order tasks </li></ul></ul><ul><ul><li>Both manual and automated tests are estimated </li></ul></ul>
  12. 13. Phase II: Acceptance Testing <ul><li>Goals </li></ul><ul><ul><li>Document new functionality </li></ul></ul><ul><ul><li>Prepare tests for ATDD </li></ul></ul><ul><ul><li>Decrease time for regression testing </li></ul></ul><ul><ul><li>Automate ‘DONE’ criteria </li></ul></ul><ul><li>Best practices </li></ul><ul><ul><li>Don’t use too technical tools </li></ul></ul><ul><ul><li>QA writes test, developer writes fixture </li></ul></ul><ul><ul><li>Test stories at the top of sprint backlog </li></ul></ul><ul><ul><li>Organize tests as documentation </li></ul></ul><ul><ul><li>Developers help QA to prepare tests </li></ul></ul><ul><ul><li>Completely automated testing environment </li></ul></ul>
  13. 14. Phase III: Stories Testing <ul><li>Goals </li></ul><ul><ul><li>Complete ‘DONE’ criteria </li></ul></ul><ul><ul><li>Integrate and check new functionality </li></ul></ul><ul><ul><li>Early preparation to the demo </li></ul></ul><ul><li>Best practices </li></ul><ul><ul><li>Use branches for large tasks or demo branch </li></ul></ul><ul><ul><li>Reduce amount of manual testing </li></ul></ul><ul><ul><li>Start story testing as soon as possible </li></ul></ul><ul><ul><li>Update test suite for bugs and issues </li></ul></ul><ul><ul><li>Completely automated testing environment </li></ul></ul><ul><ul><li>Developers often integrate code on local machines </li></ul></ul>
  14. 15. Phase IV: Regression Testing <ul><li>Goals </li></ul><ul><ul><li>Check integration of all implemented stories </li></ul></ul><ul><ul><li>Preparation to the demo </li></ul></ul><ul><ul><li>Prepare sprint status </li></ul></ul><ul><li>Best practices </li></ul><ul><ul><li>Division of automated tests in suites </li></ul></ul><ul><ul><li>Easy and short stories at the end of sprint </li></ul></ul><ul><ul><li>Buffer for team internal tasks </li></ul></ul><ul><ul><li>Developers help to perform testing </li></ul></ul><ul><ul><li>Some kind of code freezing </li></ul></ul><ul><ul><li>Categorization of bugs and issues </li></ul></ul><ul><ul><li>Update project testing metrics </li></ul></ul>
  15. 16. Phase V: Demo <ul><li>Goals </li></ul><ul><ul><li>Demonstrate implemented functionality </li></ul></ul><ul><ul><li>External demo </li></ul></ul><ul><ul><li>Share project knowledge and experience </li></ul></ul><ul><li>Best practices </li></ul><ul><ul><li>Prepare to the demo during sprint </li></ul></ul><ul><ul><li>Include demo preparation in ‘DONE’ criteria </li></ul></ul><ul><ul><li>Automated environment for demo </li></ul></ul><ul><ul><li>All team members present at the demo </li></ul></ul><ul><ul><li>Demo is driven by QA team member </li></ul></ul><ul><ul><li>Fixed time and place for sprint demo </li></ul></ul>
  16. 17. Phase VI: Retrospective <ul><li>Goals </li></ul><ul><ul><li>Share knowledge about QA process </li></ul></ul><ul><ul><li>Analyze and improve QA process </li></ul></ul><ul><ul><li>Increase integration with developers team </li></ul></ul><ul><ul><li>Analyze team structure </li></ul></ul><ul><li>Best practices </li></ul><ul><ul><li>Use external facilitator </li></ul></ul><ul><ul><li>Members of other teams present </li></ul></ul><ul><ul><li>Gather and share project metrics </li></ul></ul><ul><ul><li>Use experience of developers team in retrospectives </li></ul></ul>
  17. 18. Best Practices <ul><li>Use engineer practices </li></ul><ul><ul><li>Unit testing </li></ul></ul><ul><ul><li>TDD </li></ul></ul><ul><ul><li>ATDD </li></ul></ul><ul><ul><li>Continuous integration </li></ul></ul><ul><ul><li>Code review </li></ul></ul><ul><ul><li>Pair programming </li></ul></ul><ul><ul><li>Static analysis </li></ul></ul>
  18. 19. Best Practices <ul><li>QA team is collocated with developers </li></ul><ul><li>Product owner works with QA for AT </li></ul><ul><li>At least 1 QA for each 2 developers </li></ul><ul><li>Increase QA team incrementally </li></ul><ul><li>Developers help with all technical stuff </li></ul><ul><li>Use short internal iteration before release </li></ul><ul><li>Calculate and publish testing metrics </li></ul><ul><li>Provide traceability for tests </li></ul>

×