Quality Assurance vs Testing

There is this confusion when people have to make a distinction between Quality Assurance and Testing. Although they share some similarities, they have some distinctions which are hidden to most people. A discussion of these terms will throw a light on their differences.

What is Quality Assurance?

Quality Assurance is the general term used for activities that make sure that some procedures, processes, and standards are implemented in relation to the development of a software program and the intended use and requirements.

According to the respected technology website, “Software quality assurance (SQA) is a process that ensures that developed software meets and complies with defined or standardized quality specifications. SQA is an ongoing process within the software development life cycle (SDLC) that routinely checks the developed software to ensure it meets desired quality measures.”

The objective is to ensure the development of a software program that meets all the basic requirements that will qualify it as a high-quality software program. Rather than wait until when the program is completed before checking its potential for quality, quality assurance is done at every stage of the development in order to give the software a good foundation.

While developing a software program, the next stage of development will not be moved to until the present stage is tested and found to meet all the quality standards that are already defined. There are many methods that can be implemented to promote quality assurance. Some are CMMI model and ISO 9000 and some other standards. A proper quality assurance may require conforming to one or more of these techniques.

The complete Quality Assurance encompasses requirements definition, coding. Software design, source code control, software configuration management, code reviews, testing, product integration, and testing. The process is organized into commitments, goals, abilities, measurements, abilities, and verifications.

With the meticulous testing of each stage of the development against some tested and proven standards, the quality of the software is guaranteed.

What is software testing?

All the activities that are targeted towards the identification of defects, bugs, or errors in software are collectively known as software testing. Software testing is the execution of the software program with the aim of evaluating its performance in relation to the objective of developing the software. During the testing, the testers will check whether the software:

  • Is designed in total conformity to its design and development.
  • Is efficient when tested with a variety of inputs.
  • Is effective in addition to its efficiency.
  • Is usable under all the expected circumstances.
  • Can be distributed to be used in different environments it was built for.

The testing is done by executing the software on different environments, intentionally changing the inputs, deliberate introduction of wrong inputs to see the response of the system, and other testing techniques.

The importance of software testing has been discovered many times. Bugs can alter the output of a system, leading to misinformation and unreliable results. During testing, bugs and other errors can easily be identified for correction. This will give a clue to the quality of the software under test and its potential for failure.

There are two types of testing. These are:

  • Manual testing: This is done by humans and not a machine. No scripts or any other tools are used.
  • Automated testing: This requires the use of scripts and other tools to test a software program.

Regardless of the testing method used, the same objective of finding errors and correcting them in a software program is achieved. This will help the developers to develop a bug-free and efficient software program before its distribution to the end users.

More References / Tutorials