In open source there's a well known fallacy: "Given enough eyeballs, all bugs are shallow". This has not been my experience.
In my experience there's only one true way to fix bugs: replicate them.
And so the modern day way to replicate bugs is to implement the bug in a
Yes, this is another "tests are good" post. But I really believe that those who don't code with tests in mind are not yet enlightened to the "next level" of software development, and probably need a swift kicking in that direction.
The reason for posting this: I struggled for ages to try and figure out what was causing problems with concurrent access to our SQLite databases. I tried to think it through, and just wonder about the problem. I came to the (wrong) conclusion that there was something wrong with our network. Until we wrote a test. Once the test was written the solution dropped out in a few minutes. I'm kicking myself for not doing that sooner (though I can't blame myself too much as I'm not assigned to the project that uses SQLite any more).