What is Software Testing?
Software Testing is the process of executing software in a controlled manner with the intent of finding software bugs. Testing software is operating the software under controlled conditions, to:
1. Verify the software behaviour
Verification is the checking or testing of items, including software, for conformance and consistency by evaluating the results against pre-specified requirements. [Verification: Are we building the system right?]
2. Detect errors
Testing should intentionally attempt to make things go wrong to determine if things happen when they shouldn't or things don't happen when they should.
3. Validate software is what user wanted.
Validation is the process of checking that what has been specified is what the user actually wanted.
Software bugs will almost always exist in any software module with moderate size: not because programmers are careless or irresponsible, but because the complexity of software is generally intractable.
Most of the defects in software are design errors, not manufacturing defects. Testing is more than just debugging. The purpose of testing can be quality assurance, verification and validation, or reliability estimation. Testing can be used as a generic metric as well.
The purpose of testing is verification, validation and error detection in order to find problems â€“ and the purpose of finding those problems is to get them fixed.