This often happens after the code is in use by many projects. Often any little change in functionality can have a snowball effect on other code, producing unexpected and disastrous results, usually in the form of bugs. Worse yet, they often do not appear immediately, making them harder to find, as they seem to appear from nowhere.
Software testing is a big field.
Most programmers venturing into this area will quickly become bored and discouraged. It is not a field that programmers typically like. However, it is a field that programmers need to be familiar with. Most do not have QA departments available, and those that do would certainly like to reduce the number of reported bugs. To keep interest, minimal time will be spent on theory.