Skip to navigation Skip to main content

The Ultimate Software Testing Glossary: A Comprehensive Guide to QA Terminology

From Core Concepts to Advanced Techniques, Your Go-To Resource for Understanding the Language of Software Testing

Welcome to your go-to resource for understanding the language of software testing. This glossary is designed to be a comprehensive reference for both beginners and experienced professionals. We’ve cut through the jargon to bring you clear, concise definitions of the terms that matter most in the world of Quality Assurance.


Key Takeaways

  • Core Concepts: Understand the fundamental difference between a bug, defect, error, failure, and fault.
  • QA vs. QC: Learn how Quality Assurance (QA) focuses on process improvement, while Quality Control (QC) focuses on defect identification.
  • Testing Levels: Familiarize yourself with the different levels of testing, including Unit Testing, Integration Testing, System Testing, and Acceptance Testing.
  • Testing Types: Explore the various types of testing, such as Functional Testing, Non-functional Testing, Regression Testing, and Performance Testing.
  • Test Artifacts: Learn about the key documents created during the testing process, including the Test Plan, Test Case, and Bug Report.

Table of Contents


Core Concepts

These are the fundamental ideas that form the basis of software testing.

Term Definition Example
Bug An error, flaw, or fault in a computer program or system that causes it to produce an incorrect or unexpected result, or to behave in unintended ways. Clicking the “Save” button erases the user’s input instead of saving it.
Defect A variance between the expected and actual result. It is a flaw in the software that can cause it to fail to perform its required function. The login page is missing a password field.
Error A mistake made by a human, such as a developer or a business analyst, that results in a defect in the software. A developer misinterprets a requirement and codes a feature incorrectly.
Failure The inability of a software system or component to perform its required functions within specified performance requirements. The application crashes when a user tries to upload a file.
Fault An incorrect step, process, or data definition in a computer program. A developer writes a line of code that attempts to divide by zero.
Quality Assurance (QA) A set of activities for ensuring quality in software engineering processes. QA focuses on improving the development process to prevent defects from occurring in the first place. Implementing a new coding standard to reduce the number of bugs.
Quality Control (QC) A set of activities for ensuring quality in software products. QC focuses on identifying defects in the finished product. Performing a series of tests to find bugs before the software is released.
Software Testing The process of evaluating a software application to find and fix defects before it goes to live users. Executing a test case to verify that the login functionality is working correctly.

Testing Levels

Testing is typically performed at different levels throughout the software development lifecycle.

Term Definition Example
Unit Testing A level of software testing where individual units or components of a software are tested. A developer tests a single function to ensure that it is working correctly.
Integration Testing A level of software testing where individual units are combined and tested as a group. A tester verifies that the login module is working correctly with the user management module.
System Testing A level of software testing where a complete and integrated software is tested. A tester verifies that the entire system is working correctly, from the user interface to the database.
Acceptance Testing A level of software testing where a system is tested for acceptability. The purpose of this test is to evaluate the system’s compliance with the business requirements and assess whether it is acceptable for delivery. A client tests the software to ensure that it meets their needs before they sign off on the project.

Testing Types

There are many different types of testing, each with a specific purpose.

Term Definition Example
Ad-hoc Testing A type of testing that is performed without a plan or documentation. The goal of ad-hoc testing is to find bugs that may not be found by other types of testing. A tester randomly clicks on links and buttons to see if they can break the application.
Alpha Testing A type of acceptance testing that is performed by a team of testers who are internal to the organization. A team of QA engineers tests the software before it is released to the public.
Beta Testing A type of acceptance testing that is performed by a limited number of end-users before the software is released to the public. A group of beta testers uses the software and provides feedback to the development team.
Black-box Testing A method of software testing that examines the functionality of an application without peering into its internal structures or workings. A tester verifies that the login functionality is working correctly without knowing how the code is written.
End-to-End Testing A methodology used to test whether the flow of an application is performing as designed from start to finish. A tester simulates a user journey, from creating an account to making a purchase.
Exploratory Testing A type of testing where the tester is free to explore the application and look for bugs. A tester uses their creativity and intuition to find bugs that may not be found by other types of testing.
Functional Testing A type of testing that verifies that the software is working according to the specified requirements. A tester verifies that the login functionality is working correctly.
Non-functional Testing A type of testing that verifies that the software is working according to the specified non-functional requirements, such as performance, usability, and security. A tester verifies that the application can handle a large number of users without crashing.
Performance Testing A type of non-functional testing that is performed to determine how a system performs in terms of responsiveness and stability under a particular workload. A tester verifies that the application can handle a large number of users without crashing.
Regression Testing A type of testing that is performed to ensure that a change to the software has not adversely affected existing features. A tester re-runs all the existing test cases after a new feature is added to the software.
Security Testing A type of testing that is performed to identify vulnerabilities in the software and to ensure that the data and resources are protected from unauthorized access. A tester tries to hack into the system to see if they can gain access to sensitive data.
Smoke Testing A type of testing that is performed to verify that the critical functionalities of the software are working correctly. A tester performs a quick check of the main features of the software after a new build is deployed.
Usability Testing A type of non-functional testing that is performed to determine how easy it is for users to use the software. A group of users is asked to perform a series of tasks in the software, and their feedback is collected.
White-box Testing A method of software testing that tests internal structures or workings of an application, as opposed to its functionality. A developer examines the code to ensure that it is working correctly.

Test Artifacts

These are the documents and other items that are created during the testing process.

Term Definition Example
Bug Report A document that describes a bug that was found during testing. A tester creates a bug report with a detailed description of the bug, including steps to reproduce it.
Test Case A set of conditions or variables under which a tester will determine whether a system under test satisfies requirements or works correctly. A tester creates a test case to verify that the login functionality is working correctly.
Test Plan A document that describes the scope, approach, resources, and schedule of intended test activities. A test manager creates a test plan that outlines the entire testing process for a new project.
Test Strategy A high-level document that defines the testing approach for a project. A test architect creates a test strategy that defines the overall testing approach for a new product.
Traceability Matrix A document that traces the requirements from the requirements specification to the test cases. A business analyst creates a traceability matrix to ensure that all the requirements have been tested.

Frequently Asked Questions (FAQ)

Q: What is the difference between a bug, a defect, and an error?

A: An error is a mistake made by a human, which results in a defect in the software. A bug is a type of defect that causes the software to produce an incorrect or unexpected result.

Q: What is the difference between QA and QC?

A: QA is a proactive process that focuses on preventing defects, while QC is a reactive process that focuses on identifying defects.

Q: What is the difference between black-box testing and white-box testing?

A: Black-box testing is a method of testing where the tester does not have any knowledge of the internal workings of the software. White-box testing is a method of testing where the tester has full knowledge of the internal workings of the software.


Further Reading


Conclusion

Understanding these key terms is the first step to mastering the art of software testing. By using a common language, we can improve communication, collaboration, and the overall quality of our work. We hope this glossary has been a helpful resource for you. If you have any questions or suggestions for other terms to include, please feel free to leave a comment below.

Share: X (Twitter) Facebook LinkedIn