Customer: “All, please stay from QA today since group X is testing application AX.”
Everyone finds something else to do and the application AX passes the tests gloriously. Application AX goes to production. Cheers!
A few days later …
End User: “Application AX is behaving weirdly in this scenario. Please help!”
The support team starts troubleshooting. The vendor who developed the application is contacted about the problem.
Vendor: “It was working in QA so your production environment must be bad.”
Blame first, troubleshoot later. It is impossible that QA could be bad and production good. Of course, the tests were exhaustive and covered every possible condition in every branch of code. And the testers are always able to perform every step faithfully. Buggy code? Ours?
The support team generates logs and provides to the vendor. It turns out to be a bug in the code that was not exposed due to the clean and isolated operation in QA. A bug so egregious that it would be a miracle to hide in the production environment simply because there would be other applications and users interacting with the infrastructure used by application AX.
Of course, some points could be made for providing a “controlled” environment for testing. I would be much happier if the application broke in QA and worked in production. When did passing become the goal of testing?
PS: Vendors should just visualize the fate of Enron when they start believing that they are the smartest guys in the room.