Some of the issues of manual unit testing are:
- You will write test applications and throw away after doing your testing. After few weeks you may make some modifications to your code and at that time you may not find your old test application. So, you will have to write another test application.
- Large projects will have hundreds of classes and several class libraries. It is very difficult to write separate test applications for each of the classes in the project and save all of them for repeated testing in future.
- Test applications require a human person to test. You may test several possibilities on the first time, but you may not remember all of the test cases when you repeat the test in future.
- When you do manual test, you are manually verifying the result. Even if the result is wrong, you may not realize it and think that the test was success.
- It is not practical to repeat all tests manually before you make a product release everytime. It will take several hours or days to complete manual unit testing of every piece of code.
Automated unit testing solves all of the above problems.