About Software Testing


Many organizations involved in software development, up to 50% of funds allocated for the development of programs to spend on testing, that makes billions of dollars around the world as a whole. And yet, despite the enormous capital investment, knowledge about the essence of testing is clearly not enough and most software is unreliable is not acceptable, even after "Thorough testing."

On the state of affairs is best illustrated by the fact that most people working in the field of data processing can not even correctly define the word "test", and it’s really the main reason failures.

"Testing – the process of confirming the correctness of the program and demonstrates that the errors in the program there. "The main drawback of this definition is that it is absolutely wrong, in fact it’s almost the definition of antonym of the word "test". Reader with some programming experience already, probably understands that it is impossible demonstrate the absence of errors in the program. Therefore, the definition describes an impossible task, and since testing is often still performed with success, at least with some success, such definition is logically incorrect. Proper identification test as follows: Testing – the process of implementation of the program with the intent to find errors.

It is impossible to guarantee the absence of errors in a non-trivial program; in the best case you can try to show the errors. If the program behaves correctly for a solid set of tests, there is no basis to assert that there are no errors with certainty we can only say that it is not known when the program is not working. Of course, if there are reasons consider this set of tests capable of with a high probability to detect all possible errors, then we can talk about some level of confidence in correctness of the program established by these tests.

Psychological experiments show that most people Having set the goal (for example, show that there are no errors), is guided in its activities to achieve this goal. Testovik subconscious will not allow afford to act against the target, ie, to prepare a test that would reveal one of the remaining bugs in the program. As we all recognize that excellence in design and coding of any program is unattainable and therefore, each program has some bugs, the most productive use of testing will find some of them. If we want to achieve this and avoid the psychological barriers that prevent us to act against this goal, our goal should be that to find as many errors. We formulate the fundamental conclusion:

If your goal – to show the absence of errors, you. find them not too a lot. If your aim – to show errors, you will find a significant part of them.

Reliability can not be programmed as a result of testing, it is determined by the correctness of the design phase. The best solution reliability issues – from the very beginning to avoid mistakes in the program. However, the likelihood that there will be perfect to design more program, is infinitesimal. The role of testing is just to locate a few bugs remaining in the well designed program. Attempts by testing to achieve Reliability poorly designed program entirely fruitless.

Testing is a rather unusual process (which is why it is and is considered difficult), because this process is destructive. The goal of Reviewer (testovika) – get a program to get off. He is pleased when he does, but if the program at its test did not go astray, he does not satisfied.

Another reason for which is difficult to talk about testing – it is the fact that is known about him very much. If today we have 5% of those knowledge about the design and the actual programming (coding) who will have by 2000, then on the testing we know less than 1%.

See Also

    Advertising

    Archives