There are different kinds of testing done for any software application under testing. In system testing alone there are testing done for performance, usability, stress, functional etc. Under functional testing there are exploratory, test case based, regression, smoke, sanity etc. kind of tests.
It can be seen that there are many types of testing is carried out in different kinds of testing. So how to ensure that all the effort done in testing pays off well.
Some of the best practices which can be adopted for any testing effort revolve around effectiveness of testing activities performed. Effective testing can be carried out only when a good testing plan is made first. The most important consideration in the test plan should be priority in testing and finding critical defects in the software product.
Any software product consists of many parts; usually in form of modules. Some modules are used more by end users than other modules. The modules used more should be put under a thorough testing. The end users will always find more defects in modules which they use more than the other modules. From business point of view, this also ensures that the critical parts of the software products are tested thoroughly to make sure that end users can use the product effectively without facing difficulties in using the software product because of any defects.
Then some modules will contain more number of defects than others. A thumb rule (actually the Pareto Chart method) tells us that 20% of the modules will contain 80% of defects and 80% of modules will contain only 20% of defects. Finding and more rigorously testing the modules containing most of defects is critical to the success of the entire testing effort because putting here effort will pay off in finding more defects than putting same amount of effort in finding defects in the other modules with less number of defects. This is the art part of the otherwise scientific activity of software testing.