Static Software Testing: Making the Code Clean
As Early As Possible
During the stages of development of software, there is
need for conducting static software testing on the software
before it is released either to the customer for use in
production or to the market for sale. Static software testing
is one form of software testing where we do not have to use the
software for testing. This is contrary to other testing methods
where the program code has to run e.g. in dynamic testing it is
essential that you run the software for testing. This article
analyses the importance of static testing in the software
testing process and look at some considerations which need to
be borne in mind when it is being carried out.
Static testing is also called as dry run testing. This is a
form of software testing where the actual program or
application is not used and analysis of a program is carried
out without executing the program. In this testing method the
programmers manually read their own code to find any errors in
the software. This is not a detailed test and it checks only
for the sanity of the code, document and algorithm.
This type of testing warrants checking of the code by
physically going through the syntax of the code line by line to
find errors; hence the best person to check is the software
programmer who has written the code. By running through the
requirements specifications of the software the Static software
testing can be done as part of black box testing; however, in
practice, it is done as white box testing.
Static code analysis is the analysis of computer software
that is performed without actually executing programs built
from that software. The analysis is performed either on the
source code or on the object code. The term is usually applied
to the analysis performed by an automated tool. The degree of
sophistication of the analysis performed by tools varies from
those that only consider the behavior of individual statements
and declarations, to those that include the complete source
code of a program in their analysis. The analysis highlights
possible coding errors to formal methods that mathematically
prove properties about a given program. Some of the static
analysis tools are lint-like tools and metric tools and these
are used for static testing of software. These tools are
effective in checking the static within the system. The main
advantage in finding bugs while doing a static software test is
that they are inexpensive to fix than if they were discovered
later in the development
Software testing can also be categorized based on how it is
executed. Execution could be in the form of verification
or static analysis or it could be validation or dynamic
analysis. Verification is the human examination or review of
the work product. There are many forms of verification which
ranges from informal verification to formal verification.
Verification can be used for various phases in SDLC and can be
in the form of formal inspection, walkthrough or
buddy-checking. Static software testing is part of the
verification process. The verification process indicates to the
software testers and developers that the system and software
met the requirements and qualifications for quality. This is a
signal for moving on to the next phase of software testing.
Static software quality analysis techniques are useful in
debugging at the code level and helps in a clean software
development. Such testing at the code level as it is being
written ensures that problems are kept to a minimum for the
future. If the static software testing is kept as a normal part
of the development process, you will reduce the number of
errors to a minimum.
|