languages (e.g. Pascal, Ada) can be formally defined. Preprocessors are
available that automatically check that the code is consistent with assertion
statements placed in it. These tools can be very effective in verifying small
well-structured programs.
Semantics is the relationship of symbols and groups of symbols to
their meaning in a given language [Ref 6]. In software engineering, semantic
analysis is the symbolic execution of a program by means of algebraic
symbols instead of test input data. Semantic analyser s use a source code
interpreter to substitute algebraic symbols into the program variables and
present the results as algebraic formulae [Ref 17]. Like program verifiers,
semantic analysers may be useful for the verification of small well-structured
programs.
4.5 TOOLS FOR TESTING
Testing involves many activities, most of which benefit from tool
support. Figure 4.5 shows what test tools can be used to support the testing
activities defined in Section 2.6
The following paragraphs step through each activity depicted in
Figure 4.5, discussing the tools indicated by the arrows into the bottom of
the activity boxes.
1. The 'specify tests' activity may use the Structured Testing Method and
Structured Integration Testing methods (see Sections 3.6 and 3.7).
Static analysers should be used to measure the cyclomatic complexity
and integration complexity metrics. This activity may also use the
equivalence partitioning method for defining unit test cases. Test case
generators should support this method.