Jason Huggins’ Angry Birds-playing Selenium robot

How a game-playing robot could help shape the future of mobile testing.

I’ve used Selenium on several Java projects, so I was just assuming that the topic of Selenium would be germane to JavaOne. I sent the co-creator of Selenium, Jason Huggins (@hugs), a quick email to see if he was interested in talking to us on camera about Selenium and Java, and he responded with a quick warning: He wasn’t into Java. “Python and JavaScript (and to a lesser extent, CoffeeScript and Hypertalk) are my true passions when it comes to programming,” he wrote. I thought this was fair enough — very few people could call Java “a passion” at this point — and I could do my best to steer the conversation toward Java. Selenium can be scripted in whatever language, and I was convinced that we needed to include some content about testing in our interviews.

He also was wondering if he could talk about something entirely different: “a Selenium-powered, ‘Angry Birds’-playing mobile-phone-testing robot.” While I had initially been worried I’d have to sit for several hours of interviews about Component Dependency Ennui 4.2, here was an interesting guy that wanted to not only demonstrate his “Angry Birds”-playing robot but also relate it to his testing-focused startup Sauce Labs. I welcomed the opportunity, and here’s the result:

From what I could gather, Huggins’ bot is driving two stepper motors that control a retractable “dowel” finger covered in some sort of skin-like material that can fool the capacitive touch sensor of a mobile device. He sends keystroke commands through this Arduino-based controller, which then sends signals to two stepper motors. The frame of the device is made of what looks like balsa wood. He’s calling it a “BitBeamBot.” You can find out all about it here and you can see it in action in the following video:

Relating BitBeamBot to Sauce Labs and Selenium

In the course of the interview it became clear that BitBeamBot was the product of an off-time project. Here’s how Huggins explained it: Imagine a wall of these retractable dowels, each representing a single pixel. if you could create a system to control these dowels, then you could draw pictures with a controller.

While working on this project, Huggins attended a Maker Faire and found some suitable technology. His creation of a single-arm controller then led to his big “eureka” moment: This same technology could create a robot that can play “Angry Birds,” and if a contraption can play “Angry Birds,” it’s a simple leap to create a system that can test any mobile application in the real world.

Huggins went through a similar discovery process with Selenium. Selenium is a contraption that supports and contains a browser. You feed a series of instructions and criteria to a browser and then you measure the output.

With BitBeamBot, Huggins has taken the central software idea that he developed at Thoughtworks and applied it to the physical world. He envisions a service from Sauce Labs, the company he co-founded, where customers would pay to have mobile applications tested in farms of these mobile testing robots.

Sauce Labs

Sauce Labs is focused on the idea that testing infrastructure is often more expensive to set up and maintain than most companies realize. The burden of maintaining an infrastructure of browsers and machines can often exceed the effort required to support a production network.

With Sauce Labs you can move your testing infrastructure to the cloud. The company offers a service that executes testing scripts on cloud-based hardware. For a few dollars you can run a suite of unit tests against an application without having to worry about physical hardware and ongoing maintenance. Sauce Labs is trying to do for testing what Amazon EC2 and other services have done for hosting.

Toward the end of the interview (contained in the first video, above) we also discussed some interesting recent developments at Sauce Labs, including a new system that uses SSH port forwarding to allow Sauce Labs’ testing infrastructure to test internal applications behind a corporate firewall.

Strata 2012 — The 2012 Strata Conference, being held Feb. 28-March 1 in Santa Clara, Calif., will offer three full days of hands-on data training and information-rich sessions. Strata brings together the people, tools, and technologies you need to make data work.

Save 20% on registration with the code RADAR20

Related:

tags: , , , , , ,

Get the O’Reilly Programming Newsletter

Weekly insight from industry insiders. Plus exclusive content and offers.