Your conference ticket grants you access to SeleniumConf on 15 & 16 November. If you wish to attend one of our optional workshops on 14 November, you will need to purchase a workshop ticket in addition.
Join us for one of our practical workshops the day before the conference. Each workshop is a full day and takes place at The Hatton, Farringdon.
Please note the different venue, and that workshop and conference tickets are sold separately. Don’t forget to bring your laptop!
Jim Evans
In this workshop we’ll dissect the different elements of Selenium, dive into its internals, learn how it was built and how to make changes to it, and even write a unit test you can contribute on the same day!
Date: Monday 14 November 2016 • Time: 09:00–17:00 • Venue: The Hatton, Farringdon
Have you ever wondered how Selenium works under the covers? Do you get frustrated with locators not locating, pages not loading, or browsers behaving inconsistently from one run to the next? Selenium is an attempt to unify thousands of disparate elements across a wide spectrum of challenges into a single, common interface that works seamlessly with all the major browsers - and yet only a handful of volunteers work to maintain this gigantic effort. If you would like to enhance your own Selenium experience while contributing back to the software that has defined so many of our careers, come to this workshop. In it we’ll dissect the different elements of Selenium, dive into its internals, learn how it was built and how to make changes to it, and even write a unit test you can contribute on the same day!
Join Jim Evans, the creator of the Internet Explorer driver and the WebDriver .NET language bindings, as we:
£100 + VAT
Dan Cuellar, Justin Ison and Jonathan Lipps
Attendees will come away with knowledge of how to automate android native apps with Appium. Topics include getting started with setting up a Android mobile device grid, running tests single threaded, in parallel, and distributed, and capturing critical report data (logs, screenshots, and video), and running mobile tests on a cloud test service.
Date: Monday 14 November 2016 • Time: 09:00–17:00 • Venue: The Hatton, Farringdon
At this workshop you will learn how to get started with automating Android with Appium. We’ll learn how to capture elements in Ruby using irb (interactive Ruby), writing a test with rspec. Once we have our tests established, we’ll then go into setting up a mobile device grid. Running the tests in parallel, distributed, and capturing critical report data (logs, screenshots, and video). We will also run some examples against a cloud testing service.
Getting Started
Reporting
Grid Setup
Running tests on the Grid
Attendees will come away with knowledge of how to automate android native apps with Appium. Getting started with setting up a Android mobile device grid. Running tests single threaded, in parallel, and distributed. Also capturing critical report data (logs, screenshots, and video), and running mobile tests on a cloud test service.
£320 + VAT
Richard Bradshaw
Wanting to get into WebDriver, but don’t know where to start? Then this class is for you, we will learn all the basics and more, to give you a real foundation to start your Selenium WebDriver journey.
Date: Monday 14 November 2016 • Time: 09:00–17:00 • Venue: The Hatton, Farringdon
Wanting to get into WebDriver, but don’t know where to start? Then this class is for you, we will learn all the basics and more, to give you a real foundation to start your Selenium WebDriver journey.
In this session we will familiarise ourselves with the core features of the WebDriver API.
This part of the session will give you all you need to start creating some automated tests for your business, exercising functionality in the browser that matters to your business.
We will then explore some popular patterns used in writing maintainable browser automation, such as the driver factory and the Page Object pattern. On top of this we will also explore approaches for executing these tests, running them in parallel and exploring how you could run them on a Continuous Integration server, or in the cloud.
This practical, hands on, course will benefit all experience levels of programming, all attendees will leave with working WebDriver code on their machines and a long list on how they can successfully use the WebDriver API in their context.
Takeaways:
£320 + VAT
Manoj Kumar and Marcus Merrell
Selenium Grid can be a bit daunting to get up and running. Starting it is quite easy, but using it effectively requires pulling in third party tools. In this workshop we’ll cover how you would realistically run your grid, using best practices culled from several large grid installations. We’ll set up the grid, configure it for centralised logging, set up BrowserMob Proxy, add monitoring for all services, and handle common failure scenarios.
Date: Monday 14 November 2016 • Time: 09:00–17:00 • Venue: The Hatton, Farringdon
Selenium Grid can be a bit daunting to get up and running. Starting it is quite easy, but using it effectively requires pulling in third party tools. In this workshop we’ll cover how you would realistically run your grid, using best practices culled from several large grid installations. We’ll set up the grid, configure it for centralised logging, set up BrowserMob Proxy, add monitoring for all services, and handle common failure scenarios.
Overview
Set-up
Running
Logging
£320 + VAT
Simon Stewart
Selenium is a large, popular, and active Open Source project. It’s also over 10 years old, yet still evolving. The release of Selenium 3 provides the perfect point to think about the lessons we’ve learned since the start of the project. What defines “good software”, and what defines “Quality”? And how do we apply those lessons as we move towards Selenium 4 and the W3C spec?
Angie Jones
While most teams appreciate the benefits of UI automation, it is commonly viewed as too time-consuming to be considered as part of an agile sprint; resulting in automation being done in isolation and typically months after the story has been closed. This can lead to several problems including automation team members being disengaged and missing key aspects of the requirements, as well as teams going through a period where new features are being introduced but no regression testing is occurring.
This talk provides agile-friendly approaches to automation using Selenium which will allow teams to close their sprints with automation in place. These techniques allow scrum teams to work smarter, not harder, and find bugs quicker with a more narrowed scope of the root cause, essentially leading to quicker resolution times. We’ll also walk through an example Story and demonstrate how to apply these techniques to ensure in-sprint automation is achievable.
Waseem Hamshawi
When you run hundreds of thousands of automated tests a day for active monitoring and uptime measurement, flakiness is not an option! In this talk, we will study challenges of continuously maintaining a near-zero failure rate threshold in a massive execution cycle of UI (web and mobile) tests each day, geo-distributed over multiple data centers worldwide.
You will be introduced to various availability, fault-tolerance and resiliency patterns for Selenium-based infrastructures and tests. We will learn how to apply these patterns using open source libraries and cloud computing solutions. We will also cover practical approaches to test reliability measurements, service performance metrics and root-cause analysis in distributed large-scale testing.
Adam Carmi
Responsive web design has become the preferred approach for building sites and apps that provide an optimal viewing and interaction experience on any phone, tablet, desktop or wearable device. However, automatically testing these responsive sites and apps can be quite a challenge, due to the need to cover all supported layouts, their respective navigation, and visible content.
In this session we will implement a complete Selenium-based automated test for a popular responsive website from scratch. You will learn how to effectively design responsive page objects, implement generic tests that work for all the layouts of your app, control the browser’s viewport size in order to accurately target layout transition points, incorporate layout-specific assertions in your tests, and visually validate the correctness of your app’s layout. We will also share tips and best practices for test planning and execution.
Meaghan Lewis
How many times have your selenium test suites run beautifully on one browser, only to fail when run in any other browser? This is an extremely common problem faced when incorporating cross-browser tests into your test runs. Not all browser drivers are created equally, but that doesn’t mean you can’t create a robust suite with cross-browser tests.
During this talk, Meaghan will present strategies for making cross-browser tests invincible. We will discuss key topics such as using as choosing the best locators for all browsers, explicit vs. implicit waits and how to leverage cloud based testing tools.
Participants can expect to come away from the session understanding the importance of cross-browser testing, why browsers behave differently, and a toolkit of how to successfully develop and maintain cross-browser tests in the future.
Christina Thalayasingam
As we are moving into the agile world, continuous integration has a major role to play. So how do we cater for a complete test on every sprint or every release? We can use Selenium for Test Automation. When we use a continuous integration approach it would be helpful to use Selenium Grid. It allows you to run your tests on different machines against different browsers in parallel. Essentially, Selenium-Grid supports distributed test execution. This helps you to run your automated tests on various different machines, operating systems and browsers at the same time. This saves time and would help to run your testing in a nightly build.
Extent Reports will go hand in hand with Selenium Grid as it will help you retrieve all test results including Test Evidences into a comprehensive report. This talk is a quick guide on how to use Selenium. With details on how to create HTML reports (with latest plug-in) which will give an understanding of test execution results for both technical and non-technical people. The highlight of the talk will be on Selenium Grid which permits users to run Selenium test cases on various operating systems and browsers from a specific hub. We will cover quick demonstrations on main browsers used in the industry such as Firefox, Chrome and Internet explorer. There will also be a full demo of how to use with JUnit, TestNG and more.
Umar Hansa
This talk covers various techniques on browser automation. We’ll focus on JavaScript, and explore a number of strategies for controlling modern web applications. Automating and testing of playing audio, video, and even animation are some examples of things we’ll look at. With a large number of end-to-end testing frameworks out there, all using JavaScript, this talk will also evaluate the pros of cons of such frameworks.
Finally, we’ll explore some more creative uses of browser automation, going further than just browser based testing. For example, we’ll see how scraping our favourite web services can be accomplished through WebDriver!
Dan Cuellar
Over the last few years, Appium has become the choice automation tool for mobile application UI testing. Most people are familiar with the basics of Appium, but did you know that you Appium can identify elements using image recognition? Did you know you it’s also possible to automate Windows phone and Desktop apps with Appium? Have you ever seen Appium run the same test on multiple operating systems, or seen an Appium test run using several devices at once?
The talk will cover advanced Appium topics such as these along with best practices to ensure you get the most out of Appium.
Dheeraj Joshi
In this talk, I’ll speak about Web Security and how to do Penetration testing in an efficient manner. We’ll examine:
I’ll also cover some of the interesting vulnerabilities which I have reported to cloud based services and tools which are being used by million of users. We’ll see demos showing vulnerability discovery and exploitation with an attacker perspective. At the end of talk, one should be able to make web applications free from most of the vulnerabilities out there, find vulnerabilities in real web applications, and make the web more secure.
Anand Bagmar
I want to take this opportunity to share with my experience - the good and the bad, in the journey of building a Test Automation framework for an AngularJS based application.
We will learn, by a case study, what thought process we applied on the given context (product, team, skills, capabilities, long term vision) to come up with an appropriate Test Automation Strategy. This Test Automation strategy covered all aspects of Test Automation - Unit, Integration, UI - i.e. End-2-End tests (E2E).
Next, I will share how we went about narrowing-down, and eventually selecting a specific Tech Stack + Tools (Javascript / Jasmine / Protractor / Selenium-WebDriver) to accomplish the Test Automation for the product.
Lastly, I will share the challenges that came up in the implementation of the Test Automation, and how we overcame them. This will also include how we managed to get the tests running in Jenkins - a Continuous Integration tool. This discussion is applicable to all team members who are working on Test Automation!
P.S. All code shown will be shared via a sample protractor-based automation framework available on github for anyone to use as a starting point for setting up protractor-based Test Automation framework.
Mona Soni
Test Engineering culture emphasises on quality ownership by all involved in a project and redefines the role of testers as engineers as quality enablers instead of gate keepers. With this talk I will be sharing my experience to build a test engineering culture across the organization, how does it vary with the size of the team and the company and the role of test engineers in building this culture by enabling others with tools and processes for quality improvements. Many companies mainly startups tend to invest in testing only when their product is about to go live or sometimes even later. I will be sharing how these teams can make small investment in testing by establishing a test engineering culture can derive larger benefits when product goes live. Lastly how does the test engineering culture redefines the career path for test and QA engineers.
Pranathi Birudugadda
Responsive web design (RWD) is an approach to web design aimed at crafting sites to provide an optimal viewing and interaction experience, like easy reading and navigation with a minimum of resizing, panning, and scrolling across a wide range of devices (from desktop computer monitors to mobile phones).
Responsive web design is becoming more important as the amount of mobile traffic now accounts for more than half of total internet traffic. This trend is so prevalent that Google has begun to boost the ratings of sites that are mobile friendly if the search was made from a mobile device. This has the net effect of penalizing sites that are not mobile friendly.
The responsive web design responds to the needs of the users and the devices they’re using. The layout changes based on the size and capabilities of the device and provides the enhanced user-experience by re-structuring the contents as per the end-user devices. With plethora devices releasing every day, this has gained significance in the web designing and along with it came the testing challenges. In this talk, we are going to discuss the challenges in testing RWD websites and how to overcome those by using the tools available online.
I have chosen Galen tool to demonstrate the automation of Responsive web design testing. Galen is an open source framework built for responsive websites. It provides the feasibility to test the various pages on screen sizes and browsers. The test and spec files can be written in plain English which makes it easier for the business people to understand and contribute. This can also be used as a guide for the UI developers where they build the layout based on the spec files agreed by the business. Come and experience the talk to be enlightened about this new found tool!
Antony Marcano
The Screenplay Pattern, first created by Antony Marcano, is an alternative model to PageObjects. Today, it is growing in popularity with increasing tool support in popular testing frameworks.
PageObjects provide an easy-to-follow, simple structure that avoids early maintenance issues. They were introduced to help test-developers avoid mistaking flaky tests for problems with Selenium. But, PageObjects break some key OO design rules, making maintenance more difficult over time. They are a useful first step, but why do we stop there?
In this session you’ll learn about the SOLID design principles that PageObjects disregard. You’ll see why this leads to problems. You’ll see how and why PageObjects benefit from refactoring to SOLID design principles. Finally, you’ll meet the Screenplay Pattern – an alternative model based on SOLID principles that saves you the trouble.
Brian Jordan
Brian Jordan will give a tour of Code.org’s continuous, automated cross-browser and visual testing suite—the challenges of building for the classroom, the technologies used to test Code Studio and the Hour of Code, and the team-wide lessons learned (and bugs found) along the way.
Code.org is a non-profit dedicated to expanding access to computer science, and increasing participation by women and underrepresented students of color. Their vision is that every student in every school should have the opportunity to learn computer science. Code Studio—Code.org’s free, online computer science curriculum platform—has over 200,000 teachers have signed up to teach intro courses, and over 5,500,000 enrolled students. Students play through curricula of increasingly challenging puzzles, featuring kid-favorite characters from Minecraft, Angry Birds and Star Wars.
Irfan Ahmad
Testers are responsible for the reliability of their tests in the same way developers are responsible for their software but this is usually difficult, time consuming and needs collaboration with developers. Docker capabilities can help us in ensure and enhance reliability, speed and scalability of our tests.
This talk will demonstrate how to leverage the container technology to solve the challenges of scaling a reliable testing infrastructure and continuous delivery for selenium and other testing tools, with key focus on:
Jason Huggins
An exploration of various use cases that have come up over the years from customers where using a real physical robot is the only viable way to automate a test.
Janelle Klein
What makes software development complex isn’t the code, it’s the humans. The most effective way to improve our capabilities in software development is to better understand ourselves. In this talk, I’ll introduce a conceptual model for human interaction, identity, culture, communication, relationships, and learning based on the foundational model of Idea Flow. If you were to write a simulator to describe the interaction of humans, this talk would describe the architecture.
Learn how to understand the humans on your team and fix the bugs in communication, by thinking about your teammates like code! I’m not a scientist or a psychologist. These ideas are based on a combination of personal experience, reading lots of cognitive science books, and a couple years of running experiments on developers. As I struggled through the challenges of getting a software concept from my head to another developer’s head (interpersonal Idea Flow), I learned a whole lot about human interaction.
As software developers, we have to work together, think together, and solve problems together to do our jobs. Code? We get it. Humans? WTF?!
Fortunately, humans are predictably irrational, predictably emotional, and predictably judgmental creatures. Of course those pesky humans will always do a few unexpected things, but once we know the algorithm for peace and harmony among humans, we can start debugging the communication problems on our team.
Lawrence Lomax
Automated End-to-End testing of iOS Apps is slow. Diagnosing test failures can be a nightmare to debug. But it doesn’t have to be this way!
In this talk you’ll discover how Facebook London’s End-to-End Automation team has vastly improved the developer experience of iOS Engineers by investing in tooling and infrastructure. You’ll see first-hand how to leverage Facebook’s Open Source projects to improve your test automation. Using ‘fbsimctl’, we’ll show you how to collect diagnostic logs, record videos of test runs and fetch all of this valuable data over HTTP. You’ll see how you can iterate on writing tests faster with WebDriverAgent’s Inspector. Finally, we’ll show you how to get the most out of your Macs by running many tests in parallel, decreasing test run times and increasing test throughput.
Dave Cadwallader
Flakey. Non-deterministic. Unreliable. These are all terms commonly associated with end-to-end testing. At WalmartLabs, we knew that building a Continuous Delivery pipeline depends on a test automation system that’s totally reliable. Any perceived flakyness in the system would erode developer confidence in our tools.
But when non-deterministic behavior emerges, how do we crack open the black box and identify the source?
In this talk, we show how we instrumented our test framework with our own internal analytics beacons, to allow us to “zoom out” and spot trends in test performance and reliability that are not always visible at the individual test suite level. Using open source data visualization tools allows us to slice and dice the data to identify root causes. We’ll share how these data and trends provided both immediate insights, as well as raised new mysterious questions that we hope to work with the community to answer.
Oren Rubin
In this talk we will delve into one the biggest challenges that Test Automation developers face, finding elements i.e. a robust test means finding the same element with high fidelity while the Application Under Test keeps changing.
We will categorise the methods, and show where developer fail, where machines (Record/Playback) fail, and suggest a new way for locating elements, and analyze the skill-set required to overcome those difficulties.
Corina-Adina Pip
When you are writing Selenium tests to check for elements on your page, by taking the classic approach (checking for each element’s properties at a time), you might get to a large number of assert steps. This increases the lines of code your tests have, makes the tests difficult to maintain and tricky to read.
Wouldn’t it be nice if the actual checking part of the test would be small, perhaps one line of code? With the approach I am going to present, you can do just that. Hence your tests will be small and clean. All you will need to do is model the pages/modules/items by using an Object Oriented approach.
David Burns
When WebDriver was born it always had the belief that it would emulate users. Users, unfortunately for WebDriver, have the ability to see when an element is visible.
When commands like isDisplayed()
were originally created a lot of the magic
of modern CSS did not exist. Animations were done with JavaScript and people tried not
to reflow or repaint the canvas as it was slow. This simplicity meant that
`isDisplayed() algorithm in Selenium worked almost all of the time.
Browsers started getting more sophisticated and as such are able to conjure up new ways to display elements, ways that seem just like magic to the end user of the application.
This talk will explain the cases where Selenium can’t handle isDisplayed()
properly and probably never will.
Jonathan Lipps
Last year, Hugs outlined a vision of WebDriver’s future—one protocol for automating everything, which he dubbed “StarDriver” (or “*Driver”). Appium had already taken the first steps of that vision, by extending the JSON Wire Protocol to mobile applications. Appium’s success speaks to the power of the StarDriver vision. What’s next? Like 80s sci-fi movie sequels, more Appium, of course!
In this talk I’ll outline how Appium has added four new drivers in the last year, from new iOS and Android drivers to Windows Desktop app automation. I’ll highlight some important features and getting started notes. Finally, I’ll discuss Appium’s vision: making the best automation technology available through one protocol for every tester (from individual hackers to Java-slinging enterprise SETs), and how we plan to expand into new areas, such as IoT. At this point, you might be wondering: is Appium really StarDriver? To find out, stay tuned for SeConf 2016!
Hugh McCamphill
In this talk you will get ideas about how you can instrument test result information to provide actionable data, paving the way for more robust, reliable and timely test results.
By capturing this information over time, and when combined with visualization tools, we can answer different questions than with existing solutions (Allure / CI tool build history). Some examples of these are:
Using this information we can move away from the ‘re-run’ culture and better support continuous integration goals of having quick, reliable, deterministic tests
Peter Hedenskog
You are the Selenium master and automate tests in your sleep. You make sure the quality of your companies web page is 100%. But then the team wants you to measure the performance of your site. How do you do that? Is that even possible with Selenium?
In this talk we will look at how we use Selenium in Browsertime & sitespeed.io to measure the speed of your web application and how you can implement it yourself in your own Selenium tests. We will also briefly look at strategies to make sure you can catch regressions in your sites performance.
Kathleen Conway
Moving from manual to automated testing at a small company takes curiosity, research, careful planning and the ability to evolve as you learn. This talk will focus on how to get started, cultural hurdles, technology options, implementation and evolution. Additionally, virtualization and test case management will be covered. The goal for this topic is to show how to go from manual test case execution to an automated framework that can be built upon.
Cat Fletcher, Ashley Hunsberger
There are a lot of examples out there for how to introduce good testing and architectural patterns when you are starting a new project. In reality, even on newer projects, you are more often working in a less than ideal state. Schedules are tight, customers want more features, but at some point your productivity will fall apart if you do not make good architecture and testing a priority. How do you get out of this state? This talk will present common issues and agile, realistic solutions within the context of real world examples.
Pooja Shah
The aim of this talk is to understand the most common but challenging pain points of Quality Assurance phase and learn how to be ready to tackle them.
Do you have your product on all major platforms (Desktop Web, Mobile Web, Mobile Native apps etc.) and automating tests for all of them is a big pain? From providing feedback to getting the fixes for issues caught to giving go ahead for release is another ball game? Looking for answers to any such questions or improvisation in your existing system? Come let’s talk…
Pain Points & how to approach them:
I will take you through the live demo of RSA, I’ve developed for similar needs, and discuss on how you can use it to meet your end-goals.