One of the hardest things about developing software is to test it thoroughly. This is especially true when simulating problems that require hardware, software, registry, or other changes. Making such ...