Test Environment-Few questions..

Since, I couldnt 'comment' the following due to limitation in no.of characters (for blogspot comments) I am posting this as a separate post for Vasu's problem.

I am trying to answer with my experience, there may be huge no of permutations / questions for Vasu's question about Test environment.
IMHO, like any other QA Problems, there is no 'silver bullet' for this kind of questions.

There are (i) Number of questions to be asked to client (ii) Number of factors to be considered for analysis after getting the answers from client

Also, we may need to bang the client with questions repeatedly

Before going to client , QA person need to conside the nature of the project

Factors/Questions to client

(1) How end customer is going to use this application?
(2) What are the following are supported
    2.1.Databases
    2.2.Servers
    2.3.Server Operating Systems
    2.4.Client (Desktop operating systems)
    2.5.Browsers
    2.5.Replica of Databaseses/Webservers for load balancing
    2.6.Router,Firewall (and their required combo of installation, something like having DMZ, webserver inside firewall, outside firewall etc...)
    2.7.So on...............................
above said factors depends upon the project, what I said is in general, based on my experience.
(3) If the application is a project and dependent on heavy database transactions, then
    3.1 Is it possible to cut the production database periodically to QA database?
    3.2 If it is any nightly run, then situations dealing with deadlocks, or issues with integrity   
of data across databases/tables?
    3.3 Optimum setup so that loading the QA environment should take minimum time
    3.4 Size of Database
(4)Factors to consider for VMWares,
    4.1.The VMWare should be used for relatively less performance high functional testing
    4.2.High end base systems with large no.of VMWares are needed if and only if the testing  team  uses all the combinations of OSXBrowsersXServesXDatabase constantly
    4.3.Capacity of base machines are very important since, the performance of VMWares are based on the base system's capacity.
(5)Availability of Softwares including support
    5.1. Since QA deals with all OS/Servers, having a licensed version of each component is important, in one of my projects, we used solaris like OS without proper license, and all of a  sudden it went down, without support, it was a night mare of ITservices (&  QA)
    5.2. In case of evaluation copy of softwares, need to be informed to client beforehand (i.e it will expire any time and there wont be much support)
    5.3. Information about Patches/Service packs should be made clear (especially non-windows OS,Databases, browsers)
(6)Information about customer usage
    This is very important, but we may rarely get full information. Again without nature of project no body can get clear requirements on test environment.
(7)Prioritise combo
    If I.E 8 X windows XP X Oracle X Weblogic in Linux AS combo is most frequently used combo, then need to have additional space for that combo.
(8)Usage of additional softwares if, any
    e.g Share point,XML editor etc.
(9) Relevance of Test environment w.r.t Test data
    Test data is the fulcrum for test environment, if the test data doesn't suit any of your environment combo, eliminate the environment and declare before hand.
(10) Calculation of optimum usage of combinations, switching on and off the VMWares etc.

(11) How we are going to deploy new build in test environment, in different combo, how difficult it would be (e.g installing websphere in Solaris Risc environment, deploying new build in HP Unix etc) ,

corresponding expertise in QA team / IT services team.

(12) SPOC for test environment from IT services.

(13) Howmuch the  QA environment is in sync with dev and production environment (this is very IMPORTANT,depending upon the nature of the project)

(14) Accesability of QA environment by QA team, developers, IT services team from their desktop, from US (client environment) in case of trouble shooting and network setting accordingly.

(15) Security of the environment (like Anti virus softwares,Authentication,Authorisation, internet access from QA environment etc)

(16) Remote Desktop Access Policy, Domain Policy (Test environment is in separate domain? Child domain?, from QA's Dev's Desktop). In case of data transfer from production to QA database, the connection should be possible w.r.t domain policy. Also, admin permission for QA people over machines to install anything they want including automation tools & FTP tools.


(17) A good visio diagram , if needed.

(18) Client Sign off for version 1 of test environment doc :-)

Pheww...................... As you see it, this is very very generalised reply.

Forgot to add, in case of large test environments,

Racks,Switches, no.of monitors Vs VMwares plays a huge role and early planning will avoid nasty word wars!

Test Environment

I was recently involved in a project where the client asked me, "What kind of Test Environment do you think would be ideal for our application?". Frankly, i was speechless for a few minutes and then responded saying, "It depends on how your customers access the application". I know i was not correct but apparently i was not confident about what the right answer was. He again said, when i mean environment, i want to know what kind of Test environment you need for testing. How many servers do you need, is there a need for staging, how many VM's do you need, what kind of infrastructure(hardware + software) you need to replicate customer issues etc. I was not able to confidently answer him and hence asked for some time to revert.

Being in this league(QA) for a while now, i never had the opportunity to setup test environments or rather i never tried to gain knowledge in setting up test environments. After this experience, i realized how important it is for a Senior QA person to help clients in such cases since they completely rely on our experience to help serve their customers better. Request readers to share your thoughts.