I'm going to add my experience of the past few months here.
TL;DR; : I agree, most of the time these tests add little to no value to a recruitment process. However:
- They're useful for those attempting to recruit you if they give everyone who comes along the same test in order to be able to compare your knowledge versus other candidates/employees
- Give insights into your proces, capability etc etc when it concerns an assignment with a time limit
- When discussing face-to-face, you have the opportunity to discuss something your recruiting party is already familiar with
Granted: these are all in favor of those doing the recruiting. Beware the "feedback" on whatever you create: it's to justify a lower salary, not in your best interest.
So, past October (2018) I started looking for a new job. Announced it to my employer as well. Signed a new contract just before Christmas to be able to start the coming February 1st.
I ended up doing 2 of these tests. One was a logic test, to be done at the office and they expected it to take about 2 hours. The other one was building the "crazy eights" game for back-end, so fully automated on a refresh/cli command (PHP ;) ).
Next to this I have a bunch of repo's up on Github & Bitbucket, verifiable experience (listed on Li, SO Jobs) and my own website.
As such, these tests didn't really make me blink much. However, I am of the opinion they're only intended to give the employer-in-waiting an advantage in any negotiations. Namely to be able to give negative "feedback" remarks on this, that and something else, in order to be able to give you a smaller monthly salary for your efforts.
I chose to do the 2 tests I did, mainly because the companies sounded alright, at the time.
In hindsight, I disagree (with myself).
I've ended up signing with company that looked at the code I already had publicly available. They asked if I could explain some of it to them. Presented a use-case and "how would I apply what I have there on Github to this use-case?", which we discussed then and there, no preparation, no code, just an instant opinion. A few questions about more recent work which I could show them (implementing my stuff online) and then we started to work out the contract.
(Note: the above paragraph was a total of 3 meetings, but all 3 meetings just had a subject: "get to know you", "show us what you can do", "what would you like for your time")
To defend these tests though. Apart from the things in the advantage of an employer-in-waiting these tests can be useful things if you do not have any verifiable experience. Verifiable experience can be a multitude of things, not limited to:
- public repositories over time (Github, Bitbucket, Gitlab, etc.)
- contributions to (open source) projects
- projects on your name, e.g. websites, applications, apps, etc
- work history with references
In such situations, yes, you should do the tests. Same thing if you're starting out or are in the first few (2 or 3) years after your study and without the above.
In pretty much any other time, I would from now on decline doing these tests (with my own experience) and offer to discuss what I've created and use-cases presented by them on the spot instead.