Whatever your development focus may be, whatever technologies and programming languages you may use, the alpha and omega of the programming is the quality of the final software product. Just because if the user will consider your piece of software a poor quality one, he will simply refuse to pay for it and will tell others about his bad experience, which leads to reputational risks for you. As simple as that. This is why the quality assurance (QA) and quality control (QC) are the crucial software development stages the product has to pass before it gets into the user’s hands. But what do QA and QC mean in terms of software development?
QA, QC and Testing – what’s the difference?
According to the conventional programming wisdom, though seeming alike, these three terms have distinct differences:
Quality Assurance means enhancing the final product quality, improving the development process;
Quality Control implies the developed work product evaluation, for example via code review;
Testing is improving product quality by finding bugs.
What we see here is the versatility of the software product quality term. Each side of it, be that QA, QC or testing, is an integral and important part of the development process.
Software Quality Assurance components and implementation.
There are multiple Software Quality Assurance (SQA) standards, that can be applied either one by one or in combination with others, like the CMMI model or ISO 9000, and others. The application of any of them requires the same actions set.
SQA management plan.
This plan regulates the process of the SQA implementation in your project. It specifies what tools to use, what procedures and techniques to apply to ensure the product meets the SRS (software requirement specification) requirements.
The checkpoints set by the SQA team itself are designed to assure regular inspection and evaluation of the product quality at each development stage.
Software engineering techniques application.
This step is dedicated to high-quality specification achievement and correct project estimation. Techniques like SLOC, FP or WBS, are aimed to help with this.
Formal technical reviews (FTR) execution.
The FTR aims the prototype quality evaluation and design assessment.
Multi-testing strategy application.
The golden Quality Assurance rule could have sounded like this: “Never rely on a single test”. It never hearts to double check to ensure better quality.
Process adherence enforcement.
This term means you have to evaluate the product and monitor the process, aiming to make sure the development process sticks to the specified procedures.
Automated tools and manual procedures are combined to maintain the same high software quality level during all the development stages.
This activity uncovers any non-compliance issues through the whole existing SDLC process.
Never underestimate the good relations between development and testing teams; otherwise, the lack of mutual understanding can affect the final product quality.