What is software quality assurance?
Here is a definition of what Software Quality Assurance (SQA) is:
A set of activities that defines and evaluates the adequacy of software processes to provide evidence that establishes confidence that the software processes are appropriate to produce software products of adequate quality, for the intended processes, or for the intended operating services, and that they meet schedule and budget requirements (Reference: Daniel Galin - 2018).
What is the difference between quality assurance and testing?
Because there is indeed a difference. Software quality assurance focuses on defect prevention activities, while software testing is a defect detection activity. To clearly distinguish the role of each, let's remember that software quality assurance ensures the quality of a software product before it is manufactured, while software testing controls its manufacture. Hence the importance of understanding the distinction.
What are the costs of neglecting QA?
It is easy to deduce that software quality assurance is a much more profitable and economical activity for an organization than software testing. According to specialists, investing 6% of a project's efforts would reduce the number of anomalies by 30%! Indeed, it is much less expensive to prevent a defect at its source, than when it is detected during the testing phase. It is estimated that it costs up to one thousand (1,000) times more to correct an anomaly after a production release than during the analysis phase. Often, 30% to 50% of the budget is spent on recovery costs. Unfortunately, companies are still too often limited to software testing and believe they are doing quality assurance.
Beyond the purely financial costs, poor quality software (and by extension any product) negatively impacts the organization and its brand image. Customers will become distrustful, resulting in lower sales and revenues; and employees will no longer want to be associated with a poor image, increasing turnover and labor shortages.
It's a slope that even the best marketing departments can't always climb.
Speed or haste?
Today, many organizations are looking to increase the velocity of their development teams and accelerate the pace of software delivery, usually to deliver more value to the customer. For some organizations, delivering software quickly can be a real competitive advantage. But when you confuse speed with haste, you can cut corners... including quality. Whether you are in a traditional or agile context, software quality is a major issue. You have to know how to integrate software quality assurance according to the context of your IT projects.
What is the key element to achieve QA?
To ensure the quality of a software product, we must first ensure the quality of its development process. This simple principle applies to all industry sectors. Take for example a company that makes bread. To improve the quality of the bread, you try to improve the manufacturing process: you change the recipe, the temperature of the oven, the packaging of the bread, its handling, etc. In short, you try to change the way the bread is made. In short, we try to modify the manufacturing process to achieve a product of increasingly higher quality. In IT, the same principle applies: we must improve the quality of our development processes to achieve a higher level of quality in our systems and software products.
How to apply quality management in your organization?
The implementation of a quality program allows you to have the tools to achieve quality work according to predefined criteria. Depending on your context, here are some solutions that could improve quality:
- Implement a quality plan for each project,
- Identify the stakeholders,
- Write clear and precise requirements,
- Define the software development methodology,
- Apply industry best practices,
- Train the teams in software quality assurance and new technologies,
- Establish adequate quality and test metrics,
- Define a dashboard for quality monitoring and facilitate communication and collaboration,
- Insert quality control techniques in the development process (code review, inspection, audit, ...)
- Choose wisely what should be automated,
- Document the code,
- Implement the Shift-Left approach to software testing,
- Etc...
In these times when digital transformation and the economy are forcing organizations to innovate and reinvent themselves to survive, let's develop our quality vision now, before it's too late.
To go further:
SQAContact us
To learn more about our new services or to talk to us about your skills development needs, contact Cyrielle Renard at 514-380-8237 or by email: crenard@technologia.ca.