280 likes | 486 Views
Seven Deadly Sins of Agile Testing. About me – Brad Swanson. Test. Deliverable. Deliverable. Time to market. Traditional Development. Analyze. Implement. Agile Development. Risk. traditional. Risk. agile. Time. Schedule Confidence. ?. Productivity. ROI. Early to market advantage.
E N D
Test Deliverable Deliverable Time to market Traditional Development Analyze Implement AgileDevelopment
Risk traditional Risk agile Time
ROI Early to market advantage + $ time agile - traditional
Quality traditional Open defects agile Time
Source: Dr. Dobb’s Journal 2008 Agile Adoption Survey http://www.ambysoft.com/surveys/agileFebruary2008.html
Sin #7: Separation of Requirements & Tests Req Spec Tests
Penance • Create an executable specification: Spec == Tests • Use concrete examples to specify requierements • Analysts and Testers become best friends! • Acceptance Test Driven Development (ATDD, BDD) • Cucumber, FIT, Fitnesse, Selenium • Other tools??? • INVEST in user stories • Independent, Negotiable, Valuable, Estimable, Small, Testable • Include testing in the Definition of Done for stories & sprints • Expand your skills
Sin #6: Testing is one sprint behind Code sprint 1 Code sprint 2 Code sprint 3 Code sprint 4 Test Sprint 1 Test Sprint 2 Test Sprint 3 Test Sprint 4
Penance • Include testing in the Definition of Done for stories & sprints • Smaller backlog items & user stories • http://www.richardlawrence.info/2009/10/28/patterns-for-splitting-user-stories/ • Testers define & create tests at the start of each story/sprint • Automated testing / TDD / ATDD / BDD
Penance • Include the appropriate testing quadrants in the Definition of Done for stories, sprints, and releases. • Have a balanced testing plan as part of release planning • Create backlog items for appropriate testing activities, e.g. –ility testing. • Get management commitment to support effort needed to “catch up” on test automation; show the ROI on automation. • Get real users & stakeholders to participate in acceptance testing – early and often.
Penance • Discipline: stop the line whenever the CI build & tests fail • Invest in making automated tests robust • Create incentives for team members to have clean check-ins; friendly competition? • Take metrics: reward people for improving quality and automated test coverage
Penance • Commit as a team to doing TDD and CI • Discipline: keep it going • Expand your skills • Invest in infrastructure, tools, training. Show the ROI. • Keep metrics to measure resulting quality improvements
Sin #2: Separate QA Team Dev Dev Dev Dev Dev Dev QA QA QA QA QA QA
Penance • Form cross-functional teams including QA • Co-located teams: same room • Do a pilot project with QA dedicated to the team; keep metrics to demonstrate the results. • Keep QA fully involved with the team: planning, implementing stories, demos, retrospectives • Whole-team responsibility for product quality
Sin #1: WaterScrumming Analysis sprint Analysis sprint Code sprint Code sprint Code sprint Test sprint Test sprint Test sprint
Penance • Form cross-functional teams including QA & analysts • Include testing in the Definition of Done for stories & sprints • INVEST in user stories • Independent, Negotiable, Valuable, Estimable, Small, Testable • http://www.richardlawrence.info/2009/10/28/patterns-for-splitting-user-stories/ • Testers define & create tests at the start of each story/sprint • TDD / ATDD / BDD • Allow one hardening sprint before release with all hands on deck testing
License agreement • At least part of the material used in this presentation has been licensed as Creative Common, non-commercial, share-alike content (http://creativecommons.org/licenses/by-nc-sa/3.0/de/deed.en) from agile42 GmbH. • As per the license agreement you are entitled to do whatever you like to the material as far as is not contradicting basic principle of the license. On top of that agile42 GmbH kindly asks you to return any change you will make to this material, for validation and sharing purposes.