views:

67

answers:

1

Hello Guys,

I need to setup testing LAMP environment in my office to work with outsourcing companies.

This is what I think should be done on my side:

  1. Setup testing web server with the same configuration as on production
  2. Setup testing SQL server with "fake data"?
  3. Outsourcers should have access only to some part of original code
  4. Outsourcers should use CVS to update their code
  5. Once testing is finished someone releases the update
  6. ............

How would you separate original code and database from testing environment, but keep it as close as possible to production?

What is the general practice for setting up testing environment and how other companies deal with outsourcers?

I will appreciate for any of your thoughts and ideas from your personal experience. Maybe someone can suggest some article on this topic.

Thank you a lot!

+1  A: 

I would suggest three databases - you have your production database which is live data and should never be used for development purposes. However, it is good to develop against production data so you should replicate your production database to use as a Development database, solely for running test code against.

You should probably have yet another backup serving as a QA database, so that clients can test your betas and RCs against production data without actually modifying any live information.

I keep two replicated databases at all times in the roles I've described, and rebuild them from the production database every week so that I know my code is being used in as close to a real-world scenario as I can get. This practice is entirely separate from any normal backups of a production database that you should already be doing.

Similarly, you have have three copies of code - your development code, which you check in to your version control every night. A QA site for clients and bug testers to test new code/features, and your regular production web site.

Jarrod
Hi Jarrod! Thanks a lot for your answer. Did you use original database for development/testing purposes or generated data? Do you know if there any general practice on how to give developers only part of code to work with? Do you think unit-testing should be involved in this case or not.
Kelvin
Usually I have the benefit of an existing database to work with. When I don't I usually develop the table structure and then generate 10-15 records for each with valid relations between tables.Unfortunately I don't have any experience restricting code from developers so I don't feel I can comment realiably on it (although I know that it is possible with certain version control systems).
Jarrod
Ok, Thanks Jarrod.
Kelvin