Not All Bugs Are the Same:Understanding, Characterizing, and Classifying Bug Types