While the terms quality assurance and quality control are often used interchangeably, there are differences between the two disciplines. Likewise, quality control and testing are sometimes used interchangeably, though the terms are not exactly the same thing.
Quality assurance is a process designed to ensure a system meets its objectives. Quality assurance tries to design processes that deliver the consistent and correct results every time. It includes verifying processes already outlined are followed. QA tends to be pro-active. Per one Dilbert strip, QA involves telling people how to do their jobs so that they do it right.
Quality control refers to the activities to evaluate whether produced items and services meet standards. It tends to focus on defects in specific deliverables, checking performance or dimensions against pre-determined standards. QC is, by definition, reactive, because it finds imperfect products after the mistake is made.
Testing is the process of trying to find defects. Testing procedures need to be documented so that they are followed consistently by everyone who receives them. The test plans need to call out the right hardware, software and supporting information needed to follow the same test every time. And they need to be kept up to date as industry standards change, hardware evolves and the software behind many automated testing systems changes. Even things like where you store information on test results and test scripts need to be documented.
Quality Assurance vs Quality Control vs Testing in IT
QA in IT ensures your process is defined and appropriate. What is the scope of the project? Do we have a formal test plan? QA is the full software development lifecycle.
QC tries to identify defects in the product. The classic case is the database of bugs found during software testing. One definition of QC was always executing the program, while QA may involve theoretical or administrative reviews. In the case of QC in IT, you have to run the software to find the ways it doesn’t deliver results appropriately, errors out, or literally locks up.
In IT, testing is running your software and hardware tests. And QC is specifically the software testing life cycle. Test plans should specific the IT architecture and hardware used for testing. After all, putting something on the wrong test bed is going to cause it to get very different errors than if the right one were used.
Does Automation in Software Testing Eliminate the Need for IEs in IT?
Quality automation engineers take it one step further and write the code that runs automated tests per various test cases and generates a report of defects. However, you cannot assume this automation of testing is always accurate or complete.
In one instance, an engineer demonstrated his automated test script to replace manual testing that was going on, and we watched a number of error messages pop up. And because the script was only looking for errors like access control limit notices during the automated test, the dozens of popups generated weren’t recorded as errors by the script. And if the quality automation engineer isn’t clearly told what constitutes a success, you could get events like a report being generated counted as a pass when the report itself doesn’t show all the data or contains other errors.
In summary, no, automation doesn’t eliminate the need to apply quality assurance and quality control to any aspect of IT even if one can automate many tasks.