Testing covers the whole software lifecycle, not just running the program. For a payroll system, testing includes reviewing the requirements for completeness (static testing), designing test cases from the payslip rules, executing them against the system (dynamic testing), and evaluating whether the system is fit for purpose. The goal is to determine that the system satisfies specified requirements, to demonstrate fitness for purpose, and to detect defects.
What is the difference between testing and debugging? Testing is a process of planning, preparation, and evaluation to find defects and demonstrate quality. Debugging is the development activity of locating and fixing the cause of a detected defect. Testing finds the defect; debugging removes it.
Is testing only about executing the software? No. Testing includes static activities such as reviews of requirements, design, and code. Static testing finds defects without executing the software, often earlier and cheaper.
What does “fit for purpose” mean? That the software demonstrably meets the needs of its users and stakeholders in practice, beyond the letter of the specified requirements.
Can testing prove the absence of defects? No. Testing can only show the presence of defects, not their absence — exhaustive testing is impossible except in trivial cases.