1. A computer implemented method for testing a software application having a first subroutine for handling a first error that may occur during execution of the software application, the computer implemented method comprising: inserting a first code into the software application, wherein the first code will cause the software application to return the first error upon execution of the software application; executing the software application, wherein the first error occurs during execution; generating a first error report using the first subroutine; and storing the first error report in a memory.