Lets be Agile in Testing!!!
Over the years the demand is growing for the team be operating in Agile fashion and with Agile Testing methods almost at every project location. Project manager wants model or prototype built quickly and testing to be performed in an iterative manner. Obviously, there are advantages of this iterative short cycle testing & the benefits are enormous.
Agile testing method focuses on an incremental, short term deliveries that allows frequent review responses & continuous feedback mechanism. Last week we have seen how Agile mindset helps in project execution, various roles and terms associated with it. In this blog we are going to see how a testing team performs testing using agile methodology. The quintessential difference is that the testing is not done during only one phase, but testing is done iteratively with every release of the software or the product. This way of testing early and repetitively ensures minimal damage and risk towards the end of project Everyone would have seen the classic curve of time vs cost when defect is identified & cost of fixing it. In Agile approach this is exactly the area that testers can best tackle for you. For them to achieve this project manager and project teams must have an agile mindset.
Let’s see how exactly an agile tester can contribute and participate effectively in an agile project environment.
- Attend Sprint Planning Session.
As a member of Agile Team, quality leads and tester should always attend Sprint Planning sessions. This helps to ensure that they are in sync with the development team from the start and allow QL to identify and highlight possible problem arrears and risk as early as possible. During the Sprint Planning, developers estimate the effort it will take them to write code, similar way testers should estimate effort required for testing code during planning session. So, resulting in a win-win situation for developers and testers both.
- Attend Daily Stand-up meeting.
QA Tester should attend daily stand up meeting with the developers, Scrum Master and the Product Owner. This promotes a strong collaboration amongst the team members and a sense of one-team prevails. Based on the updates received from the Developers, Business Analysis and Testers, product owner stays up to date with how the sprint is going on and teams are able to plan their workload efficiently. In case, if the tester has a blocker, they can bring it up in the daily stand-up meeting and update every team member on known issue which in turn allow developers to speed up testing progress and plan their workload.
- Don’t wait to report bugs, report it immediately & frequently throughout the Sprints:
This is very important, in order to deliver high quality of software in a short period of time your team needs to work efficiently. Any issue that is found during sprint must be reported immediately in the same Sprint. Clubbing all the incidents and reporting only at the end does not help in agile setup. If this happens then closing the sprint becomes difficult and makes it ineffective, given that it is a time boxed activity. By continuous integration of testing and development, it allows both the teams to work together and resolve their issue faster and this help in leading to higher quality of results.
- Be an active participant of Sprint Demo
At the end of each Sprint, tester and developer teams demonstrate the product features that are developed to the product owner and other stakeholders. Any feedback has been received related to look and feels & other features that is incorporated on immediate effects. This help to deliver the product with high quality customer satisfaction and meet the business requirement.
- Document the test cases
Although in agile project where documentation is minimum, due to frequent requirement changes, testing team cannot afford to skip necessary documentation. Documentation is very important for QA. Execution for test cases & pass logs is the proof of successful testing and is enquired to be documented at various levels. This becomes useful for Bank internal or external audit requirements. This also covers the scenarios where a person is replaced by another one.
- Attend Sprint retrospectives
At the end of each sprint, team needs to discuss and provide review comments about what went well & what did not work during the sprint. This helps to improve in future sprint planning and execution. Sprint retrospective is the opportunity to define weaknesses and determine solutions for them. QA need to be involve in these discussions for any concerns that needs to be addressed before the next Sprint can start.
There are certain cautionary warnings that must be taken care during the agile testing:
- Avoid delays in delivering a story point. This will have cascading effects on QA, testing and eventually in achieving the sprint goal.
- The scope and vision must be clear for a sprint. Any changes identified during the sprint should be parked & then incorporated in the next sprint. There is always a temptation to include everything in the on-going sprint. This approach can prove counterproductive and losing the sprint altogether. Hence must be avoided.
- Try to avoid falling in a trap of using Agile as an excuse for missing documents. Agile does not mean no documentation; bust it means minimal documentation that is essential. Ever increasing scope and improvement feature, just because it is agile project one should not keep adding features, wish lists and ideas to the existing project. There must a definite start and an end. Otherwise the project can become an eternal agile project.
The contribution of agile testers in various ways listed above, results in multiple benefits such as:
- Improvement in successive Sprints: By producing frequent builds and conducting testing and reviews in an iterative model, there is an opportunity to fix at every instance. Thus, early detection and fixes result in improvement of product over successive Sprints.
- Early Prototype: Everyone gets to see how the end product will look like, any changes can be quickly incorporated.
- One Team Approach: Due to daily scrums and frequent interactions the team develops a truly one-team bond that delivers better and faster.
- Working software: Getting a working software is the Key. Planning and building for months resulting in an inadequate software is the nightmare for any project team. This risk is very efficiently handle due to agile testing approach
Knowing all these warnings signs & benefits, project teams reap the benefit of successful product as end result. The It is flexible, quick to see results, quick to incorporate and implement changes. Minimal essential documentation and high-quality software / product output. If we compare these things with a traditional approach one can easily see the immense benefits. So, let’s get going and Be Agile!