What is software testing?
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.