A Real Test Issued By A Business

An Answer To A Real Test

A Real Text
Click here for a Visual Studio solution for a desktop app using C#.

A Real Test

The Test
Software Developer Test
Test requirements

Lights Out is a puzzle game consisting of an n x n grid of lights. At the beginning of the game, some of the lights are switched on. When a light is pressed, this light and the four adjacent lights are toggled, i.e., they are switched on if they were off, and switched off otherwise. The purpose of the game is to switch all the lights off.

An imaginary programming test question
Image from Wikipedia.

Please Implement the game for a 5 by 5 grid in the .Net environment.
The game must start with some lights turned on, and the user keeps playing till they either give up or turn off all the lights.
Please choose the User Interface you would like to implement this in (Console, Desktop, Web).

Project delivery
Once the project is completed please send us back the running project with all the code, you can send us a link of the repository where your project is saved or send us the complete folder.
Include in the solution any documentation required and any tests written for this solution.


The Test Definitely Made The Employer Less Attractive

A Real Text
I lost interest in the company part way through the test as I thought that it was unreasonable.

Although this turned out to be the fault of the recruitment agency that they were using.

The Problems

I suspect that the test setters thought that the test was unambiguous.
The first problem was that the agency didn't know if the solution was to allow a human to play the game or for the computer to solve the game, so the agency guessed instead of checking and said solving the game was the objective.

This was a big issue as it's not the sort of problem that many people will know the answer to so the test becomes a research test not a programming test.

It takes a certain amount of time to realise that solving the game is quite complicated, there are solutions on the internet but they only work for soluble games. You then realise that not all games are soluble but the simple solutions don't mention this fact.

So you get to the point of saying I am not going to complete the test as it requires too much time.

If the employer doesn't realise that the agency has asked the candidate to write a program to solve the problem then he won't understand the objection.

It turns out that the test was just to let a human play, but the agency saying that the test was solve the game generated a lot of ill-will in me.

So what does the company learn fromt the test, yes it may be able to determine that for a very few applicants this is complicated but not for most applicants.

Then we are back to the problem mentioned in the earlier pages, what assumptions the test setter has made against the assumptions of the person taking the test.

It will have taken the candidate a few hours to complete, starting from reading the task to zipping up and sending back so how much more time will the candidate want to expend?

What level of documentation and commenting are sensible, given that the task is simple should it be commented as it deserves or overly commented to prove some sort of a point?

The same with testing, is the candidate expected to spend time making up tests that are pointless in this context?

I spent just under three hours on this and the agency came back and said that I hadn't spent enough time but I couldn't see anything more that was worth doing.