Unit testing has become a staple of software testing and rightfully so. When constructed properly they provide a level of assurance certain functions will behave correctly given a set of predefined inputs. It is not uncommon, however, for a system to hav 99% unit test coverage and still have issues (as this sentence subtly points out).
Unit tests work well at a functional level but there are a significant number of real-world issues that unit tests simply can not catch.
- System Level Errors
- Performance Related Issues
- Timing Related Issues
- Integration Issues
- Design Related Issues
- CSS Errors
- Database Errors
- Deployment Related Issues
Actually, the list goes on and on. The bottom line is unit tests should be a piece of the larger picture, not the only form of testing used to validate your product.
Nothing beats a person actually sitting down and going through the product manually to verify all aspects of a system are operating properly. Unfortunately, this is a manual time consuming process and even then we can not be guaranteed the manual testers did not overlook something or just get bored with the process and started cutting corners.
These real-world issues are typically addressed using an automated system level testing approach which is exactly what Test Case Central provides.