From the sounds of your enviroment, i would think that you would at least need the following:
Develepment Environment - For Developers to run unit tests
Test Enviroment - Testers to run functional system and regression tests
Integration and or pre-production - Often for stability, performance, load testing against production data to prove code stability in production environment and prove exection against 'real' rather than 'simulated' data.
Q2. Testers should in the main be working in your test environment and in integration/pre-production environment at the end of testing cycle possibly with QA and Business Reps.
Q3. I have often found running against production data not only provides the business with confidence in the delivered code, but also (more often than not) un-earths unusual problems which are not caught by original test phase, simply due to the fact that test data is never usually as complete as production data.
Q4. In the organisations i've worked in in the past, there is often little differnce in the Pre-Production and QA phases. These are often carried out on the same platform running similar tests but by different individuals. E.g System Test Analyst/QA Analyst/Acceptance Testers
Just my tuppence worth.
Hope this helps.
[This message has been edited by coling (edited 04-08-2002).]