Unit testing will not catch every error in the program. By definition, it only tests the functionality of the units
themselves. Therefore, it will not catch integration errors, http://www.answers.com/topic/software-performance-testing - performance
problems or any other system-wide issues. In addition, it may not be easy to anticipate all special cases of input the program
unit under study may receive in reality. Unit testing is only effective if it is used in conjunction with other http://www.answers.com/topic/software-testing - software testing activities .
It is unrealistic to test all possible input combinations for any non-trivial piece of software. Like all forms of software
testing, unit tests can only show the presence of errors; it cannot show the absence of errors.
To obtain the intended benefits from unit-testing, a rigorous sense of discipline is needed throughout the software
development process. It is essential to keep careful records, not only of the tests that have been performed, but also of all
changes that have been made to the source-code of this or any other unit in the software. Use of a so-called "version control
system" is essential: if a later version of the unit fails a particular test that it had previously passed, the version-control
software can provide list of the source-code changes (if any) that have been applied to the unit since that time.
|