I was actually involved in supporting a testing environment for a large European bank. The bank was really well funded, they had no money / budget worries to speak of. The goal was to upgrade one of their financial systems and in that sense they had a very good test plan.
They had a list of reports, transactions, and various processes that had to be tested and had to work. Well, everyone had a list of things that have to work but in order to proceed with the upgrade each and every point on this list had to work, and because it was a big client the vendor kept fixing the bugs that they found.
When I was brought into this, I was between projects and the company was looking for some work for me to do. The bank’s IT department was quite busy with other tasks so they gave me the support role for this system. My job was whenever a new fix was available I had to integrate it into the testing environment. I then had to restore their database so they had a known state to begin all of their pre-acceptance tests.
All in all, it was a fairly easy bit of work and gave me a small insight into one of the large banks. The thing that you have to remember is that this testing was taking place not in the bank but on our equipment in our office. The bank actually had very nice production machines and also had very nice testing machines.
Their problem was not that their infrastructure wasn’t good enough, it was actually much nicer than most of our equipment. The bank simply couldn’t quickly and easily get a database restored or have an external consultant install scripts, stored procedures or programs on their own machines. It was simply much more efficient to pay the vendor for their own testing environment and get the tests done in half a day of the change being available.
I wasn’t even allowed to work on one of their internal testing environments without one of their IT people typing in every command for me.