Software Testing Glossary - Testing Terms Explained

Published at: July 19, 2021
Last updated: October 13, 2024
By: Noa Segol

For many members of the QA community, testing was their first job entering into the job market.

As such, many can relate to the feeling that the testing world can sometimes feel overwhelming for new entrants, when it is hard to follow the various tasks and the difference between them. In order to assist, we have created a testing glossary that includes all you need to know about the different types of testing.

Testing Terms by Letters:

A

A/B testing

A method for comparing two versions of a web page or application to determine which one performs better. A/B testing involves changing one element between the versions and measuring which version yields higher conversion rates, user engagement, or other defined metrics.

Acceptance Criteria

A set of conditions or specific requirements that a software product must meet to be accepted by a user, customer, or other stakeholders. These criteria define what is needed for the product to be considered complete and satisfactory.

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 to verify that it has met the required criteria for delivery to end users.

Accessibility Testing

Accessibility testing helps ensure that software is usable by people with disabilities, including visual, auditory, physical, or cognitive impairments. In addition, companies must align with accessibility standards and guidelines, such as the WCAG (Web Content Accessibility Guidelines), to ensure compliance and inclusivity.

Agile Testing

A testing practice that follows the principles of Agile software development. Agile testing is continuous and iterative, with testing integrated throughout the development process rather than being a separate phase.

Association for Software Testing (AST)

The Association for Software Testing, is a professional organization dedicated to advancing the science and practice of software testing. AST emphasizes context-driven testing, promoting a flexible and adaptable approach to testing that considers the specific context in which testing occurs.

Application Lifecycle Management (ALM)

Application lifecycle management, commonly referred to as ALM, represents the complete lifecycle of a product or an application, from conception through retirement. The term is used in the context of software applications, but it can be used in other types of systems as well.

Alpha Testing

A type of acceptance testing conducted by internal teams (e.g., developers, testers, or a select group of users) in a staging environment. The purpose is to identify and fix bugs before releasing the product to end-users.

API Testing

Testing the Application Programming Interface (API) directly to ensure its functionality, reliability, performance, and security. It involves sending requests to the API endpoints and validating the responses.

Automated testing

The use of scripts, tools, and software to perform testing tasks that would otherwise be done manually. Automated testing is valued for its efficiency, consistency, and ability to execute repetitive tasks with minimal human error.

B

Behavior-Driven Development (BDD)

Behavior-driven development, commonly referred to as BDD, is a method for a more accessible and effective way for teams new to agile software delivery that aims at testing human behavior rather than a computer function. Test scenarios in BDD are based on the concept of “given, when, then” to describe various user BDD scenarios.

Beta Testing

Beta testing is a phase where a nearly complete version of the software is released to a limited group of external users to identify any remaining issues before the official release. The feedback from beta testers helps improve the product’s quality and usability.

Boundary Value Analysis (BVA)

A testing technique that involves creating test cases that include values at the boundaries of input domains. This method is based on the premise that errors are more likely to occur at the extreme ends of input ranges.

Bug

A defect in a software application that causes it to perform differently than expected. Bugs are often discovered during testing and reported to developers for resolution.

Black box testing

Black box testing is a method that examines the functionality of an application without peering into its internal structures or workings. Testers provide inputs and observe outputs, focusing on what the system does rather than how it achieves its functionality.

C

Continuous Integration and Continuous Delivery (CI/CD)

Continuous Integration and Continuous Delivery, commonly referred to as CI/CD, is the usage of automation in the process of application development in order to frequently deliver to customers by constantly integrating new code that is recently developed, without the need to wait for a new version.

Code Coverage

A metric used in software testing to measure the percentage of code that has been tested. Code coverage provides an indication of how much of the application's source code has been executed during testing, helping identify untested parts of the codebase.

Compatibility Testing

A type of testing to ensure that the software functions correctly across different environments, such as various operating systems, browsers, devices, or network conditions. The goal is to identify any compatibility issues that might prevent users from using the software as intended.

Continuous Testing

The process of executing automated tests as part of the software delivery pipeline to obtain immediate feedback on the business risks associated with a software release. Continuous Testing is a critical component of Continuous Integration and Continuous Delivery (CI/CD) practices.

Cross-Browser Testing

Testing is conducted to ensure that a web application works as expected across different web browsers. Cross-browser testing checks compatibility with various browser versions and platforms to ensure a consistent user experience.

D

Data-Driven Testing

A testing methodology where test data is stored separately from the test scripts, allowing the same test to be run with different data sets. This approach is often used in automated testing to validate multiple scenarios with varying input values.

Debugging

The process of identifying, analyzing, and fixing bugs or defects in software.

Defect

An issue in the software that causes it to deviate from the intended behavior. Defects are identified during testing and need to be addressed by the development team to ensure product quality.

Defect Density

A metric used to measure the concentration of defects within a specific software element, such as a module, unit, or feature.

DevOps

A cultural and professional movement that emphasizes collaboration between software developers and IT operations. DevOps aims to shorten the systems development lifecycle and provide continuous delivery of high-quality software.

E

End-to-End Testing (E2E)

A type of testing that verifies the complete flow of an application from start to finish. End-to-End Testing ensures that all integrated components of a system work together as expected in a real-world scenario.

Endurance Testing

A type of non-functional testing, also known as "Soak Testing," that evaluates how a software application performs over an extended period. The goal is to identify potential memory leaks, degradation, or performance issues that may occur after prolonged use.

Exit Criteria

The predefined conditions or set of requirements that must be met before concluding a particular phase of testing or the overall testing process. Exit criteria help ensure that the software meets the desired quality standards and that no critical defects remain unresolved.

Expected Results

A hands-on approach to testing where testers actively explore the application to identify potential issues. Unlike scripted testing, exploratory testing is dynamic and emphasizes the tester’s skill, intuition, and experience to uncover defects.

Exploratory testing

A hands-on approach to testing where testers actively explore the application to identify potential issues. Unlike scripted testing, exploratory testing is dynamic and emphasizes the tester’s skill, intuition, and experience to uncover defects.

F

Fault Tolerance

The ability of a system to continue operating correctly in the event of a failure of one or more of its components. Testing for fault tolerance involves intentionally introducing errors to assess the system's robustness.

Functional Testing

A type of testing that verifies that the application operates according to the required specifications. Functional testing ensures that all features and functions perform correctly under specific conditions.

Fuzz Testing (Fuzzing)

A security testing technique where random or unexpected inputs are sent to a system to detect potential vulnerabilities. Fuzzing helps identify security flaws, crashes, and buffer overflows that could be exploited by attackers.

G

Gray Box testing

A hybrid approach combining elements of both Black Box and White Box testing. Grey Box testing provides testers with partial knowledge of the internal workings of the application, allowing them to test both the functionality and the structure of the software.

GUI testing

Testing that focuses on the graphical user interface of an application. GUI testing ensures that the interface meets design specifications and provides a positive user experience. Automation tools are often used to perform GUI testing efficiently.

H

Heuristic Evaluation

A usability inspection method where evaluators examine the interface and judge its compliance with recognized usability principles (heuristics). This evaluation is often used in GUI testing to identify usability issues.

History

A record of all changes made to a test, enabling users to track and identify the root causes of errors. Maintaining a history log is crucial for understanding the evolution of a test and resolving issues effectively.

I

Integration testing

Integration Testing Testing that focuses on the interactions between different modules or systems. Integration testing validates that the components of a system work together as intended, ensuring that data is correctly exchanged and control is properly transferred between them.

Isolation Testing

Testing that isolates a specific component or module from the rest of the system to identify defects within that component. Isolation testing is useful for narrowing down the source of a problem.

J

JUnit

A popular framework used for unit testing in Java applications.

K

Keyword-Driven Testing

A type of automated testing where test scripts are created based on keywords or action words representing various functionalities.

L

Latent Defect

A defect that exists in the system but has not yet caused a failure because the conditions under which it would cause a failure have not been met. Latent defects are often discovered later in the product lifecycle or after the product has been deployed.

Load testing

A performance testing technique used to evaluate how a system behaves under expected load conditions. Load testing helps identify potential bottlenecks and ensures that the system can handle anticipated traffic without performance degradation.

M

Manual testing

Testing performed by human testers without the use of automation tools. Manual testing is essential for scenarios that require human judgment, such as exploratory testing or user experience evaluation.

Monkey Testing

A type of testing where random inputs are provided to the software application to test its stability and error-handling capabilities. Monkey testing is often used to identify unexpected crashes or behaviors that may not be covered by structured test cases.

Mutation Testing

A technique used to evaluate the quality of software tests by introducing small changes (mutations) into the code and checking if the tests detect these changes. If the tests fail to catch the mutations, it indicates that the test suite may be insufficient.

N

Negative testing

Testing that involves inputting invalid, unexpected, or incorrect data to ensure the system can handle such inputs gracefully. Negative testing is crucial for identifying weaknesses in the system's error handling and ensuring robustness.

Non-Functional Testing

Testing that focuses on non-functional aspects of a system, such as performance, usability, reliability, and scalability. Non-functional testing ensures that the system meets the specified criteria for these attributes.

O

OnlineTestConf

OnlineTestConf is a free, annual online testing conference hosted by PractiTest, featuring leading industry experts and up-and-coming speakers. The conference provides a platform for sharing knowledge, discussing trends, and exploring the future of software testing.

Orthogonal Array Testing

A systematic and statistical way of testing interactions between different combinations of variables. This method reduces the number of test cases needed while ensuring coverage of significant combinations.

P

Pair Testing

A testing approach where two team members, typically a tester and a developer, work together on testing activities. Pair testing combines the strengths of both roles to identify defects more effectively.

Penetration Testing (Pen Testing)

A security testing technique that simulates an attack on a system to identify vulnerabilities that could be exploited by malicious users. Pen testing helps in finding security weaknesses and improving the system's defenses.

Performance testing

A type of testing that evaluates the speed, responsiveness, and stability of a system under various conditions. Performance testing ensures that the application meets performance requirements and remains reliable under stress.

Positive Testing

A type of testing that involves providing valid and expected inputs to the software to ensure it functions as intended. Positive testing verifies that the software behaves correctly under normal conditions.

PractiTest

A comprehensive test management platform that provides a single source of truth for quality assurance activities. PractiTest integrates with various tools and supports multiple testing methodologies, helping teams manage their testing efforts effectively.

Q

Quality Assurance (QA)

QA is the process of ensuring that the product is released to market in a level that will satisfy the business requirements and user expectations. It contains the activity of various software testing elements, but also looks at the broader picture and involves multiple stakeholders in the organization.

R

Requirements

Detailed specifications that describe the functionality, behavior, and constraints of a software system. Requirements serve as the foundation for all subsequent development and testing activities.

Requirement Traceability Matrix (RTM)

A document that maps and traces user requirements with test cases. The RTM ensures that all requirements are covered by test cases and helps in assessing the impact of changes on the system.

Regression Testing

Testing that is conducted after changes have been made to the software to ensure that existing functionalities still work as expected. Regression testing helps detect any unintended side effects of new code changes.

Regression Suite

A collection of test cases designed to be run repeatedly to ensure that new changes do not negatively impact the existing functionality of the software. The regression suite is updated regularly to include new test cases as the software evolves.

Risk Assessment

The process of evaluating the likelihood of each identified risk occurring and its potential impact on the project or software.

Risk-Based Testing

A testing strategy that prioritizes testing activities based on the level of risk. Higher-risk areas of the application are tested more rigorously, ensuring that the most critical parts of the system are stable.

S

Sanity Test

A subset of regression testing focused on verifying that a specific section of the application is still working after a minor change. Sanity testing ensures that the affected functionality is still operational without delving into deeper testing.

Scalability Testing

A type of non-functional testing that evaluates how well a system can scale up or down in response to varying load levels. Scalability testing helps ensure that the application can handle growth in user base or data volume.

Stress Testing

A form of performance testing where the system is subjected to extreme conditions to determine its breaking point. Stress testing helps identify the system’s limits and ensures it can recover gracefully from failures.

Security Testing

Testing aimed at ensuring that the application meets security requirements and protects data from threats. Security testing involves evaluating the application for vulnerabilities, potential exploits, and compliance with security standards.

Session-Based Testing

A structured exploratory testing approach where testers test the software in focused sessions, typically lasting 60-90 minutes. Each session has a specific charter or goal, and the tester records their observations, findings, and any issues encountered.

Shift Left Testing

An approach to software testing where testing is performed earlier in the development lifecycle, typically starting from the requirements and design phases. Shift left testing aims to identify and fix defects as early as possible, reducing costs and improving quality.

Shift Right Testing

A testing approach where testing continues after the software has been deployed to the production environment. Shift right testing involves monitoring, validating, and testing the software in real-world scenarios, ensuring it continues to meet performance, reliability, and security standards.

State of Testing™

The annual report by PractiTest that provides insights into current and future trends in the software testing industry. State of Testing™ helps QA professionals stay updated on the latest developments and maintain their competitiveness.

Smoke Testing

A preliminary testing phase that checks whether the basic functionalities of the application are working correctly. Smoke testing is often used to determine if a build is stable enough to proceed with further testing.

System Testing

A level of testing where the complete, integrated software application is tested as a whole. System testing verifies that all components work together correctly and that the system meets the specified requirements and business needs.

T

Test-Driven Development (TDD)

A software development methodology where tests are written before the code is developed. TDD emphasizes writing minimal code necessary to pass the tests, leading to cleaner, more maintainable code.

Test Case

A set of conditions and steps used to verify that a specific aspect of the software works as intended. Test cases include input data, execution conditions, and expected results.

Test Coverage

A measure of the extent to which the software’s code, requirements, or functionality has been tested. Test coverage helps identify areas that have been tested and areas that still need to be tested, ensuring comprehensive testing.

Test Data

Data used to execute test cases and validate the software’s functionality. Test data may include valid, invalid, boundary, and edge-case inputs to ensure comprehensive testing.

Test Environment

A controlled environment where testing is conducted. The test environment includes the hardware, software, network configurations, and other elements necessary to replicate the production environment.

Test Harness

A collection of software and test data configured to test a program unit by running it under varying conditions and monitoring its behavior and outputs. Test harnesses are used to automate the testing of software modules.

Test plan

A comprehensive document that outlines the scope, approach, resources, and schedule of the testing activities for a project. The test plan provides a roadmap for testing and ensures that all aspects of the software are thoroughly tested.

Test Management

The process of planning, executing, tracking, and reporting all testing activities within a software development project. Test management involves coordinating resources, managing test cases, issues, requirements, and eventually ensuring that testing objectives are met.

Testing Metrics

Quantitative measures used to assess the quality of the software and the effectiveness of the testing process. Testing metrics provide insights into areas such as defect density, test coverage, and test execution progress.

Test Script

A set of instructions written in a scripting or programming language to automate the execution of test cases. Test scripts define the steps to be performed, input data to be used, and the expected results, allowing repetitive testing tasks to be carried out consistently and efficiently.

Test Strategy

A high-level document that outlines the general approach and principles for testing the software. The test strategy defines the scope, objectives, resources, methods, and types of testing to be performed, aligning with the project’s overall goals.

Traceability

The ability to link test cases back to their corresponding requirements and defects. Traceability ensures that all requirements are tested and that the impact of changes is fully understood.

U

Usability Testing

A testing technique that evaluates how easily and effectively users can interact with a software application. Usability testing focuses on the user interface and experience to ensure the application is intuitive and user-friendly.

User Story

A short, simple description of a software feature or functionality from the end-user's perspective. User stories are often written in a specific format, such as "As a [role], I can [capability] so that [benefit]," and are used to capture requirements and guide the development process in Agile methodologies.

User Acceptance Testing (UAT)

UAT is the final testing phase where the software is tested by the end-users to ensure it meets their needs and requirements. UAT is critical for validating that the system is ready for production deployment.

Unit Testing

A type of testing that focuses on verifying the smallest testable units of code, typically individual functions or methods. Unit testing is usually automated and performed by developers to catch issues early in the development process.

V

Version Control

The management of changes to documents, programs, and other information stored as computer files. Version control systems allow multiple people to work on a project simultaneously, track changes, and revert to previous versions if needed.

Visual Testing

A testing activity that compares visual elements of a system against a predefined design to ensure they match.

W

Waterfall

Waterfall is a traditional software development methodology where the project is divided into distinct phases that follow a linear, sequential order. Each phase must be completed before the next begins, making it a rigid but straightforward approach.

Web Services Testing

Testing conducted on web services to ensure they perform as expected. This type of testing includes checking the communication between systems, data exchange, and compliance with web service standards.

White Box Testing

A testing method that involves examining the internal structure of an application. White Box testing is typically used to design test cases based on the code, logic, or data flow within the system.

Workaround

A temporary solution to a problem that allows the system to continue operating until a permanent fix is available. Workarounds are often used to address critical issues that cannot be immediately resolved.

14 day free trial, no CC required

Share the article

Shift your testing
Forward