Common Body of
Knowledge: Understanding Quality Control
By Trevor Carter
Quality Control focuses on identify
defects/issues in the software by executing test scripts. Test scripts help
identify weaknesses within the software.
Until I studied the Common
Body of Knowledge from the Quality Assurance Institute I did not relate quality
control to test execution. As a matter of fact, I always related quality
assurance to the actual testing process. After reading and understanding QAI’s
definition of quality control it made more sense to identify test execution
with control, whereas quality assurance is about creating activities that
evaluate processes that help produce the software.
While it is possible to have quality control
without quality assurance, I have found by experience that this is not ideal to
producing quality software. If there are no guidelines in place (processes and
procedures), getting good quality control is like throwing darts at a dart
board blindfolded.
There are many activities involved with
quality control. You have both manual test execution and automated test
execution. The more complex and robust the software is, the more likely you’re
going to need both manual and automated tests to fully engage the software.
Both types of testing require analysis. Metrics need to be in place to measure
success and failure. The great thing about automated tests is that repeatable
tests don’t have to be manually tested, which can be time consuming. Having
automated tests allows manual testers to focus on new functionality. Automated
tests can focus on existing functionality that ports over from one release to
the next.
Below is a list that differentiates quality
control from quality assurance:
- Quality control verifies the attributes of the product. It asks the question, do the results satisfy the system requirements?
- Quality control finds weaknesses in the software – defects/issues.
- Quality assurance establishes processes that help guide quality control, to produce consistent results. These processes also help in analyzing the quality control results.
- Quality assurance is a management initiative. Quality assurance personnel are not involved in quality control.
There are many different phases associated to
quality control. Each phase plays a specific role in finding the weakness of
the software. This is not an exhaustive list, but focuses on the main phases
associated to quality control.
Functional tests: The
quality control team runs specific test cases (contains the scripts) to locate
weaknesses in the product, and then reports those weaknesses so that they can
be addressed.
Ad-hoc/Exploratory tests: Ad-hoc
testing is a creative endeavor that allows quality control personnel to get
into the software without any specific test scripts. In order to perform this
type of testing, testers should have a good working knowledge of the software.
Regression test: Once
the initial test phases are complete the quality control team can run
end-to-end tests. This phase is particularly useful for automation, as it covers
a broad range of functionality.