I want to setup a dedicated test computer that can be restored to a specific system state. The reason for that is that the software tests to be executed on that machine include the installation process. Software can certainly be uninstalled, but that often does not revert the whole system back to its original state.
I often run into problems like software failing when being installed on a freshly setup operating system or reinstalling software giving different results than newly installing it.
In short, I want to test the software deployment.
I don't always want to start from scratch by formatting the drive and installing the operating system. The used operating systems are Windows. I want to be able to easily restore the state of just having installed the operating system, for example.
I found 3 ways of achieving that:
- Use some cloning/mirroring software to "capture" the state of the hard drive.
- Use the system restore point.
- Use virtual machines.
How do these compare in terms of reproducibility and convenience for software tests?
- Cloning drives seems to be the most straight forward approach.
- With the system restore points, I am not sure if they revert the entire system. Will this also remove windows updates etc? It seems to be a rather convenient option to be able to restore the system this way from within the system itself.
- Virtual machines seem to give the best out of both worlds. However, the tests involve connected hardware and adding the virtualisation as another layer might be another source for change of behaviour of the software.