Improper data initialization is one of the most fertile sources of error in computer programming. Developing effective techniques for avoiding initialization problems can save a lot of debugging time.
The problems with improper initialization stem from a variable's containing an initial value that you do not expect it to contain. This can happen for any of several reasons:
The variable has never been assigned a value. Its value is whatever bits happened to be in its area of memory when the program started.
For a testing approach based on data initialization and use patterns, see "Data-Flow Testing ...