QA is often thought of in very basic terms; frequently referred to the work merely as “Testing.” That is a very simplistic and misguided perspective, though I will admit that I am biased as I am a QA professional. From my perspective, Testing is only one of the things that a good QA engineer brings to a team. Quality Assurance ensures the quality of the software development process and its results. These processes involve far more insight and interpretation than basic “Testing” encompasses.
A good Software Development Lifecycle process has QA involved at each stage, right from planning through support and maintenance. “Testers” often bridge the gaps between technical developers, product owners, stakeholders, and the end user. QA engineers are uniquely placed to have the most overall knowledge of how a product works from a user’s perspective and understand the technical details of what’s going on behind the scenes to improve the user experience.
QA engineers have a clear overview of the entire SDLC process and can point out inefficiencies and gaps. It’s our job to improve not only the quality of the end product but also the process used to develop it.
2. FOCUSING ON THE COST OF QA RATHER THAN THE VALUE
The earlier a development issue is found, the less of a financial impact it may have on the project. Consider a case where a high priority issue is reported to the customer support team that affects many users. Critical and costly time is taken to triage, investigate, debug, resolve, test, redeploy, and communicate the fix to stakeholders vs. if the problem had been discovered in a QA environment. The turnaround time for a fix would be much shorter and involve fewer people than dealing with an issue in Production.
Investing in sound quality assurance practices in the software development life cycle can help avoid everything from minor issues to the most catastrophic failures. Entire companies have gone out of business, struggled with lawsuits and irreversibly damaged reputations due to a poor-quality product. An extreme example of this is Therac-25, a radiation therapy machine that caused accidental radiation overdoses killing at least six patients. The overdoses were caused by poor software developed with no QA process.
Investing in skilled QA Engineers with an understanding of the user’s needs and strong interpretive skills will produce value in the short and long term
3. SACRIFICING QUALITY FOR SPEED
There is a common misconception that QA slows down development. Many Project Managers/Scrum Masters see QA as a barrier to getting tasks into the “Done” column. However, if you factor the QA team into the process at an earlier stage, it can save time in the long run.
One of the most important stages in the SDLC is Requirements Gathering. Mistakes made during this stage echo throughout the entire lifecycle and end up having an impact on the production environment. QA engineers interact with the software more than most anyone else on the development team. Having them involved in requirements gathering and scope setting enables them to collaborate on which solutions will and won’t work, and they can alert the team of areas in the application they might have missed. Moving fast, without the insight of QA, can affect quality and result in a jammed backlog and deployment delays.
Additionally, introducing nonfunctional testing and load testing to your process can have a tangible impact on your server and hosting costs. Less hardware is required to run your application if performance is optimized, and less storage space is needed if we avoid saving data we don’t use.
We can also improve staffing costs by investing in QA. If we prioritize QA resources and catch issues early, we don’t need to invest as many resources into a Support Team because they won’t have as much to do!