How early can you start thinking about quality (testing) in Agile and how QA can help in each phase?
Many folks think that testing is something that is being performed after the programming is done or it is something that occurs as an after-the-fact activity. Instead, testing is an activity that should be performed at every stage of the development process because it improves quality and quality can be applied at any stage or process anywhere.
In Agile it can be applied to better streamline or improve a process, make a process less error prune, reducing number of assumptions and dependencies, having fewer open questions, making sure we have in depth analysis and design documents so that everybody fully able to understand what is being delivered, and creating complete/compact deliverable user stories and requirements etc.
Now we’ll investigate some of processes/stages of Agile and see how QA can help improve quality
1. Grooming Meetings/User story creation stage
When Product Owner create user stories he/she will conduct grooming meeting where all high-level details of the user story content will be discussed. Team will discuss whether it’s possible or not, risks involved, any dependency that need to be resolved, any road blocks, open questions, assumptions, design documents etc. Quality team can help in this process
- By identifying in depth positive and negative scenarios that could be potential risk to final delivery
- Can share existing experience related to the user story so that team is aware and prepare to handle upcoming situation.
- Can ask team how to test all possible scenarios which may raise additional critical questions
- Can ask questions about how to get/prepare test data because if test data is not available there is no way user story can be fully tested hence less confidence in final product delivery
- Can help identify if there is load and performance testing requirement as final product must be able to handle max possible user loads with optimal performance.
2. Planning stage
In release planning user stories are almost ready to be worked on. Team usually go through each criterion and discuss development strategy, design documents, assumptions, potential risks and any open questions in depth. Quality representatives can play important role by asking quality related test case questions, coming up with in depth scenarios, test data questions etc because sometime teams don’t know exactly know how to test or what type of data needed. Having testing related discussions helps a lot and raise critical questions and sometime change the acceptance criteria of the user story. Just to point out that in grooming meetings discussions happened at a higher level so release planning is where things are discussed in depth. Automation tester can ask question if it’s feasible to automate this feature or not. Load and performance testing requirements can be discussed in detail.
3. Sprint stage
One major purpose of daily stand up is to go through progress and status of sprint tasks and if there are any road blocks. This is another important stage where quality related stuff can be discussed, and decision can be made quickly without waiting until the end of the sprint. For example, Let’s say we had assumption that someone will provide data for specific testing scenarios and found out that he/she can’t. Teams can come up with second plan. Or while working on sprint tasks tester thought of some new critical scenarios and team will build the product by keeping those scenarios in mind will eventually increase product quality.