One system for all environments:
Example: The productive environment uses an os package with version 1.0 and the test environment uses version 1.2
Then it must be possible to install both versions on the same system.
Using different VMs doesn't have this problem.