Information Technology
Article
News
Case studies
Trainer profiles

Software Quality Assurance (SQA): a matter of survival

Michel Benoit
Software Quality Assurance (SQA): a matter of survival

You've probably heard about the commercial airplane whose takeoff-assist software was defective, causing the loss of hundreds of lives and forced grounding, all over the world. This aircraft model was the flagship product of a major aircraft manufacturer. The investigation that followed the disasters revealed, among other things, that:

  • The software had bugs;
  • The pilots had not been trained on the new takeoff aid system;
  • The co-pilot's flight manual was not up to date;
  • There were design problems with the aircraft model;
  • The certification of the aircraft was not done independently;
  • The rapid execution of the work was privileged to the detriment of safety;

Unfortunately, the news is full of similar examples (fortunately less costly in human lives), where problems due to non-quality have had negative repercussions on the reputation as well as on the financial results.

While it is impossible to predict everything, it is possible to limit the risk of unpleasant surprises.

In these times when the word "quality" is on everyone's lips, software quality assurance and software testing, two very distinct fields, are still not well known in the IT industry.

Michel Benoit, an expert trainer in SQA, takes a look at the issue.

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.

 

aql-cost-by-defects-graphic | Technologia

 

 

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:

SQA

Contact 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.

Similar articles

See all our articles