Main principles and types of testing.
Main principles and types of testing.
Today, there are no testing methods able to fully cover the product, although people invented many approaches to check the quality of different types of products.
Therefore, it can be said that even though testing require significant technical knowledge, it is mostly creative activity. So, you should invent your own approaches to testing. However, the knowledge of theory will help you to avoid many errors in your work.
Most experts agree that there are seven basic principles of testing:
The testing shows that the tested object has errors. It can’t prove that there are none. Even if you haven’t found any errors, it doesn’t mean that they are absent.
The comprehensive testing is impossible (with the exception of basic cases). Even in a quite simple system you can create a great number of tests to check different system settings (as you don’t have enough resources for their implementation). Therefore, instead of comprehensive testing, you should highlight the high-risk program areas and give maximum emphasis on their checking.
The sooner the continuous integration services starts, the better. This is related to the fact that the cost of fixing the bug is growing in proportion to the duration of its existence. The cheapest way to fix the bug is to prevent its appearance before the beginning of the development by focusing the team on the possible places of its emergence. Being forewarned of the possible place of appearance of the certain bug in the certain code area, the programmer will perform all the necessary actions to avoid it at the stage of first drafting.
The principle called “Pesticide paradox” means that with every new run of the same set of tests you will find less and less bugs but miss more instead. This is due to the fact that, running such tests, you always check only one initial set of parameters, while ignoring every new and previously missed aspect. To fix the paradox, you should constantly complement the test sets with the new check-ups and approaches to testing, covering as much functionality of the program as possible.
The cluster principle suggests that most bugs are concentrated mostly in the same functions of the program. They say that 20% of the program code contains 90% of its errors. When testing, you should pay special attention to these program sites.
The principle of testing dependence on the context of the developed software. That is, the testing of banking systems differs from that of the site with movies and the programs of automatic guidance of Hellfire missiles of the class “ground-to air”. These products perform different tasks and, obviously, require different kinds of tests.
If the tested system is neither cost-effective (i.e., the amount of resources, spent on the development, is higher than the income, which is planned to get from the introduction of the product) nor useful or able to cope with the competition of similar products, no matter how good you find and fix bugs, you won’t sell it. So, your main task is to make the product maximally user-friendly, affordable, competitive and able to meet the customer requirements.