University of Southern California
Center for Systems and Software Engineering
Integrate Agile Testing into the ProcessCS 577b Software Engineering II
Supannika Koolmanojwong
University of Southern California
Center for Systems and Software Engineering
Outline
• How to integrate agile concept in testing• Definition of Done• Acceptance Criteria• HW 1
2
University of Southern California
Center for Systems and Software Engineering
Agile Testing Practices
• TDD• Pair Programming• Refactoring• Continuous integration
3
University of Southern California
Center for Systems and Software Engineering
Why testing at the end does not work ?
• It is hard to improve the quality of an existing product– Think about legacy system or existing system
• Mistakes continue unnoticed– Finding a needle in haystack
• The state of the project is difficult to gauge– Difficult to estimate test & fix activities of the developed
product• Feedback opportunities are lost• Testing is more likely to be cut
4Ref: Mike Cohn – Succeeding with Agile (2010)
University of Southern California
Center for Systems and Software Engineering
But !!
• “it will take too much time to test continuously. We need to be realistic and acknowledge that it’s better to test every fifth or sixth sprint.”
5
• When you test less often, it takes longer.• Usually these are the cases of manual
testing. Then, you should start introducing automated testing.
Ref: Mike Cohn – Succeeding with Agile (2010)
University of Southern California
Center for Systems and Software Engineering
But !!
• “it’s more efficient to have testers working one sprint behind the programmers.”
6
• If you test one sprint behind, who will you go when you have questions.
• Efficient for programmer or the team?
Ref: Mike Cohn – Succeeding with Agile (2010)
University of Southern California
Center for Systems and Software Engineering
What building in quality looks like?
• The use of good engineering practices• Small hand-offs between programmers and
testers – Programmer and tester talk about which
capability will be added to the product next– Tester creates automated tests, programmers
code– Once both are done, integrate
• Much test activity on the first day of a sprint
7Ref: Mike Cohn – Succeeding with Agile (2010)
University of Southern California
Center for Systems and Software Engineering
Nine principles
• Speed requires discipline• Bad shortcuts short term speed• Agile does not need Quality Police, but the
ones who know acceptance criteria and risks
8Lisa Hendrickson: ttp://testobsessed.com/wp-content/uploads/2011/04/AgileTestingOverview.pdf
University of Southern California
Center for Systems and Software Engineering
9Lisa Hendrickson: ttp://testobsessed.com/wp-content/uploads/2011/04/AgileTestingOverview.pdf
University of Southern California
Center for Systems and Software Engineering
10Lisa Hendrickson: ttp://testobsessed.com/wp-content/uploads/2011/04/AgileTestingOverview.pdf
University of Southern California
Center for Systems and Software Engineering
11Lisa Hendrickson: ttp://testobsessed.com/wp-content/uploads/2011/04/AgileTestingOverview.pdf
University of Southern California
Center for Systems and Software Engineering
12Lisa Hendrickson: ttp://testobsessed.com/wp-content/uploads/2011/04/AgileTestingOverview.pdf
University of Southern California
Center for Systems and Software Engineering
13Lisa Hendrickson: ttp://testobsessed.com/wp-content/uploads/2011/04/AgileTestingOverview.pdf
University of Southern California
Center for Systems and Software Engineering
14Lisa Hendrickson: ttp://testobsessed.com/wp-content/uploads/2011/04/AgileTestingOverview.pdf
University of Southern California
Center for Systems and Software Engineering
15Lisa Hendrickson: ttp://testobsessed.com/wp-content/uploads/2011/04/AgileTestingOverview.pdf
University of Southern California
Center for Systems and Software Engineering
16Lisa Hendrickson: ttp://testobsessed.com/wp-content/uploads/2011/04/AgileTestingOverview.pdf
University of Southern California
Center for Systems and Software Engineering
17Lisa Hendrickson: ttp://testobsessed.com/wp-content/uploads/2011/04/AgileTestingOverview.pdf
University of Southern California
Center for Systems and Software Engineering
Definition of Done
• Checklist of conditions that must be true• Must be ready before a backlog is pulled
into a sprint during sprint planning
18
University of Southern California
Center for Systems and Software Engineering
Sample of DoD
19http://www.scrum-breakfast.com/2012/11/sample-definition-of-done.html
1. Upgrade verified while keeping all user data intact.2. Potentially releasable build available for download 3. Summary of changes updated to include newly implemented features4. Inactive/unimplemented features hidden or greyed out (not executable)5. Unit tests written and green6. Source code committed on server7. Jenkins built version and all tests green8. Code review completed (or pair-programmed)9. How to Demo verified before presentation to Product Owner10. Ok from Product Owner
University of Southern California
Center for Systems and Software Engineering
Sample of DoD
20
1. Code produced (all ‘to do’ items in code completed)2. Code commented, checked in and run against current version in source control3. Peer reviewed (or produced with pair programming) and meeting development
standards4. Builds without errors5. Unit tests written and passing6. Deployed to system test environment and passed system tests7. Passed UAT (User Acceptance Testing) and signed off as meeting requirements8. Any build/deployment/configuration changes
implemented/documented/communicated9. Relevant documentation/diagrams produced and/or updated10. Remaining hours for task set to zero and task closed
http://www.allaboutagile.com/definition-of-done-10-point-checklist/
University of Southern California
Center for Systems and Software Engineering
How to build a definition of done ?
• Brainstorm– What are essential ?
• Identify non-iteration/sprint artifacts– Which one can not be done every iteration?
• Capture impediments– Identify obstacles why a particular artifact will
not be available at the end of the iteration• Commitment
– Get a consensus
21http://www.gettingagile.com/2007/10/05/building-a-definition-of-done/
University of Southern California
Center for Systems and Software Engineering
Things to look at
• Installation build• Pass all automated tests in staging
environment• Sign Off• Pass Audit• Installation Documentation Accepted by
Operations• Release Notes Updated• Training Manuals Updated
22http://www.gettingagile.com/2007/10/05/building-a-definition-of-done/
University of Southern California
Center for Systems and Software Engineering
23http://www.scrumalliance.org/articles/106-definition-of-done-a-reference
University of Southern California
Center for Systems and Software Engineering
Acceptance Criteria
24http://nomad8.com/acceptance_criteria/
University of Southern California
Center for Systems and Software Engineering
Acceptance Criteria
25http://nomad8.com/acceptance_criteria/
University of Southern California
Center for Systems and Software Engineering
HW 1
Based on your project artifacts, distribute user stories among your team members• Pick three different user stories to write
acceptance criteria• Pick one test case to write test procedureNo two team members will have the same user stories or test case.
26
University of Southern California
Center for Systems and Software Engineering
Example of a Test Case
27
University of Southern California
Center for Systems and Software Engineering
Example of test procedure
28