First of all, what is “software bug”? Everyone understands that it isn’t an insect ( well, not anymore, anyway :-) ).
According to Wikipedia: software bug is an error, flaw, failure, or fault in a computer program or system that causes it to produce an incorrect or unexpected result, or to behave in unintended ways.” Some bugs can be detected easily during development. But some bugs might be found late in the development process.
There have been many attempts to classify the bugs.
Most of these represent the general classification which is valid in the cycle of software development and evolution. The classification scheme given in Orthogonal Defect Classification defines eight categories of defects as assignment, checking, algorithm, interface, timing/serial, function documentation, and build/pack/merge. Most everything in such classification understandable, useful and boring.
But, sometimes, going through a code, you may face a dark horse from the bug's world. There are ...