Automated testing is an important part of software development. Developers should always write tests for the code they produce. This not only ensures that their code is correct, but will also help catch any future regressions as the codebase evolves.
Unfortunately, developers do not always do a good job of this. Often, they will only write tests for simple, happy-path cases. They will not cover edge cases, error cases or even different branches in the code. There are even times when developers do not write tests at all.
Code Coverage Reports
One way to catch insufficient testing is with code coverage reports.