Wednesday, April 3, 2019

Testing Philosophy


Software Testing covers a wide range of species activity, very similar sequence of development processes software. This includes setting objectives for the test designing, writing tests, testing, testing, and finally execution of tests and examination of test results. 
Plays a crucial role designing the test. Chance of a range of approaches to the development of philosophy,or the strategy of designing tests, shown in Figure 2. To oriented strategies in the design of tests is to consider two extreme approaches, which are at the boundaries of the spectrum. It is also noteworthy that many of those who work in this area, often throw in one or other extreme.
Supporter (or supporter), an approach consistent with the left boundary spectrum, design their tests, exploring the outer sheet or specification interface of the program or module that they test.Program he sees as a black box. Position it as follows: "I do not interested in looks like this program and I fulfilled all the commands, or all way. I’ll be satisfied if the program will behave as describe din the specifications. " His ideal - to test all possible combinations and value sat the entrance.
He likes the approach consistent with the other end of the spectrum,designing their own tests, studying the logic of the program. He begins with the fact that seeks to prepare a sufficient number of tests to ensure that every command was executed at least once. If it is a bit more tempted, he is designing the tests so that each team is a conditional jump performed in each direction at least once. His ideal - to check every way, each branch of the algorithm. In this case, it completely (or almost) no interested in the specification.
Neither of these extremes is not a good strategy. Reader,however, have probably noticed that the first of these, namely the one in according to which the program is seen as a black box,preferable. Unfortunately, it suffers the disadvantage that completely feasible
Consider a trivial attempt to test the program,receiving input three numbers and calculates their average.Testing of this program for all values ??of the input data is impossible.Even for machines with relatively low accuracy of calculations oftests would be counted in billions. Even If we had the computing power,sufficient to perform all tests in a reasonable time, we would spend on several orders of magnitude more time to prepare these tests, and then check. 
Programs such as real-time systems,operating systems and data management programs that preserve"Memory" of previous input data, is even worse. We would need software testing services program not only for each input value, but also for each sequence, each combination of input data. Therefore,exhaustive testing of all input data of any reasonable program impracticable.
These considerations lead to the second fundamental principle testing: testing - the problem is largely economic.Since exhaustive testing is impossible, we must restrict ourselves to something anything less. Each test should give the maximum benefit in comparison withour costs. This return is measured toyu probability that the test detect snot detected before the error. 
Costs are measured in time and cost preparation, implementation and verification of test results. Considering that the cost limited budget and schedule, one could argue that attesting, in essence, represents the art of selection tests maximum potential. Furthermore, each test should be representative certain class of input values, so that a correct implementation created some of our conviction that a certain class of input program is executed correctly. This usually requires some knowledge of the algorithm and the structure of the program, and we thus shifted to the right end of the spectrum.
Module Integration
The second important aspect of the test (after the design of tests) is a sequence of merging all modules in the system or program. This aspect of the problem usually does not receive sufficient attention and often considered too late. 
The choice of this sequence, however, is one of the most vital decision taken at stage testing, since it determines the form in which written tests, types of tools necessary testing sequence programming modules as well as the thoroughness and efficiency of all stages testing. For this reason, such decision should be made at the level of project as a whole and at a sufficiently early stage.
There is a wide range of possible approaches that can be used for the merge modules into larger units. In most general they can be considered as options for the six main approaches described in the following six sections. Immediately behind them is a section where proposed approaches are compared by their impact on software reliability software qa services.


No comments:

Post a Comment