So, I made it out to the London Selenium Conference last week and I thought I'd share with you a quick recap of some of the bits I found interesting, several of which reveal what may be coming next in the world of Selenium automation.
Moving Beyond the Page Object Model
Whenever I've used page objects in the past I've always felt that while they have many benefits, but also that they were only part of the puzzle. They make test code more maintainable by reducing duplicate methods and consolidating logic and locators, but they don't solve the problem of how to share larger pieces of automation in the bigger picture.
Anthony Marcano gave a talk on "The Screenplay Pattern", which proposed an alternate system that I feel could more comprehensively tackle the problem of how to write consistent and stable tests. It's a too much to go into detail in this post, but check out these links to learn more about writing your tests in the form of a screenplay.
- Blog Post: Page Objects Refactored
- Video: The Screenplay Pattern - a SOLID alternative to Page Objects
Everywhere via Appium?
Thanks in part to the work of projects like Appium, the Selenium/WebDriver JSON wire protocol is being used to drive more and more kinds of automation. There were several talks on this. In my presentation, I announced that Appium now supported Windows apps and had a working proof of concept for Mac applications that should be integrated soon.
To further the idea of the protocol being used for more and more things, Jonathan Lipps of Sauce Labs gave a talk entitled "StarDriver Enterprise: App to the Future" in which he explains how this can be achieved demonstrating that the protocol is potentially well suited for automating just about anything in the internet of things, including potentially automating a Starship.
He also posited that the future of Appium could be as a framework to manage and setup Appium/Selenium compliant drivers for many kinds of automatable devices likely written by the vendors and manufacturers.
Are Robots Part of the Future of Automation?
Around 5 years ago, Jason Huggins, the creator of Selenium and co-founder of Sauce Labs, presented a keynote at SeleniumConf 2012 where he posed the question as to whether or not robots were integral to the future of test automation. As part of that talk, he demonstrated a robot he had created that played Angry Birds.
Since that time, Jason has founded a company, Tapster Robotics, and now deals in robots that provide automation solutions for companies largely outside the software engineering industry. In his talk, "Robots: The Nuclear Option", Jason suggested that after years working with robots he was coming to conclusion that the place of robots in test automation is as a last resort, e.g., the "nuclear option." He shared his experience and presented some impressive videos showing robot solutions he has built for Mercedes and others.
One piece of his experience that I found fascinating was the unanticipated cultural barrier he encountered when trying to bring open source methodologies to the hardware world. He encountered a culture at odds with the norms he had experienced in the software world; where the idea of sharing automation solutions outside of the company was strongly discouraged. Automobile and hardware companies largely see their test methodologies and tools as trade secrets that should be kept secret from their competition. You can hear all of the details by viewing his talk.
Alternative Locator Strategies?
Oren Rubin of Testim.io gave a talk on the science (from a statistical perspective) of element locators and some inventive techniques for identifying elements and determining their reliability.
iOS Automation Under the Hood
I gave a talk at the Mobile Test Summit in 2012 in which I delved into how Appium automated iOS devices, so naturally I was curious to hear Facebook's Lawrence Lomax speak about how Facebook had worked to bring automation to the latest iOS framework.
His talk was a deep dive into how the WebDriverAgent has engineered a tool to automate iOS applications. Definitely worth a view if you crave in-depth information on how Apple's iOS testing frameworks work under the hood.
The Selenium project began as a tool to automate web applications, but over the last few years people have been pushing at the boundaries and moving it into other spaces. At this year's conference, this theme pushed even further with around a half dozen talks dedicated to non-web testing and perhaps another half-dozen talks that heavily mentioned mobile app testing. It appears the Selenium tool is on a trajectory to be the language of automation. I remember when Amazon was just a bookstore and when Facebook was only for those at a university. In a few years, when you say Selenium, will people still think of it as simply a web automation tool? I don't believe so.