Quality Assurance (Engineering) vs Testing

Time to read: About 5-7 minutes
Intended for: QA engineers, testers, and anyone involved in the software engineering process
Key takeaway: QA and Testing are often used interchangeably but are far from the same.  Testing is an activity, or a subset of QA (technically part of Quality Control).  QA is not a single activity, but an entire process designed to ensure quality.

Does your organization simply test, or do you utilize a true Quality Assurance (QA) practice?  They both work to improve quality but what is the difference?

QA and Testing are often used interchangeably but are far from the same.  Testing is an activity, or a subset of QA (technically part of Quality Control).  QA is not a single activity, but an entire process designed to ensure quality.  You may have also heard of Quality Engineering.  While there are subtle differences, RBA treats them the same.  A simplistic way of viewing it is that QA/QE is full-stack testing, early engagement and generally more technical.

Testing is the activity or a set of actions that most people think of when you talk about QA.  It is often a very manual, time-consuming process and it typically has little QA-to-Dev or QA-to-Product Owner interaction.  It requires the entire product to be in place, often called the Application Under Test (AUT) or System Under Test (SUT).  The testing team typically performs these activities and it is one method of validating the quality.  Testing comes in many forms, whether formal or informal, and is the primary method for defect detection.  It makes sure that the software does what is intended and does not have any unintended consequences.  However, traditional, manual testing processes only focus on the areas of change within the application, not a comprehensive evaluation of the entire solution.  Additionally, standard testing methods do not ensure a level of coverage that can be measured and validated. Testing is also used to validate fixes or new enhancements throughout the Test phase.

Quality Assurance is the all-encompassing process of ensuring quality and the methods used to ensure quality.  It involves the whole team.  Because QA will also include preventive techniques and spans the entire life cycle, it is a “shift-left” mentality – for process, engagement and defect discovery.  QA activities are designed to verify that requirements meet the customer’s needs and the software meets the requirements.  Requirements can come in many forms, but because QA involves validating correct requirements, you can’t have Quality Assurance without some type of requirements.  QA (or Quality Engineering) often utilizes automated, repeatable validation processes.  QA has a role in requirements validation, design input and architecting test systems capable of testing at levels deeper than just the UI.  QA is a deeper and often more proactive approach to the quality of your system.

TestingQuality Assurance
What is it?Product testing/verification during a Test phase (corrective)Validating quality and the methods to create a product during all phases (preventive and corrective)
Who does it?Test teamEntire team with QA Lead
Lifecycle timelineTest phaseAll phases, entire lifecycle
GoalVerify AUTEnsure quality, ensure process, improve quality, improve process
Where is it done?Product (AUT)Product, process, all artifacts (definition, design, implementation, release management, etc.) All application tiers.

Obviously, when comparing the two, following a solid QA approach, with good practices and smart automation techniques is the best approach.  What is your practice? 

What preventive techniques do you utilize?  What activities does your QA team do at the beginning of a project?  Is your QA team involved in design decisions or evaluating testability and providing input?  Do you test and verify bugs, or do you evaluate your software delivery process and refine that too?  Do you have good quality in the eyes of your customers?  What tools do you utilize in your QA organization?  How repeatable and deterministic is your QA process?

If your answer is ‘no’ or ‘unsure’, it may be time for a QA evaluation.  RBA’s QA Evaluation analyzes the processes, tools, methodologies, automation architecture, and skill sets in your QA organization.  There is no single way of delivering software but using good QA practices will significantly improve your chances of delivering quality applications.