Failure to initialize a shared object can lead to data-dependent bugs caused by residues from a previous use of that object by another transaction. Note that the culprit transaction is long gone when the bug's symptoms are discovered. Because the effect of corruption of dynamic data can be arbitrarily far removed from the cause, such bugs are among the most difficult to catch.

Chapter 2, 3.4.2.

Software testing techniques by Boris Beizer

ISBN: 0442206720 This book is available from Amazon