How QA, QC and Testing Create a Matryoshka!
We love to update our team with the new talented recruits. And we repeatedly noticed that during the interview the answers on question about the difference between Quality Assurance (QA), Quality Control (QC) and Testing varied widely. They even caused a few hot disputes with the "table flipping" ;)
The fact is these concepts are defined differently in each company and even team. At various times, the term "testing" meant distinct processes – and that is sometimes causing misunderstandings. We don’t need such an obscurity in here, so let's unscramble all the concepts and figure out what's what. Hooray!
In fact, the testing and QC are included in the QA, so the easiest comparison would be the nest doll or matryoshka. Quality assurance is the set of activities covering all stages of technological development, release and maintenance of the software to ensure the quality of the product. In further words, it’s the brains behind the decision-making in teams ensuring product’s quality, our biggest matryoshka.
Quality assurance process consists of:
- Checking of specifications and requirements for the software.
- Risk assessment.
- Task planning to improve the product quality.
- Preparation of test documentation (regulations, tests cases, an approach, a test plan, a checklist), test environment and data. In comparison with the QC and testing, at this stage the specialists develop the effective model and sequence of the various tests for the product along with tools and scenarios providing the required level of functionality coverage.
- Testing and verification of requirements and specifications.
- The process of product testing.
- Analysis of the test results, preparation of reports and other acceptance documents.
The qualified QA manager knows the moment, when tester plugs in to the project, so he or she should prepare the test plan, test documentation and environment in time. In addition, the specialist should have a couple of skills of other teammates:
- From the marketing manager – understanding of the target audience and the market.
- From the programmer – at least shallow comprehension of the code and technical constraints on the functional implementation.
- From the project manager – a holistic perception of all parts of the project, understanding the timing, stages and iterations of the project's life cycle.
Therefore, the QA in addition to direct testing and evaluation of the product's quality is a series of organizational measures for both planning and approach creating, as well as preparatory activities. This scope allows achieving the high quality product, artifacts and the entire process of attracting testing team.
Inside the QA nest doll is the QC. Quality control is analysis of the test object’s current state using such criteria as:
- The product's degree of readiness for release.
- Compliance with the requirements.
- Compliance with the declared level of the project's quality.
Therefore, the QC manager's main spread of activities consists of intermediate and final results of development. Let’s review the way to control it:
- Checking compliance with the functional requirements.
- Analyzing the documentation on compliance with the standards of writing, content and format. It is possible to check not only the documentation and specifications, but also the project schedule.
- Reviewing the code concerning the adequacy of the standards of programming, architectural documentation, security requirements, etc.
Summing up, the purpose of QC measures is to provide the relevant and timely breakdowns of quality, based on different methods of its calculation depending on the stage of product development and the amount/priority of defects found.
Testing is checking the product's compliance with the requirements, carried out by the analysis of its work in special conditions, selected in a certain way.
The general testing scheme looks like this:
1. The tester receives the product and/or requests for input.
2. He or she creates the tests and monitors the software behavior in certain conditions.
3. The tester receives data on appropriate and inappropriate behavior of the product according to the specifications. Then the specialist reports the results filling the test documentation and describing the defects.
4. This information is used to improve the product or change the requirements through the code altering.
During the testing process, the specialist manages the program operation and thus creates the conditions for observing the product’s behavior, comparing reality with the expected situation.
The tester is able to determine what caused the error, or at least to know where to look. The common practice also includes the using of assistive tools and development platform internal capacities, monitoring of application logs, working with the database.
We believe that quality products need the right perspective. It’s wonderful just to write the beautiful code and test it, but only the experienced QA manager can see the causes of the deadline failures, customer dissatisfactions and the screwed up final product or service.
And since now you know how to perceive the differences between the QA, QC and testing, you have every chance to create topnotch products. Today and always!