28
University of Southern California Center for Systems and Software Engineering Integrate Agile Testing into the Process CS 577b Software Engineering II Supannika Koolmanojwong

Integrate Agile Testing into the Process

  • Upload
    haines

  • View
    67

  • Download
    0

Embed Size (px)

DESCRIPTION

Integrate Agile Testing into the Process. CS 577b Software Engineering II Supannika Koolmanojwong. Outline. How to integrate agile concept in testing Definition of Done Acceptance Criteria HW 1. Agile Testing Practices. TDD Pair Programming Refactoring Continuous integration. - PowerPoint PPT Presentation

Citation preview

Page 1: Integrate Agile Testing into the Process

University of Southern California

Center for Systems and Software Engineering

Integrate Agile Testing into the ProcessCS 577b Software Engineering II

Supannika Koolmanojwong

Page 2: Integrate Agile Testing into the Process

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

Page 3: Integrate Agile Testing into the Process

University of Southern California

Center for Systems and Software Engineering

Agile Testing Practices

• TDD• Pair Programming• Refactoring• Continuous integration

3

Page 4: Integrate Agile Testing into the Process

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)

Page 5: Integrate Agile Testing into the Process

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)

Page 6: Integrate Agile Testing into the Process

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)

Page 7: Integrate Agile Testing into the Process

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)

Page 8: Integrate Agile Testing into the Process

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

Page 9: Integrate Agile Testing into the Process

University of Southern California

Center for Systems and Software Engineering

9Lisa Hendrickson: ttp://testobsessed.com/wp-content/uploads/2011/04/AgileTestingOverview.pdf

Page 10: Integrate Agile Testing into the Process

University of Southern California

Center for Systems and Software Engineering

10Lisa Hendrickson: ttp://testobsessed.com/wp-content/uploads/2011/04/AgileTestingOverview.pdf

Page 11: Integrate Agile Testing into the Process

University of Southern California

Center for Systems and Software Engineering

11Lisa Hendrickson: ttp://testobsessed.com/wp-content/uploads/2011/04/AgileTestingOverview.pdf

Page 12: Integrate Agile Testing into the Process

University of Southern California

Center for Systems and Software Engineering

12Lisa Hendrickson: ttp://testobsessed.com/wp-content/uploads/2011/04/AgileTestingOverview.pdf

Page 13: Integrate Agile Testing into the Process

University of Southern California

Center for Systems and Software Engineering

13Lisa Hendrickson: ttp://testobsessed.com/wp-content/uploads/2011/04/AgileTestingOverview.pdf

Page 14: Integrate Agile Testing into the Process

University of Southern California

Center for Systems and Software Engineering

14Lisa Hendrickson: ttp://testobsessed.com/wp-content/uploads/2011/04/AgileTestingOverview.pdf

Page 15: Integrate Agile Testing into the Process

University of Southern California

Center for Systems and Software Engineering

15Lisa Hendrickson: ttp://testobsessed.com/wp-content/uploads/2011/04/AgileTestingOverview.pdf

Page 16: Integrate Agile Testing into the Process

University of Southern California

Center for Systems and Software Engineering

16Lisa Hendrickson: ttp://testobsessed.com/wp-content/uploads/2011/04/AgileTestingOverview.pdf

Page 17: Integrate Agile Testing into the Process

University of Southern California

Center for Systems and Software Engineering

17Lisa Hendrickson: ttp://testobsessed.com/wp-content/uploads/2011/04/AgileTestingOverview.pdf

Page 18: Integrate Agile Testing into the Process

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

Page 19: Integrate Agile Testing into the Process

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

Page 20: Integrate Agile Testing into the Process

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/

Page 21: Integrate Agile Testing into the Process

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/

Page 22: Integrate Agile Testing into the Process

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/

Page 23: Integrate Agile Testing into the Process

University of Southern California

Center for Systems and Software Engineering

23http://www.scrumalliance.org/articles/106-definition-of-done-a-reference

Page 24: Integrate Agile Testing into the Process

University of Southern California

Center for Systems and Software Engineering

Acceptance Criteria

24http://nomad8.com/acceptance_criteria/

Page 25: Integrate Agile Testing into the Process

University of Southern California

Center for Systems and Software Engineering

Acceptance Criteria

25http://nomad8.com/acceptance_criteria/

Page 26: Integrate Agile Testing into the Process

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

Page 27: Integrate Agile Testing into the Process

University of Southern California

Center for Systems and Software Engineering

Example of a Test Case

27

Page 28: Integrate Agile Testing into the Process

University of Southern California

Center for Systems and Software Engineering

Example of test procedure

28