I took a couple of these tests while job-hunting. Most of the tests were language-specific, as I was looking for a job where the employer wanted experienced people. Specifically for me, the tests were mostly in COBOL and some in JCL, which are mainframe languages.
As I recall, these tests centered more on whether you know the exact, textbook vocabulary as opposed to whether you really know how to write code and/or troubleshoot or debug. They would always use the precise, computer-textbook terms for various components of a program or a JCL. One reason for this is because the vast majority of questions are multiple-choice for easier grading.
I can't see these tests to be any more than a rather primitive screening device, to weed out someone who has attended a quickie computer programming course and/or has briefly read a textbook -- and claims 5-10 years of solid on-the-job experience. I don't know how often that it happens that someone fudges on their experience level, but it would help save time in that such a person would not have to be brought in for an actual interview.
As for finding out or testing for real knowledge, I can't see anything replacing the actual, in-person interview. The interviews I attended almost always featured 3 or 4 managers, who would discuss their current projects.
In these live interviews, the managers would either give a formal technical test i.e. ask a series of technical questions. Or else they would simply discuss their work and see how the applicant interacts with the discussion -- does the applicant discuss the work with a real sense of knowing what s/he is doing? If one of the managers uses an obscure term such as "SOC(K)-7," does the applicant respond in a way which shows that s/he knows what the term means?
An aside for those who don't know mainframe batch programming: A SOC(K)-7 means a "data exception," which means that the job blew up because someone put code into a program which would try to move data into a field which isn't properly defined for that type of data. Mainframe computers don't like this, and they signify so in no uncertain terms. Well, now that I've demonstrated my technical brilliance...
So to sum up, I don't see online testing to be useful except as a first-level screening device.
Now let me ask a question: when I first got out of my computer programming courses and applied for my first job, I had several companies give "aptitude tests." And I suppose that online sites have "aptitude tests."
Does anyone find these test helpful for hiring entry-level people? I personally don't think that most of them are worth the paper they are written on, especially the ones which are severely timed; most of these test recall from rote memory as opposed to testing real thinking and problem-solving skills.
Nina Too