These require using tools to analyze the source code (see section D.11).
These are usually applied to unit tests.
???
Symbolic evaluation
carried out by an automated symbolic evaluation tool places no special
requirement on the unit, except of course that it be in the language evaluated by the tool. This
involves ???dry-running??? the code, and recording the output values of variables algebraically
rather than using specific values for input variables (see section 7.9). This is usually applied to
unit tests.
Table 2.1 lists the techniques and summarizes their strengths and weaknesses. The techniques are
described later. For lists of tools and sources, see Appendix D
.
2.3 When Do We Start Testing?
Before we can release software for use we must be able to demonstrate both to the customer as well as
to ourselves that the software works. This is demonstrated by attempting to prove it does not work.
These attempts take place at four critical moments in the development of software:
1. The end of the coding phase, when each unit or separately compilable unit is tested in isolation.
2. At the end of the integration phase, when the entire system is tested to demonstrate that every
feature works as required. Integration testing per se is rare today, given the improvements in
compilers.
3. As soon as a reasonably stable system is available, when we test to see if its performance is sufficient
(when code turmoil has fallen enough, see Chapter 18).
Pages:
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117