1. At a computer system, a method for automatically determining the point at which a semantic error occurs in a software component of a software program using an error trace corresponding to a single component of the software program, the method comprising: an act of determining that a previously run test scenario configured to test a software program has failed to produce an expected result due to one or more semantic errors, the software program including at least one calling component and at least one called component, the calling component configured to call the called component, the call including one or more values to be used by the called component as inputs; based on the determination, an act of generating error trace code configured to monitor the called component, the monitoring including identifying input values received in the call from the calling component and return values generated by the called component, the error trace code comprising a plurality of checks configured to detect unexpected result values for each software component; an act of processing the test scenario using the error trace code, the error trace code detecting unexpected result values at the called component, the unexpected result values indicating a violation of specified allowable behavior for the called component; and an act of analyzing error trace information provided by each of the plurality of checks of the error trace to determine the point at which the semantic error occurs in the called component.