Yes, Ian you are right.
The truth of the fact is that many problems can only be found after extensive testing. But it's obvious that nobody wants to wait for a test that takes almost an hour. Most of the tests that run during a boot process are just global tests, checking only the most important areas of your system.
Take for example the memory test software. If you have 512MB of RAM then you're talking about some 4,000,000 bits. To test that RAM, every(!) single bit has to be tested. What this test software does, is turning several bits on and off and then it reads these same bits to see if they still have the same value, 0 or 1.
Every bit is a single miniature circuit. Every bit is considered a 0 or 1 depending on the voltage this circuit produces. All these bits are spread like squares on a chessboard and sometimes in several layers. These tests are run with different patterns, because one single bit (square) could malfunction in specific situations. Maybe a bit works fine if all neighbouring bits are zero, but starts to create errors if two neighbouring bits are turned on that suddenly cause some unexpected interference.
All that testing of 4,000,000 bits with different patterns of zeros and ones takes a lot of time. That's why we have a simple memory test at the beginning that uses a single pattern to test the memory in a very fast way.
I know, it's all complicated and very technical, but in many cases the only explanation can be nothing but slightly technical.