To be honest as a recent grad and somone who is new to being a software developer I think if you are incompetant you shouldn’t last long anyway.
In my first month at my new job I had to learn VB and C++ from scratch, two months later I was moved on to a project in C# using ASP.Net which I’d never used before. I’ve seen similar tests to the fizzbang questions, and they are useful.
My current employer gave me 3 hours to parse an XMl file and display it as a tree structure. I’d not spent much time playing with XML before but with after a quick google for a reference on the SAX api I was coding away. apparently half the candidates couldn’t write anything and others didn’t know how to use and IDE and insisted on using a text editor. which they screwed up.
Another couple of employers has written tests with small “write a code fragment to do this” and “spot the mistake in this code” questions. both were piss easy but there were some trick questions in there.
I think what should be tested especially for recent grads is not the knowledge per say, but the capacity to pick stuff up, I got my current Job becuase I took an API I had never used before and figured out how to use it. I’m by no means a pro, but I have the capacity to learn by myself, some people can’t pick up new things unless they are spoon fed.
University is not an excercise in cramming your head full of knowledge it’s an excercise in learning how to learn quickly and efficiently.
When you know the basics you can teach yourself a new language in a few hours, and depending on the complexity learn a new API in an hour to day. Many grads I find dont have that capacity, I did a masters with a bunch of people who came from different universities to me, and some of them just couldn’t cope with having to fend for them selves.
Thats my two cents anyway. I think the fizbang questions help sift out the muck but the problem is more intrinsic and needs to be addressed at the level of academic institutions.