I would argue that at the very least, the developers should have tested the "happy path." That if they enter expected data then it does what the spec says it should do. Developers who don't do that much should be questioned.
I am also disappointed if a developer hasn't tested the obvious edge cases: a string too long for the database, obviously invalid text, if you enter letters where a number should be, etc. If that happens often, again questions should be asked.
However, assuming it isn't specifically mentioned in the spec, if a developer limits a name to just upper- and lower-case letters, but forgets that some names have apostrophes, or allows a date of 29th Feb 2011 - that's slightly more understandable. Unless they're making the same mistake time after time.
The QA team should be picking up the extreme edge cases. I prefer QA to be monkey-testers: just entering random garbage, seeing if they can break the app that way.
In web development, QA should try different browsers and try to find plugins that might affect the code. They should switch Javascript and CSS off and see what they can get away with then. That kind of thing. If you expect the developers to do that, you're spending too much money on it.