I designed and score the pre-interview assessment test that we use at igNew for screening potential hires. The test began life with 3 sections: debugging, building a small app, and doing some database work. We recently dropped the debugging section because too many candidates went overboard with re-architecting it, causing them to run out of time on the rest of the test. Candidates have full internet access and can bring along any books or documentation that they would like to use.
Administering these tests has been really eye opening for me. We have had dozens of candidates come in highly recommended, who are considered "Senior" developers, and absolutely bomb the test. The most concerning part for me is that the programming portion is really just some simple text parsing/manipulation. There are no impossible puzzles or esoteric language feature questions.
As a software developer myself, I really don't think our expectations for the test are unreasonable. I can't help but be disappointed with the median programming talent that we've seen. The results have just reinforced my belief that a talented (I hate the term Rockstar, can that trend please die?) developer is orders of magnitude more effective than the average programmer (and should command a commensurate salary).