Over the weekend I was telling Jon Bach about a problem my wife and I have. We have Cicada Killer Wasps. They are big, scary, and when you see them, you run. Worse, they are hard to kill and they are really mean. This made both Jon and I think of James Bach's dead bee heuristic and we developed a new one for bigger and scarier bugs like Cicada Killer Wasps.
The dead bee heuristic works like this, when you see a bee in your living room, you run for something to kill it. When you get back and you don't see the bee any longer, you don't just say, "Oh, I guess he left." and stand down. No you say, "That darn bee's here somewhere..." and you stay on high alert! You wait for the bee to come back. The dead bee heuristic says I need to see the dead body or the bee fly out the window before I stop looking.
This applies to testing in the following way. If you find a bug, and you apply the dead bee heuristic, you will keep trying to reproduce the bug until you find it (dead body) or until you convince yourself it was truly user error (fly out the window).
Now what about Cicada Killer Wasps? I came up with a new heuristic. If the bug's big enough, outsource the problem. I thought of this because I thought about how I don't want to kill the Cicada Killer Wasps because all the scenarios involve me getting stung - badly. That made me think of testing problems I don't want to solve because they may involve me getting stung - badly.
For example, I may be working on a project that needs configuration testing. I'm not equipped to do configuration testing! I don't know how to kill configuration testing bugs. I don't have the tools or the highly skills configuration testing bug hunters. So, like with Cicada Killer Wasps, it may make sense for me to call in the configuration testing experts and outsource my configuration testing to a test lab (like Jon's).
That way I can be reasonably sure I don't get stung.
The dead bee heuristic works like this, when you see a bee in your living room, you run for something to kill it. When you get back and you don't see the bee any longer, you don't just say, "Oh, I guess he left." and stand down. No you say, "That darn bee's here somewhere..." and you stay on high alert! You wait for the bee to come back. The dead bee heuristic says I need to see the dead body or the bee fly out the window before I stop looking.
This applies to testing in the following way. If you find a bug, and you apply the dead bee heuristic, you will keep trying to reproduce the bug until you find it (dead body) or until you convince yourself it was truly user error (fly out the window).
Now what about Cicada Killer Wasps? I came up with a new heuristic. If the bug's big enough, outsource the problem. I thought of this because I thought about how I don't want to kill the Cicada Killer Wasps because all the scenarios involve me getting stung - badly. That made me think of testing problems I don't want to solve because they may involve me getting stung - badly.
For example, I may be working on a project that needs configuration testing. I'm not equipped to do configuration testing! I don't know how to kill configuration testing bugs. I don't have the tools or the highly skills configuration testing bug hunters. So, like with Cicada Killer Wasps, it may make sense for me to call in the configuration testing experts and outsource my configuration testing to a test lab (like Jon's).
That way I can be reasonably sure I don't get stung.