Back to Course
Testing Fundamentals

Terms used in Software Testing

Building a Common Vocabulary

Software testing has its own terminology that helps professionals communicate precisely about defects, quality, and processes. Understanding these terms is essential for anyone involved in testing — whether you're a tester, developer, manager, or stakeholder.

Core Testing Terms

1. Defect

A defect is a flaw or imperfection in a software application that causes it to behave unexpectedly. Defects are the result of errors made during the development process. They can be found in requirements, design, code, or documentation.

2. Error

An error is a human action that produces an incorrect result. It is a mistake made by a developer, analyst, or tester. An error may lead to a defect being introduced into the software.

3. Bug

A bug is a colloquial term for a defect. It is often used interchangeably with "defect" in everyday conversation. Historically, the term originated from an actual insect (a moth) being trapped in a computer relay.

4. Failure

A failure occurs when a defect causes the software to deviate from its expected behavior during execution. While a defect is a static flaw in the code, a failure is the dynamic manifestation of that flaw when the code is run.

5. Fault

A fault is another term for a defect — the underlying problem in the software that can cause a failure if executed. The terms "defect," "bug," and "fault" are often used synonymously.

6. Defect Density

Defect density is a metric that measures the number of defects found per unit of software size (e.g., per thousand lines of code). It helps assess the quality of different modules and predict future defects.

7. Root Cause

The root cause is the fundamental reason why a defect occurred. Identifying the root cause helps prevent similar defects in the future, rather than just fixing the immediate symptom.

Distinguishing the Terms

  • Error → Human mistake (e.g., a developer uses the wrong variable).
  • Defect/Bug/Fault → The flaw in the software (e.g., the wrong variable is used in the code).
  • Failure → The observable incorrect behavior (e.g., the software crashes when the wrong variable is used).

Not all defects cause failures — some may be latent until specific conditions are met. Similarly, not all errors become defects — they may be caught during reviews before they are coded.

Other Important Testing Terms

  • Test Case: A set of conditions, inputs, and expected results used to verify a specific functionality.
  • Test Plan: A document describing the scope, approach, resources, and schedule for testing activities.
  • Test Strategy: A high-level plan that defines how testing will be conducted across the project.
  • Regression Testing: Re-running tests to ensure that new changes haven't broken existing functionality.
  • Acceptance Testing: Formal testing conducted to determine if the software meets the user's requirements and is ready for delivery.

Why Terminology Matters

Consistent use of testing terminology avoids confusion in defect reporting, meetings, and documentation. It ensures that everyone — from testers to developers to business stakeholders — understands the nature and severity of issues, leading to faster and more effective resolution.

Ready to master real-world software testing?

Learn manual and automation testing hands-on with mentor-led sessions.

Explore Course