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

QA in Agile

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