Amool Gupta & David Louvton
We’ll discuss how at Salesforce, we scale Selenium not through SeleniumGrid, or using the Jenkins plugin like other companies, but rather through continuously provisioning and destroying Selenium hosts. We’ll share how we use a mix of VM gold masters for various browsers and install some software dynamically, discuss the pros and cons of this approach (especially vs Selenium Grid) and the next steps.
Facebook is released twice a day, and keeping up this pace is at the heart of our culture. With this release pace, automated testing with Selenium is crucial to making sure everything works before being released. This talk will focus on how we made Selenium work within Facebook engineering – how we encouraged engineers to write (good) tests, how we keep the test quality high and how we use the tests during the release. I’ll also share some of the new tools we’re busy building for mobile testing.
Selenium can be incredibly unstable build in your CI workflow. This is especially true with the Internet Explorer build. This will lead your team in believing that the Selenium build should be ignored at all costs. After spending 6 months stabilizing the selenium build here at Groupon, I’d love to share with you some of the pain point I’ve learned to avoid. End result is that Selenium and Selenium based builds are run on every commit into our repository, and is green more times than it is not!
The business case for test automation is well understood with 86% of companies noting multiple business benefits for test automation. More than two thirds of software professionals are aware of test solutions that can deliver very high levels of test automation. The reality is that most companies today are still relying mainly on manual testing. In this talk I’m going to go through the obstacles of moving from manual end-to-end testing to automated solutions. In the end we discuss about the possible solutions.
How can you tell if your page is loaded when it is so dynamic? How can you test for everything and yet keep your codebase organized and simple? With the proper application of both the Page Object Pattern and the Command Pattern your codebase can remain organized and elegant. Lets talk about how to apply them together and you can see for yourself.
The JSON Wire protocol, the core of the Selenium Project, describes how a real user interacts with a browser.The specification of those interactions can also be used to describe the user interactions with a mobile device. In this talk, François will showcase how the different technologies around IOS can be integrated into an ios-driver that allows to test native, hybrid and mobile web ios applications, using the standard selenium client bindings. He will showcase that automation of mobile apps follows the same principles as automation for the web. The presentation will focus on how to write robust and highly maintainable tests, how to tackle multi locale applications and how to reduce test execution times by running mobile tests in parallel (device and simulator) by leveraging the Selenium Grid infrastructure.
The Internet Explorer driver was rewritten over two years ago, and has steadily been evolving ever since. Since its rewrite, problems with native events, window focus, performance, and more conspire to make the IE driver one of the most challenging of the currently provided browser drivers. This talk will focus on how you can use recent changes in the IE driver that you can use to make your WebDriver code more stable and reliable when working with IE.
Johnathan Griffin & David Burns
Marionette, the future of FirefoxDriver, is on its way and Mozilla is pulling the strings. It’s the tool that made Firefox OS testing possible within Mozilla and in the future will be driving your tests. Come listen to how Mozilla is developing it, it works and watch it work against FirefoxOS, Firefox for Android and Firefox on Desktop.
This talk explores how the QA developers at All Web Leads built a simple, flexible tool that brought the power of Selenium testing to other teams in the company. By making the slow, tedious parts of everyday browser testing fast and easy, the quality of testing performed outside of the QA team increased both with developers and in other parts of the company.
Do you know and love Selenium WebDriver? Have you tried to use iPhoneDriver and come across many stumbling blocks, like limited frame switching, no window handling, no support for touch events and can’t rotate the screen? Here I will show a ‘better’ implementation of iPhoneDriver that uses the actual MobileSafari.app backed by Apples UIAutomation and using ios-driver to do so. This *is* the future of iOS web testing!
Malini Das & David Burns
Mozilla has been using WebDriver to test its new smartphone, but its gesture support has been lacking. We had to fill in the gaps in WebDriver’s gesture specifications with solutions that should work to automate any possible gesture. Come learn about how we’re automating our devices at Mozilla and we’re proposing for WebDriver.
Would you like to run your selenium scripts against multiple browsers and multiple server platforms continuously at night and report status on the web? Today’s software development often means continuous integration and testing using open-source tools such as Selenium. This talk explores a practical set up for automating regression functional tests in an agile environment using Selenium, Java, GIT, Maven, VirtualBox and Jenkins. Tests will run continuously and generate reports that can be reviewed on the web. Multiple configurations can run in parallel on different browsers and platforms.
The past few years have seen a phenomenon of software organizations abandoning traditional release cycles in favor of daily or even hourly deployments. The emergence of a new, rapid software development workflow has raised questions regarding the role of test and QA in a product’s life cycle. When there is no QA phase, can there still be QA?
In a perfect world you’d expect developed code to be “bug-free” or “clean”. However as we all know, this is not a perfect world and there will always be bugs. Our goal is to capture as many of them as early as possible. This session will detail how we (Cars.com) built a robust Continuous Integration (CI) environment with meaningful functional and performance tests using Selenium. I will discuss the solutions we use at Cars.com, the size and complexity of our applications, the amount of time and resources it took us to get where we are today.
There’s nothing more frustrating than seeing that almost-green test suite ruined by a couple of intermittent issues that are difficult to reproduce. Intermittent issues are not only a maintenance pain – they also lead to low confidence in the test tools themselves. I will go through a few of the more common reasons for these failures, share some mitigation strategies and tell some stories about some intermittent failures that were caused by some surprising issues.
The software that runs Wikipedia, MediaWiki, is developed in the open just like Wikipedia itself. This talk will cover how MediaWiki is tested, along with mistakes and successes made along the way.
Populating systems under test with data is often done by cleaning and inserting data directly into databases using SQL scripts. Whilst this technique is simple, it can have several drawbacks for automated tests. This session will show how to combine the Data Test Builder Pattern with the web services exposed by your application. This hybrid implementation of the pattern can then be used to populating test data without direct database access.
Selenium is a great tool for testing web applications and GUIs, and has been the tool of choice for the MathWorks Test Infrastructure and Architecture team to offer testing solutions to our internal customers. To keep up with frequent browser releases, our users needed reproducible test builds using the latest qualified browsers. This talk will give a tour of how we addressed this by putting together a system for on-demand delivery and version management of browsers.
David Tolley & Dima Kovalenko
Utilizing Selenium and Jenkins, you can extend Selenium processes to include screenshot comparisons, enabling automatic UX compliance at the speed of your Continuous Integration workflow. Learn how to compare screenshots from one Jenkins run to a repository of known quality, in order to insure that not only does your website work well, it also looks well.
Web applications are both presentation and behavior, but we tend to only write automated tests to ensure consistent behavior across browsers. A more holistic approach to test automation ensures that an application is analyzed for consistency in terms of both functionality and appearance. Learn how you can use the open source project RedGlass, a tool which extends Selenium to continually monitor the state of an application under test, to see how your app responds out in the wild.
Ivan De Marino
GhostDriver, the WebDriver implementation for PhantomJS, reached 1.0. It doesn’t implement yet all the WireProtocol specs, but it’s now going through the “”hardening process”": people have started adopting it and bug reporting is on the rise. I’ll show you how easy is to get started with it and how you can integrate it in your daily workflow. Also, what’s the best way to raise bugs against it, so that we can make it better! In addition I’ll share the “”lesson learned”" during the development and how this is affecting the project as well as it’s developer(s). Come along if you like headless stuff!
This talk will show you how Selenium Builder can be used in conjunction with Github and a CI system to run parallelized test runs across multiple browsers without requiring a single line of code to be written. Historically, doing automated browser testing without involved programming has been severely frowned upon. I want to show you how it can not only be fruitful and fun, but also enable folks who aren’t hardcore developers to participate and see all the value gained by the continuous testing and deployment ( or ‘holy grail’) development workflow. This session will encourage the audience to follow along, briefly touch on the inclusion of Selenium Builder in the Selenium Project, explain how the plugin architecture works (and why it’s so important) and how to setup a Github project to use post commit hooks to work with your CI setup.
SeleniumConf 2013 will have two tracks: Track A is the main conference track which has been programmed for both days. Track B is the secondary track which has been programmed for day one, and will be an unconference on day two. You will be able to propose content for the day two unconference starting on day one. Stay tuned for details.
We will also have lightning talks on both days. The list of talks will be seeded with proposals from the call for speakers, but you will also be able to propose to speak, and vote on proposals starting on day one.