Java Reference
In-Depth Information
Static testing procedures test the program not by executing it, but by inspecting and reviewing the
code and performing detailed walk-throughs. It is aimed at verification. On the other hand, dynamic
testing procedures test the program by executing it with carefully selected test cases. It is thus more
related to validation. The test cases can be chosen according to a white box or black box strategy.
In white box testing, they are selected by thorough inspection of the source code of the program;
for example, by making sure all the branches in an if-then-else selection are covered, boundary
conditions for loops are verified, and so on. One popular approach is to intentionally inject faults
in the source code, which then need to be tracked down in a follow-up step. Black box testing con-
siders the program as a black box and does not inspect its internal source code. One example is a
procedure that tries to test all possible input parameter combinations. It is especially important to
also test what happens when impossible values are entered (such as a negative value for weight and
height, value of 0 for height, missing value for gender, and so on). Obviously, this becomes compu-
tationally infeasible in case many inputs are present and intelligent sampling procedures could be
adopted to test as many useful input combinations as possible.
Software development typically has two phases of testing. Alpha testing is done internally by the
application developers before the software is brought to the market. In beta testing, the software is
given to a selected target audience and errors are reported back to the development team.
softWare maintenance
Software is always dynamically evolving, even after delivery. Maintenance is the activity of adjusting
the program after it has been taken into production. This is done to boost its performance, solve any
remaining errors, and/or accommodate new user requirements. Maintenance typically consumes a large
part of the overall software development costs (up to 70% or more according to some estimates). This
can be partly explained by the fact that much of the software people work with today is relatively old
(legacy software) and has been maintained on an ongoing basis. This section covers the four main types
of maintenance. They are categorized according to their intended goals.
adaptive maintenance
Adaptive software maintenance refers to modifying a program to accommodate changes in the envi-
ronment (both hardware and software). An example of this is a new Windows release with new fea-
tures added (which can also be used by the program) and old features removed (which can no longer
be used by the program).
perfective maintenance
This refers to enhancing a program to support new or changed user requirements. Consider again
the BMI example. When the user wants to be able to enter height in feet units and weight in pound
units, this is a perfective maintenance operation.
corrective maintenance
Corrective maintenance aims at finding errors during runtime and fixing them. A further distinction
can be made here between emergency fixes (which need to be solved as quickly as possible due to
their critical relevance) and routine debugging (which is less urgent).
 
Search WWH ::




Custom Search