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