Below are not the only objectives of Software Testing:
– Software Testing is designed to establish that the software is working satisfactorily as per the requirements.
– Software Testing is a process designed to prove that the program is error free.
– Software The job of testing is to certify that the software does its job correctly and can be used in production.
Because, with these as the guidelines, one would tend to operate the system in a normal manner to see if it works and one would unconsciously choose such normal/correct test data as would prevent the system from failing. Besides, it is any way not possible to certify that a software has no errors, simply because it is almost impossible to detect all errors.
In a way, we can say that software testing is basically a task of locating errors. From the objective point of view, testing can be done in two ways:
Positive Testing: Operate application or software as it should be operated. Use proper variety of test data, including data values at boundaries to test if it fails. Check actual test results with the expected and see
– Does it behave normally?
– Are results correct?
– Does the software function correctly?
Negative Testing: Test for abnormal operations. Test with illegal / abnormal test data. Intentionally attempt to make things go wrong and to discover / detect and see
– Does the system fail / crash?
– Does the program do what it should not?
– Does it fail to do what it should?
Positive view of Negative Testing: The job of testing is to discover errors before the user does. A good tester is one who is successful in making the system fail. Mentality of the tester has to be destructive – opposite to that of the creator / developer which should be constructive.