Why do people keep saying that over and over again?
It's easy. You write a test suite that pretends to be a real user. You script it so there's some actions that aren't just "do A do B do C." You make them make errors. You have them put in garbage details. You have them fill out the forms incorrectly or incompletely. You have them skip pages or press "back".
Then you add a "pretend I'm the internet!" layer in between that simulates latency, so you make sure that your servers can handle the number of concurrent requests going on. A lot of not-so-seasoned web developers still fall for the "it worked on the LAN to 100,000 users, why not on the internet?" latency fallacy. Increased latency (due to RTT, packet drops, TCP retransmits, etc) leads to having more and more sessions going concurrently. That ties up resources at the server end.
Then you add a "pretend shit breaks!" layer. Ie, the user internet connection breaks. They forget and come back after a while, and hit the restart page. The connection dies half way during the transaction.
Then, once you've written that, you create 5 million instances of that. 100,000 per box sounds about right.
This isn't 1995. Computers are really god damned fast.
-adrian