Functionality and user acceptance testing can be performed in whatever environment you choose as long as the environment is used exclusively for one purpose at a time. We generally use four environments (development, test, user acceptance, and production). Development and test are used by the application developers to develop and test the application, while the user acceptance environment is used by business analysts to perform functional (system) testing followed by end-user acceptance testing then deployment to production. Sometimes an environment can be temporarily used for other purposes, for example the test environment can be used for functional testing and the user acceptance environment can be used for performance testing. The key is to choose a purpose for an environment and communicate this to everyone so that the environment can be isolated to allow proper testing without conflicts.