Our developers unit test their code base prior to having the Quality Assurance team (QA) do testing. The developer unit testing allows the developer to fix bugs in the code base taking corrective action before publication to QA takes place.
We employ Continuous Integration whereby when code is checked in an automated build process to detect any build issues.
At scheduled times, code is published to the QA server where our dedicated QA professionals focus on testing the software functionality as a whole to ensure that code performs to specification. Software is regression tested as well to ensure that code that performed properly prior still performs properly.
After satisfactory testing has been performed by QA, the code base is promoted for user acceptance testing where the user community will test as a final step before release to production.