The traditional “waterfall” methodology approach to software development typically has little or no QA involvement until coding is complete. At this point, the QA is given a requirements document or a briefing that is used as a basis for test planning and execution.
The QA role in a Scrum Agile development environment is not just preparing and planning the test strategy, writing / executing test cases and reporting bugs. A Scrum team is by its nature cross-functional and self-organising; developers, business analysts, QAs et al all work together, finding the best solutions for the tasks in hand.
Building the Stories
During the planning process, QAs interact with Scrum Masters, Business Analysts (BAs) and product owners, to help clarify and refine business requirements and manage expectations with regards to the impact of testing requirements on available resources. The QA challenges assumptions and contributes towards acceptance test cases and criteria at this time. This is in addition to the creation of test cases based on user requirements, which is the mainstay of their role.
Planning is a crucial stage for each Scrum team’s “sprints”. Input from QAs during planning, when user stories are estimated, can help the team as a whole think outside of basic user journeys. This produces more realistic estimates, since most possibilities should have been considered, including complex and negative test cases outside of the so-called “happy path”.
Collaboration and Fast Feedback
QAs provide feedback from their testing to the Product Owner, working closely with them, BAs and developers to further refine and develop user stories beyond planning and into the sprints themselves. QAs and developers also work together, improving the quality of the project by collaborating in the development of test cases and acceptance criteria. The more these roles work together, the greater the shared clarity will be, and can reduce the questions and doubts developers encounter during coding time.
Teams using a traditional Waterfall methodology have a build-test-fix cycle which is needlessly repetitive, and produces extra and potentially time-wasting work for the team. This is much simpler in Scrum, with the collaboration alluded to above producing efficiency and time savings for the whole team, a shared responsibility for getting the work completed, and improved sprint velocity.
Analyze User Requirements
QAs are generally good at understanding the business requirements from the user’s perspective since they often use the application as end users would. QAs therefore provide useful feedback to the team based on their testing experiences, and can help the team better understand the application from the end user’s point of view.
On a Scrum project with its small sprint cycles, a QA has less time to test the application as a whole. During each sprint, a QA must perform full testing of the new features being added as well as full regression testing for all the previously implemented functionality. This grows significantly with each passing sprint.
Automated tests can be helpful with regression. Each time there is a new build tests can be executed and provide immediate feedback as to whether the new features are working correctly. Automation is not the sole answer however, as the human element of user journeys is not tested, but it can help detect defects early and give QAs more time to explore new features being developed.
QAs still write tests and report bugs, but they also support many other roles and responsibilities on the team. They are an important part of the team and are involved in the project right from the very beginning.
Experience teaches the QA what to look out for in terms of usability pitfalls. Their closeness to the user experience enables the provision of valuable feedback during the testing itself, and also during the planning when stories are created and refined for the sprint. QAs ask questions rather than merely following a brief, acting as the team’s “quality conscience”.
The key to successful Agile Scrum development is cooperation between the team members, each of which contributes to the project’s success. The QA is integral to this process from start to finish.