Today, Waterfall Quality Assurance is an extremely common practice, but as Agile technology becomes more popular among IT managers and developers alike, there’s one question that still lingers: can Agile be applied to quality assurance within waterfall? By definition, Agile is meant to help teams and project managers alike respond to unpredictability through incremental, iterative work cadence and empirical feedback.
With Agile, testing must be ongoing through the entire development life cycle. Additionally, a balance must be maintained between testing new functions and system regression testing.
Though Waterfall Quality Assurance can be integrated into Agile methodologies, both can be applicable to myriad different projects, there are several differences between the two.
- Agile is heavily dependent on automated testing. Regarding waterfall, there is little to no automated testing involved.
- Agile teams are deeply involved with each phase of the project lifecycle. Essentially, there is only one team that is present. With waterfall, there are specialized teams that function completely separate from one another.
- In Agile, there is a deep connection with all stakeholders. The criteria of the client’s needs and wants are the #1 priority. Within waterfall, it’s almost the exact opposite. There is not a strong interaction with stakeholders and the purpose of waterfall is that the needs are met within the requirements document.
To create quality assurance using Agile methodologies, you should create and involve quality assurance team members in all phases to ensure that the client’s needs are met.
Let’s understand how to enhance quality assurance in an Agile world within these various stages of quality assurance:
#1 Requirements gathering stage
The quality assurance team should assist with product owner in writing user stories and card with detailed quality assurance requirements.
#2 Estimations stage
The quality assurance team identifies functionality the developers may not have considered while providing system-wide knowledge.
#3 Documentation stage
The quality assurance team works with BA / Product Owner to ensure that any issues or gaps are captured, and is often required to write acceptance criteria.
#4 Sprint execution stage
The quality assurance team regularly interacts with developers and the product owner to discuss any issues such as bugs. On the testing front, the writing of automated regression tests is a quality assurance responsibility.
#5 Defining stage
The quality assurance team ensures that the acceptance criteria is fully comprehensive, and is met to the exact specifications of the client. After everything is successfully executed, the user story can then be moved to complete. If issues arise, the user story is then sent back to the developer.
#6 Testing stage
The quality assurance team works in unison with development in making sure that there is a completion of the user stories by the end of sprint. Additionally, the team identifies and reports any issues that occur.
Issues that have been initially marked as ‘resolved’ are tested again to ensure proper functionality. It is only after validation of issue resolution that the team can consider the project complete.
The testing stage can be automated and, typically, the developers are responsible for writing the unit tests with each story. Furthermore, it is up to the developer to write the automated integration tests.
Using quality assurance towards Agile can present some issues:
- Time: If a story takes longer than expected, a reduction in the availability of the QA team occurs. Additionally, developers often focus on concurrent issues which results in days of no new story completions.
- Environment: If test servers are having issues, the team needs to wait for someone else to fix them. If external systems go down, developers are able to mock test them, but the actual system is preferred.
- Workload: The scope of the sprint can be changed, resulting in the need for new tests to be written. Additionally, massive bugs that appear can force the team to run continuous tests in order to ensure that the issue is truly resolved.
Despite these challenges, there are possible remedies.
- Organization: Schedule higher risk stories early in the release and sprint stage. Also, assure the developers are not focusing on concurrent stories to avoid wasting time and energy. Additionally, avoid placing too many stories within the sprint stage that require intensive quality assurance requirements.
- Share responsibilities: Developers can perform some of the quality assurance duties the team may need. Additionally, as stated before, developers can write automated tests.
Waterfall Quality Assurance can be achieved easily using Agile with these tips. Just make sure that your team and developers alike are both organized with an understanding of their responsibilities and roles in communicating and developing projects.