Should I Involve My Software Quality Assurance Team in a Project’s Early Stages?
By Ann Mooney
Software projects are often expensive, time-sensitive, and complex. The last thing you want is to encounter a long list of bugs during QA testing. Not only can this increase project time and costs, but it can also increase your anxiety level. However, your software project doesn’t have to get to that point. This raises the question: When should your QA team begin testing?
Many software projects or software companies will bring in their quality assurance team towards the end of a project, mostly at the point when the software is built and ready to be tested. However, just because this is a common approach doesn’t mean there isn’t a better way.
In this blog, we’ll help you understand the benefits of software quality assurance, including the best times to bring your quality assurance team in.
The Problem – When do we start testing?
Many people have a very linear perspective regarding the software quality assurance process. They think of the basic SDLC:
- Step one: get requirements.
- Step two: design the software.
- Step three: code the software.
- Step four: test the software.
- Step five: deliver the software.
This linear approach often persists, even in Agile environments where sprints are iterative but may still delay QA involvement until development is complete. It makes sense, right? This philosophy leads to the idea that the project doesn’t need software quality assurance to be involved until the product is mostly developed. However, if QA involvement is delayed until the final stages, this philosophy may increase the risk, cost, and timeline of the project.
It’s critical to minimize and avoid any of these outcomes. This can be accomplished by establishing your team’s software QA roles and responsibilities during step one.
Software QA needs to be involved from the very beginning
When your software QA team gets involved early in the process, there will be fewer issues and fewer ways to break the software come testing time. The sooner an issue is identified, the lower the impact on risk, cost, and timelines.
For example, if there is a conflict in the requirements that is discovered during the design phase, the impact of correcting that defect is minimal. You simply get clarification on the requirements and correct the issue before you move to the next step in the process. However, if you take that same issue and it is not found until the software is delivered to your quality assurance team, the impact can be enormous. You now have to get clarification on the requirements and you must also correct all of the work that has been done in development. Depending on the nature of the bug, it could result in rebuilding entire features.
Imagine building a car with many interdependent parts. If QA identifies a chassis defect after the car is fully assembled, you’ll face significant rework to dismantle and rebuild the vehicle.
Is it possible to find all bugs in the early phases? Of course not. However, having established quality assurance roles and responsibilities can help reduce bugs and will give you an overall better product and reduce the risk of building up a large set of code changes at the end of the project where they post the most risk.. Let’s see how they can help along each phase of the project.
What Software Quality Assurance Does in the Requirements Phase
Gathering requirements is the first step in the SDLC process. There are many advantages of having your quality assurance team involved in this phase:
-
Identify Logical Conflicts and Discrepancies
-
As their understanding of the project grows with reviewing the project’s documentation, your quality assurance team members may start to see logical conflicts and discrepancies early on in the process.
-
-
Identify Poorly Defined or Unaddressed Elements
-
Through the software quality assurance process, they may also see “gaps” in workflows, permissions, user roles, and more.
-
-
Provide Feedback On User Stories
-
The bigger and more complicated the stories, the more difficult they are to understand. This makes coding and writing test cases more difficult. Based on their experience, software QA team members can provide feedback and offer suggestions for user stories.
-
-
Ask Questions
-
When issues inevitably arise, your QA team can get ahead of them. As stated before, it’s much more cost-effective to get these addressed before coding begins.
-
What Quality Assurance Does in the Development Phase
This phase is where your quality assurance team can begin testing. During the sprints of an Agile process, there are specific things QA can do to overcome issues and identify bugs before they become a major problem:
-
Review Current User Stories
-
By reviewing the user stories, your quality assurance team can confirm that the development is heading in the right direction.
-
-
Review and Write Test Cases
-
Reviewing and writing test cases is a great way to dissect the requirements on a “microscopic” level.
-
-
Be Accessible to Developers
-
The developers will have questions once they dive into the code. Your software QA team should be available to offer assistance.
-
-
Test the Software Once It’s “Done”
-
When a developer finishes a feature, QA can test it immediately.
-
-
Communicate When QA Considers a Feature “Done”
-
This lets the project team fully focus on the next task on their list and lets the project leadership know the true progress of the project.
-
What Quality Assurance does in the Testing Phase
In an ideal state, this step should consist of working on things that may have been missed or not investigated due to time constraints in other phases:
-
Edge Case Testing
-
The software QA process can test inputs that will probably never be used, using the application for things it’s not intended to be used for, etc.
-
-
Cross Browser/Cross Operating System Testing
-
Often, the software may have only been tested using the same browser and operating systems thus far. Additional browser and OS testing will be required during this stage.
-
-
Bug Fixes/Regression
-
If the developers haven’t had time to focus on bug fixes, they will now be in a position to do so. Much of your quality assurance team’s time will be used to verify bug fixes and perform regression tests.
-
What Quality Assurance does in the Delivering Phase
In this phase, the software development team is not only being judged by the quality and functionality of the product but they are also being judged based on the quality of the work they’ve done. How can software quality assurance help?
-
Validate Reported Bugs Against Requirements During User Acceptance Testing
-
Since the software quality assurance team has been involved every step of the way, they can serve as a subject matter expert in support of the client during the User Acceptance Testing (UAT) phase. When a bug is reported, they can validate it with the requirements before the rest of the team is alerted. The bug may just be a misunderstanding at the end of the day.
-
-
Exploratory Testing
-
While UAT is occurring, your quality assurance team can continue to do exploratory testing to uncover hidden issues that scripted tests may miss, ensuring a robust product delivery. Most importantly, they can retest and validate that the issues have been resolved before presenting the software back to end-users for another round of testing.
-
SOLTECH takes this approach seriously and makes sure that our software quality assurance team is involved throughout the process. If you would like to learn more about our approach to custom software development and how we work in collaboration with our clients, please contact us to start the conversation.
Click here to fill out our contact form to start the conversation.
Ann Mooney
Director of Business DevelopmentAnn Mooney is the Director of Business Development at SOLTECH, and has over 30 years in Sales and Account Management in the Technology, Telecommunications, and Medical Industries. Ann’s key specialties are building long-term business relationships, results-driven sales, and account management.
Ann joined SOLTECH in 2016, she works directly with SOLTECH’s clients to help find them the best technology solutions for their business. Ann utilizes her strategic leadership and proactive problem-solving skills to continually grow SOLTECH’s business and ensure excellent customer service.
With her years of experience in the technology industry, Ann likes to share her expertise to educate her audience on the enhancement of workplace productivity and growth through software solutions in her articles. Her insights offer advice on important considerations for creating custom software, including initial steps, development costs, and timelines, as well as the advantages of collaborating with a skilled software development team.