Types of Tests
There are a lot of places in your application where bugs can hide. And there are a lot of ways finding them. Below is a short description of most popular types of tests.
Unit tests show the quality of particular units of your application. Usually these are application requirements expressed in form of code that check some functionality to conform to specifications. Unit tests are automated, implemented by developers and most effective in finding bugs in business logic of your application.
Functional tests show how well your application works as a whole. Particular parts of your application may be ideally correct, but in real conditions they may fail to communicate properly with other parts of the application. For example broken links can be found by functional tests.
Regression tests are taken when you add new functionality. New functionality may break some other parts of the application as a side effect. It is important to run regression tests (usually in form of unit tests) after new features are added.
Stress tests show how your application is capable to work under significant load conditions.
Don’t forget that proofreading is important as well.
What Time to Allot?
Ideally the time of testing should be equal to the time of development. Unit tests can be developed in parallel with development, and even before development starts! If you have automated unit tests they shouldn’t take much time to run, and you can run them every day during development. And before you release your application to public you should carefully run all tests available.
Who Should Test?
Usually people are less effective in finding their own bugs. So it’s advisable, except the developers, to have someone else to test your application. Unit tests are unique in that developers can implement them themselves. Designers can run accessibility tests to some degree. It is said that support people are great in finding bugs, because they read a lot of users complaints and in regard to the application functionality they think like users. Users themselves can find a lot of bugs for you, so it’s a good idea to find some beta testers among your customers.