A new service, or new version of an existing service, can be tested using actual production requests and services. A request received by a production service, along with the response generated by the production service, is forwarded to a shadow service. The shadow service forwards the request to the new service, which generates a test response and sends the test response back to the shadow service. The shadow service utilizes a comparison engine operable to compare the responses for significant differences. Any significant differences can be logged, reported on, or added to statistics for the new service being tested.