As you learned in Part 1 of the Value of Quality Assurance (QA) blog series, QA roles have evolved from software testing to true quality assurance. This means that projects can see huge benefits by including QA Engineers in all phases of the Software Development Life Cycle (SDLC), including the Requirements and Design Phase. Historically you may not have had QA resources engaged during this phase, but leaving them out may be detrimental to your project.
This installment of the Value of QA blog series outlines the benefits of engaging QA Engineers in the Requirements and Design phase. By engaging QA Engineers early on, you can ensure an emphasis on quality throughout all aspects and roles of the project.
How and why are QA Engineers important to this phase?
QA Engineers ensure quality from all team members from the beginning of the project by:
- Collaborating with business analysts to ensure user stories are clear and easy to understand by all stakeholders (Development, other QA and UAT). They also serve as a second set of eyes to confirm the user story meets the identified business need and will be consistent with the outlined user experience criteria.
- Participating in sizing and road map discussions, making sure that artifacts are properly sized and the points reflect the effort. QA Engineers are experts at finding defects and can typically tell when artifacts will be more likely to have higher defect rates.
- Working with the development team to set expectations for unit testing prior to turning stories over for testing. Having the right level of unit testing can significantly reduce defect rates which will, in turn, mean higher team velocity.
- Determining automation potential and working with the development team to build the system in an automation-conducive way which will reduce cost when automation engineers are engaged.
- Identifying prerequisites and integration points and determining the order of user stories / epics to ensure the system is built in a logical way.
- Preventing bugs and implementing a root cause analysis plan early on so everyone can learn from mistakes and improve the project.
In addition to establishing an expectation of quality with the team during the Requirements & Design Phase, QA Engineers are also responsible for the following:
- Writing a test plan. Even for agile projects, it’s beneficial to have a high-level test plan to set expectations and identify test approach. This allows QA to share their strategy for test coverage based on risk, which may or may not be acceptable depending on the application requirements. Because this is done early, it allows the team to adjust the test approach when needed (i.e. Bring in an additional QA resource, have BA participate in the execution, etc.)
- Identifying a test tool / bug tracking tool and set up any reports that will be needed (such as daily status or bug prioritization) while also setting up a process for bug reviews.
- Working with the technical architects / DBAs on environment setup and database refresh schedules.
- Determining who will be responsible for deploying new builds to test the environment and the frequency of doing so. This will typically be in the hands of the Developer or QA Lead.
- Managing the environment administration and user setup. QA is often the first point of contact for user accounts, security changes, etc.
- Ensuring the test data is available and in the correct format.
- Spending time learning the system that will be worked on (whether that’s digging into a legacy system being converted, current system being enhanced, etc.)
- Working with UAT resource(s) to determine the level and frequency of the engagement, bug / issue reporting process and story sign off criteria.
Some of the greatest benefits of engaging QA Engineers in the Requirements and Design Phase are higher team velocity, lower defect rates, consistent user experience and effective risk mitigation.
This was part 2 of 5 in The Value of Quality Assurance blog series. Part 1 can be found here and be sure to watch for Part 3 in the coming weeks where we will focus on the value QA Engineers bring to the Development / Implementation / Integration phase of the SDLC.