Quality Assurance is a fundamental component of all of the services we offer. Our technical PMs QA from the user experience perspective, our front-end developers QA across browsers and devices, and our senior developers QA using unit tests and build tools. We follow the “write the tests first” mantra, and often our test code is more complex than the actual deployed code.
E-commerce sites pose tangible QA challenges, and we complete end-to-end testing for each one. This means that we place live credit cards through live gateways, and verify that funds are visible in the client’s bank account before sites go live.
Our code is all stored in version-control systems, generally Subversion (SVN). Developers work in local environments, commit code to our repository, and that is pushed to a staging server for testing and client review. When ready, the release process is a matter of a quick code deployment to the production server. It is a reliable process with several check and balance points.
Despite all these precautions, code usually involves thousands of lines and is modular, so a change in one area can affect another piece of the site. Sometimes issues are caught through customer service reports—usually within the first few hours of new code being dropped. We always triage these issues quickly, decide the magnitude of the problem, and provide hot-fixes to anything needing immediate care.