What is software testing?

Why Interviewers Ask This

Interviewers use this question to quickly assess whether a candidate has the foundational knowledge required for Software Testing / TDD development. It reveals whether you understand the building blocks that more complex concepts rely on.

Answer

Software testing is the process of evaluating a software system to identify gaps, errors, or missing requirements compared to the actual requirements. It involves executing software with the intent of finding defects and verifying that the software does what it is supposed to do. Testing serves multiple purposes: (1) Defect detection: find bugs before they reach users. (2) Quality assurance: verify the software meets requirements. (3) Reliability: ensure the system behaves correctly under various conditions. (4) Documentation: tests serve as living documentation of expected behavior. Testing can be manual or automated, functional or non-functional, and is a critical part of the software development lifecycle. The earlier defects are found, the cheaper they are to fix — a bug in production can cost 100× more to fix than one found in unit testing.

Pro Tip

Before answering, structure your response: one-line definition → real-world analogy → concrete example from a project. This makes even complex Software Testing / TDD answers easy to follow.