ABSTRACT

One way to think about the problem, shown in Figure 10.1, is to imagine that we have a very large cake (software) that contains a few raisins (faults). The raisins were not in the recipe, but the raisins got into the cake because we were careless (or perhaps because we like raisins). The goal is to find the raisins. We do not know how many raisins there are, and the raisins can be anywhere in the cake. Several might be close together, even touching. There might be large regions of the cake with no raisins. If we examine the cake carefully, for example by cutting it into slices, some of the raisins might be revealed, but we will only see them where we slice the cake. Others might be lurking inside the slices, and cutting thinner slices does not ensure that we find all the raisins unless the slices are slimmer than a raisin. Remember, however, that the cake is very large.