I think it rather depends on the project in question. Some projects may be called "enhancements" to a pre-existing programme, and these are relatively quick to design, code, and test. Generally in this situation, design and coding take as much time as testing (because the testing must include a lot of interface work---dropping a module into a programme can have unforseen ramifications in other parts).
If the project concerns something entirely new, then the definition of needs and design can take a much longer time than in the previous example. Getting the process correct, and defining user needs as clearly as possible (it is not always an easy task to understand needs and translate these into a do-able programme) can save a great deal of recoding time in media res. The more complex the process, though, the more time must be spend to the actual coding of the programme; even with team effort, creating the different modules to the programme and making sure each works comfortably with the other parts, can require quite a bit of time. If you get the first steps right, and make sure your test cases are correct and the test data pertinent, the the testing phase becomes more of a tweaking exercise.
Edited by jgweed, 14 October 2006 - 10:24 AM.