The best way to answer the question is to look at results of past projects in your specific environment. Timesheet records for actual time spent on coding/QA/testing, taken in conjuntion with actual results (eg, number of bugs reported and fixed) can help find the real-world balance.
Also, remember that QA and testing are different. QA is done during design/development to AVOID errors, while testing is done afterward to FIND errors that do exist. QA time can be difficult to measure, since most of those activities are probabloy currently considered part of design and development. Definitely include time in your plan for QA above and beyond testing (eg, code reviews, signoffs, checklists & paperwork, etc).
We allocate our total testing time, typically, between 75% and 100% of development/coding time. Pre-coding activities (requirements and design) are about the same. However, the exact ratios really depend on the nature of your software and development environment/processes. Using actual historical numbers is the best way to determine this. If you don't have detail task breakouts, consulting your staff for concensus can approximate the ratios. Regardless of how you do it, once you implmeent it, measure and adjust until it seems to work well for you.
On our project, we've defined a matrix of ratios for projects based on a number of input parameters (kind of programs, size, whether they have dba work, etc). We revise these as warranted, but they're based on actual experience. They seem to work pretty well for us. Just remember to use historical information and measure/adjust.