In my opinion they test the wrong things for the majority of software developers. Most people who write code don't need the ability to solve especially hard algorithmic problems. Ranking solutions to hard problems is probably useful if you're Google but there aren't many Googles out there. We like to think that we're solving hard problems (and actually, on HN, we're more likely to be), but most companies aren't. A la…
You are right that the biggest part of the job is easy - but testing the easy parts is useless - all programmers would pass it. A test must be hard in some way if it is to filter people. Disclaimer: I have a stake in https://codility.com/
Beyond code literacy, the most valuable skills for a 99% of programming roles are empathy and diligence. Unless you're working on the kind of programming that's arguably pure mathematics, algorithms are just not important.
There are plenty of ways to test diligence; empathy is a little harder to test directly but there are reasonable proxies.
Disclaimer: I'm working on a product for applicant filtering (generic rather than coder-specific) https://www.beapplied.com/