Today, software development happens on the go – with faster iterations and lesser time to market. To cope up with this lean development style, testing too has to adopt an agile approach, where testing happens in sprints, focus is on bug fixes and not documentation, release cycles are shorter, and development and testing teams are in complete sync.
Testing in the Agile World
- The manager prepares the business requirements and the software development and testing teams review it to plan their activities.
- Development and testing teams collaborate to create user stories, which are reviewed by the manager as well. This ensures the stories are complete, testable and define the acceptance criteria up-front.
- In an ideal situation, test cases are made first and development is done with those test cases in mind. However, if lack of time prevents this style of software development then development and test case creation should happen in parallel.
- Developers implement a set of code in a specific timeframe known as sprints and the testing team carries out testing throughout the construction. This cycle continues after every sprint and is known as iterative process.
- Before the application is deployed, testers can focus on major test items such as integration, usability, and system testing.
- After production, reported issues are explored and the encountered defects are reported and resolved.
Testing Strategies Using Agile:
Testing Strategies Across Sprints –
Typically, functional, UI, compatibility tests are specific to sprints and associated with features that are developed in each sprint. In comparison, performance and security tests may run across sprints. Smoke tests after every build reduce iterations significantly.
Automation of Regression Testing –
With continuous iterations, more and more functionality is added. Therefore testing early and continuously requires iterative testing activities to be automated and integrated into the development process.
Maintenance of Regression Suite –
During exploratory testing, it is necessary to analyze defects by risks, features, and impact. The key focus is to drill those areas where defects are mostly found. Therefore, test cases should be added in the regression test suite so that these test cases are executed in the next iterative cycle.
With the overlapping of tasks across increments and bug handling, one of the challenges for the development team is to take corrective steps for the defects found in testing, where work on current increment needs to be begun. Work can quickly pile up for the development team if the testing team finds many bugs to be addressed. This necessitates re-planning and in some instances, having to cut back on some features to accommodate bug fixes. For the testing team this implies that bugs that are not showstoppers but still important, may get addressed much later on in the cycle. Replanning, active monitoring, and control can help ensure that the teams stay on track and meet deadlines, while maintaining desired quality.
Benefits of Adopting Agile QA
By practicing agile testing methodology, teams can experience the following benefits:
- Bugs are detected at an early stage and the showstopper defects are addressed early in the lifecycle.
- Progress of testing is transparent at all iterative levels to the development team and the management.
- Bottlenecks faced are discussed in each review meeting and feasible solutions are devised to get over them.
- Greater interaction between various teams and the client ensure more productivity and lesser costs.
- Emerging requirements can be factored into the development schedule as appropriate with the impact and trade-off decisions clearly understood
- Better communication and enhanced focus on quality ensure that the product release is on time, with desired quality or even better in some cases.
Agile methods introduce a paradigm shift in software development and quality testing. Shorter development cycles, bugs being fixed in parallel and blurring roles of traditional development and testing teams help create products, which are of premium quality, produced in defined timelines with minimum heartburn.