Tuesday, February 15, 2011

CHI to Amazon's Mechanical Turk and beyond

In 2005, Philipp Lessen posted an idea on his blog called CHI, where a system is created that automates asking questions to humans. This may seem dense, but the idea is that these questions are ones that humans are better at answering, such as , 'is this photo of a person a man or woman?' or 'Does this description match the photo?' or 'Does this description make sense?"

Six months later, Amazon implements this and it's now known as Amazon's Mechanical Turk. The idea is that tasks that are best done by humans are packaged up and given a price. Workers then can pick up those tasks and get their fee. There are controls in place to ensure that the workers do a good job and are actually qualified to do the work being requested.

Now there are similar sites that are generally known as 'Crowdsourcing'.

But what does this have to do with software?
Suppose you had a system that tied into your automated test framework that would offload some of the more tricky parts of your tests that would be simpler to do manually, but it was just one step out of dozens?

Suppose you wanted to automate the layout of a webpage on multiple browsers under different conditions as part of build testing. You could write the specific rules for what consituted 'improper' layout, but that could take lots of time and lots of tweaking. Wouldn't it be nice to put in your automation:

assertThat(baselineimage.looksLike(myImage), true)

and that call shows both images to you for the determination that they are equivalent?

Sure there are issues, you may not be ready to do these steps when they are being run. Or you may take too long to decide. It's not clear the full extent of the useful features, but there may be some thing here to assist with your testing.

What are your thoughts?

No comments: