Wednesday, August 23, 2006

Sharing the Environment

Years ago,  my first QA job actually, we were sparse on resources and had one lab for everyone.  Yup.  A server for all, and a database to share.  This was for a start-up that had limited resources and money, QA was brought in after Development really got under way so it was a lot of catch-up.  Originally, until we got the middle-ware stable the Development Leads did the actual releases as well, with input from me, so if there were issues or something missed they could discern the issues easier.  Still it was all we could do, so we needed to work out the risks.

Here is how we ended up doing it.
  • Web Site, seperated out the main home directories, easy enough to do.
  • Web Server, this was the tricky one, because it was a compiled executable and when it was updated mostly they were library files.  Really we just promoted the new files, even if they were the same as the existing ones, not something I would recommend but it worked at the time.
  • Database, sort of tricky but we just used different Oracle instances and that allowed us to test in isolation.
  • Other middleware, which was the bulk of the code, we handled this by reinstalling.
Was it full of risk?  Sure.  But we also had weekly or bi-weekly releases, once a package was out we had another coming in.  This did work for us for a year and a half, it was all for one Customer so in that we even had an easier time.  That Customer went on to be a fairly large ISP in the UK so we were doing something right on the back end, there were few problems that arose after deployment.  So sharing an environment can be done,  but you need to be aware of EVERY potential risk, especially when you are testing in a dev environment that already has the tweaks made for fixes - and may not be included in the package.

To me the whole idea of Risk Management is what needs to be done for every release or build coming into Test, if you don't know your environment enough to see the Risks then you can set yourself up for trouble.  Its worth time to ask "What if..?" questions all the time, some Risks you won't know until you have experience to ask the questions, and some will come from doing the releases and seeing the code work in the field.  The goal is to minimize those issues that arise from the field, or to eliminate them entirely (a good pipe dream).

Would I do testing like this again?  No.  I've learned that having your own environment that is yours and yours alone to test with is the best way to mitigate everything.  I know it can be done to be in the same environment as Development, I just would never recommend it.

No comments: