Agile QA Process: Main Benefits and Principles
As agile software development is becoming more and more popular due to its flexibility and ability to change things right on the spot, other disciplines need to adjust as well. Agile QA has now become a common thing and it enables QA specialists to participate in all stages of the product development and focus on superior quality and user experience.
Since agile QA is not so common as waterfall QA, we decided to explain it and emphasize its benefits and the principles that it is based on.
What is agile QA?
Agile testing is a process of testing software that follows the principles of agile methodology. With agile testing, every iteration will have its own testing phase which differs drastically from the waterfall approach (where testing occurs only after completing the development phase).
Because the main goal of agile methodology is focusing on the quality and functionality of software instead of focusing on documentation, agile testing follows the same approach. During the agile development, the testing is ongoing and is not so thoroughly planned as the QA process during the waterfall development.
The key things to remember about agile QA are: the QA team is cross-functional and self-organized and the testing process is ongoing throughout the development process.
Other principles of agile testing are:
- The QA team constantly provides feedback to the development team which ensures that all requirements are met
- Testing can be performed by developers and BAs alongside the QA team
- The issues and errors, detected by the QA team, are usually fixed within the same iteration which results in higher code quality
- A little amount of documentation
- Testing is performed during the implementation, not after it
The main benefits of agile QA process
Even though some people may claim agile QA as “chaotic”, it actually has several very valuable benefits.
First, it significantly saves time and financial resources. Because the testing process is ongoing and occurs in parallel with the development process, it allows detecting any bugs at an early stage. This, in turn, eliminates the need to redesign the whole piece of a product as it usually occurs during the waterfall development.
Second, as we already said, agile testing and development processes require a little amount of documentation. This helps the team focus more on the quality, functionality, and usability instead of working with endless documents and papers.
Also, agile testing implies receiving immediate feedback from the product users and thus, adjust the product “on the go”. In this way, the product remains in a constant state of improvement and displays high quality upon its completion.
The differences between agile and waterfall testing
In order to better understand the peculiarities of agile QA, we will compare it with waterfall QA side-by-side.
- Process structure: agile QA is less structured compared to waterfall QA
- Scale: agile QA is more suitable for small projects while waterfall QA is applicable to projects of any size
- Changes implementation: in agile testing, changes are implemented during the development process. In waterfall testing, all changes are implemented after completing the development phase.
- Features delivery: the agile method implies that ready features are delivered to the user at the end of every iteration. The waterfall method implies that the user receives a full and completed product.
- User acceptance: is performed at the end of every sprint in agile development and at the end of the project in waterfall development.
- Involvement: in agile, QA specialists are involved in all phases of the project and developers take part in testing. In waterfall, the development and QA teams work separately and focus on separate areas of work.
- Testing method: agile QA relies heavily on automated testing while waterfall QA focuses more on manual testing.
What’s great about agile testing is the fact that all project team works together and every team member knows the project inside out. This helps detect the tiniest issues and deliver seamless quality to the end-users.
Agile test plan and lifecycle
Before looking at the components of an agile test plan and lifecycle, it is important to remember that the test plan will be written and updated for every release. As well note that testing may not be completed by the end of an iteration - and that’s OK in agile testing.
Here are the main phases of the agile QA lifecycle:
- Impact estimation: by gathering feedback from stakeholders and users, QA specialists can use it as a feedback for the next iteration.
- Planning: all stakeholders are involved in planning the testing process schedule, frequency of deliverables, etc.
- Release readiness: review and approval of features that are ready for the deployment.
- Daily meetings: helps everyone on the team stay on the same track and be aware of the testing status and future goals.
- Weekly reviews: the meeting with stakeholders helps assess whether the set requirements and milestones are met.
As for the testing plan, it normally includes such parts as:
- The testing scope
- New functionalities to be tested
- Types of testing to use
- Planning of possible risks (and their prevention)
- Infrastructure considerations
- Resource planning
- Determination of milestones and deliverables.
The role of QA specialists in the agile development process
We already mentioned that agile QA implies the participation of QA specialists in all phases of the development process. Here are some examples of how the QA department can contribute to a better understanding of a product and smoother development.
During the generation of requirements, QA specialists can help identify missing user stories or features and also detect dependencies between the stories. As well, QA specialists can help generate acceptance criteria and identify any gaps in the story documentation due to their excellent knowledge of a product. As for the estimation phase, QA specialists can help identify missed functionality, consult on the peculiarities of a system, and provide specific knowledge.
When participating in the planning, QA specialists ensure that releases are planned in a way that retains the expected QA workload without exceeding it. Sometimes, the QA department takes part in creating documentation which includes writing user guides and/or acceptance criteria.
As for the day-to-day operations, the QA department closely interacts with the developers and BAs which allows the whole team to better monitor the product quality and faster identify any bugs or missing elements.
Agile QA process is a very customer-centric approach that reduces the project costs and ensures all project requirements are met. While the waterfall approach may be better for huge projects that require excessive documentation, agile testing is great for small and medium-sized projects with a focus on quality and user experience.
Sergei KonanView all articles by this author.