Basic Reasons Why Software Testing is Necessary