The secret passages – shadowing testing
Shadowing or mirroring testing is a type of test that is performed to verify two different versions of a system behave in the same way. This testing is especially useful when inheriting a system that already has little testing, to provide a quick check that everything is still in order.
It is done by recording the inputs of a system, as well as its outputs (careful here regarding what data is recorded, including how and who has access to this data), and then verifying them with the outputs in the new system. These replayed tests act like mirrors or shadows of the behavior of the old system over the new system.
Once the new system has been proven correct, we can switch off the servers to get the new code.
Shadow testing with an API
When an API is available and if the system allows it, it is better to make API calls to both production and pre-production environments with the same inputs so that the outputs are as close to each...