This recent Dilbert comic strip reminded me of a situation when a client was raising cosmetic defect as severity 2.
It is often not clear what a defect is and at what level to raise it at (despite agreed severity descriptions) as my example above shows. And some defects are raised without being related to a requirement. Or defects raised because of a feature being “not user friendly”.
Regardless of the reason and how you label the ‘defect’, I treat all defects the same – it is a piece of work required by the client that needs to be prioritized with other work. So the approach is to put all work (defect, enhancement, new feature etc) into the product backlog. As part of the planning process, the Product Owner will prioritize the items on the backlog for the next iteration and/or release. So if a cosmetic defect is more important (has greater business value) than a new feature, then it should be placed higher so it gets completed first.
Keeping all work in the product backlog, makes planning simpler and helps manage the flow of work. It also ensures the client is in control and be the judge of what is important to their business.
Agile methods have transformed the way we do testing and the role of the tester. Testing up front is a big mind-shift change for testers and management. Agile Testing: A Practical Guide for Testers and Agile Teams provides a good coverage of the issues testers face when they move from waterfall to agile from tools and metrics to mind-set, automation, roles and processes.
Littered throughout the book are “Lisa’s Story” and “Janet’s Story” – small snippets of real life Agile Testing war stories experienced by the authors which give you insight into ways testing was approached in relation to an agile project. There is a good mixture of high level concepts and guidance and lower level details.
The book identifies 7 Key Success Factors for successful agile testing (in order of importance):
- Use the Whole-Team Approach
- Adopt an Agile Testing Mind-Set.
(An agile testing attitude is a proactive, creative, open to new ideas, and willing to take on any task.)
- Automate Regression Testing
- Provide and Obtain Feedback
- Build a Foundation of Core Practices
a. Continuous Integration
b. Test Environment
(Available and one you can control)
c. Manage Technical Debt
d. Working Incrementally
e. Coding and Testing Are Part of the One Process
f. Synergy between Practices
- Collaborate with Customers
- Look at the Big Picture
I think testers new to agile will gain a lot by reading Section 5 – An Iteration in the Life of a Tester (Chapters 15-20) where testers can get a feel for what they would be doing throughout the agile development lifecycle. It explains the steps and activities testers do starting with planning releases and iterations to what happens daily throughout an iteration and then ending the iteration by delivering new features and finding ways for the team to improve the process.
Agile Testing : A Practical Guide for Testers and Agile Teams is the most comprehensive book on agile testing that is currently available. Even if you are not a tester, the book contains some useful information for other team members such as developers.
Building quality-in and Quality Assurance is a culture of an agile team and this book will put a tester on the path of the cultural shift for the better.