Testing should not be performed by the person or team that developed the software. Testing should not be planned under the tacit assumption that no errors will be found. A necessary part of test documentation is the specification of expected results. Test for invalid and unexpected input conditions as well as valid conditions. The probability of the existence of more errors in a module or group of modules is directly proportional to the number of errors already found.
Testing is the process of executing software with the intent of finding errors.
Make sure there are no spurious output. Two philosophies are applied to test case design. It might also require the output of intermediate values within the program. A black-box test cannot guarantee correctness. White-box testing cannot ensure that all errors are detected, even if all paths of the program are executed.