All system tests and acceptance tests have to be executed in the target environment. This may be facilitated by developing and executing system tests in the host environment, then porting and repeating them in the target environment.
Target dependencies may prevent system tests developed in a host environment from being repeated without modification in a target environment. Careful structuring of software and tests will minimize the effort involved in porting system tests between the host and target environments.
However, fewer developers will be involved in system testing, so it may be more convenient to forgo execution of system tests in the host environment.
The final stage of system testing, acceptance testing, has to be conducted in the target environment. Acceptance of a system must be based on tests of the actual system, and not a simulation in the host environment