filter_list
  • Maaret Pyhajarvi
    keyboard_arrow_down

    Maaret Pyhajarvi - Patterns to Whole-Team Test Automation Transformation

    45 Mins
    Case Study
    Intermediate

    Looking back at test automation in a product development team for describing patterns of success for research purposes, we identified themes where the experienced success significantly differed from what the literature at large was describing. With those lessons, I moved to a new organization and took upon myself to facilitate a transformation to whole-team test automation over multiple teams, one at a time, one after the other. In this talk, we will revisit the research from one organization two years ago with lessons from another in the last two years. 

    In this talk, I will introduce you to my core patterns to practice-based test automation transformation. I can't promise a recipe I would apply, as my recipe changes and adapts as I work through teams, but I can promise experiences of the same patterns working on multiple occasions as well as examples of how my go-to patterns turned out inapplicable. We'll discuss moving from specialist language to generalist language, visualizing testing debt and coverage, using visualization to showcase progress made of continuous flow of small changes, choosing to release based on automation no matter how little test automation there is, and growing individual competencies by sharing YOUR screen when working together. 

  • Tariq King
    keyboard_arrow_down

    Tariq King - From Rigidity to Resiliency: An Evolutionary Tale of Selenium-Based Frameworks

    Tariq King
    Tariq King
    Chief Scientist
    test.ai
    schedule 3 weeks ago
    Sold Out!
    45 Mins
    Talk
    Intermediate

    Prior to Selenium, engineering teams around the globe were struggling to build and maintain their own web testing solutions. Most frameworks at that time neither supported testing the front-end behavior of web applications, nor executing tests across different browsers and operating systems.  This forced teams to fill that gap with homegrown solutions and they were doing so in silos, without the support and backing of the open-source community or browser development companies. As we know, Selenium changed all of that and WebDriver has been a saving grace for development teams. However, the rise of Selenium unveiled a hidden set of web UI test automation challenges, many of which are still prevalent today.

    Join Tariq King as he takes you on a journey to address those challenges through an evolutionary tale of test automation framework development. Based on a true story, the tale starts with replacing a rigid homegrown solution with a more flexible internal Selenium-Based Domain Specific Language (DSL), and then extending that into an external DSL with powerful test management and software process integrations. The next step in the evolution incorporates AI-based element selection and self-healing features into Selenium. Curious about where the story goes or how it ends? Tariq will share his thoughts on the future of web UI test automation with Selenium.

  • Sai Krishna
    keyboard_arrow_down

    Sai Krishna / Srinivasan Sekar - Advanced Appium 2.0

    480 Mins
    Workshop
    Advanced

    At this workshop, you'll learn about advanced concepts in Appium. We will learn how to write a single script for Android, iOS, and mobile web apps. Once our tests are established, we will work on the framework design and report. We will also have a detailed look at how can we automate various mobile gestures using Actions API and mobile endpoints in Appium. The workshop will be based on the latest Appium's Java Client.

     

     

  • 480 Mins
    Workshop
    Intermediate

    Selenium WebDriver v4 was released in Oct 2021. This version of Selenium WebDriver brings new features and capabilities for automation. At the same time, there are some features that are now deprecated and changed.

    If you answer yes to any of the following questions, this workshop is for you!

    • Want to automate tests for your web application(s) using WebDriver, but don’t know where to start?
    • Want to migrate from Selenium v3 to Selenium v4, but don't know how to proceed, or the impact of the migration?
    • I am able to use basic Selenium capabilities. I want learn and implement advanced capabilities and best practices for web automation?

    This practical, hands-on, course is designed to help automation engineers with all levels of experience. All attendees will leave with working Selenium WebDriver code on their machines and many techniques to successfully use the Selenium WebDriver API in their own context.

  • Ru Cindrea
    keyboard_arrow_down

    Ru Cindrea - Automation for mobile games with Appium and AltUnity Tester

    20 Mins
    Talk
    Beginner

    In this 20 minute session, I will demonstrate the use of Appium and AltUnity Tester, an open source automation tool for Unity, to write automated tests for a game. I will briefly show why this is a challenge with just Appium and how adding AltUnity Tester to the mix allows us to identify game objects and interact with them just like we would in a native mobile app.

  • Diego Molina
    Diego Molina
    Staff Software Engineer
    Sauce Labs
    schedule 3 weeks ago
    Sold Out!
    480 Mins
    Workshop
    Beginner

    Have you ever wondered how you can contribute to the Selenium project and become part of the team?

    Do you wonder how the different Selenium projects work under the covers?

    Selenium is a set of solutions that enables you to automate all major browsers with WebDriver, scale up and run tests in parallel through the Grid, record and play back user interactions with the IDE, and share all this knowledge though the Selenium website and documentation.

    However, 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 fix or improve something that you can contribute on the same day!

  • Manoj Kumar
    keyboard_arrow_down

    Manoj Kumar / Puja Jagani - Driving Observability with Selenium Grid 4

    480 Mins
    Workshop
    Intermediate

    Selenium Grid can be a bit daunting to get up and running. Starting it is quite easy, but using it effectively can require pulling in third-party tools. In this workshop we’ll cover how to run your grid effectively, using best practices culled from several large grid installations.

  • Diego Molina
    keyboard_arrow_down

    Diego Molina - The Web has evolved. Has your testing evolved too?

    20 Mins
    Talk
    Beginner

    Web applications evolved a lot in the last few years to a point where traditional testing approaches and tools are not good enough. Along with that evolution, new web frameworks changed how web applications are written and tested. Testing strategies are now more important than ever, together with a division of testing responsibilities across the team, and a deeper understanding of the web application under test.

    Evolution, community feedback and standards have also made Selenium evolve during the last few years. How does Selenium fit now in your testing puzzle? New features like network interception, event listening, and mutation observation can help you make your tests more complete and resilient. We will go through some of these features in Selenium, and how they can help you create fast feedback loops to improve the experience of writing and testing software.

  • David Burns
    keyboard_arrow_down

    David Burns - Working in the Shadow (DOM) - How to test Web Components

    45 Mins
    Talk
    Beginner

    As Web Components gain more traction in the web to help websites become more performant it has created a bit of a blind spot on how to test these new features.

    In this talk, David will walk you through what Web Components are and how they are benefiting the web as we move forward. He will then walk you through how we can go about testing these and how, while well-meaning, other frameworks are making things a little harder to test. He will also go through some of the performance aspects of the Web Components and how this translates to your tests.

  • Srinivasan Sekar
    keyboard_arrow_down

    Srinivasan Sekar / Sai Krishna - Build your own Appium 2.0 Driver

    45 Mins
    Case Study
    Beginner

    What if you had to create a custom driver for your use case in your project and with Appium 1.0 it was not possible without making any code changes to the actual appium code base. This would lead us to maintain a fork and make our required changes. Which in turn is overkill as we have to always keep up with upstream. 

    With Appium 2.0 architecture we can create drivers and plugins for our unique needs. At this talk, we will talk about Appium 2.0 architecture, how to make custom Appium drivers and what other breaking changes we brought in Appium 2.0.

  • Robin Gupta
    keyboard_arrow_down

    Robin Gupta - TestZeus: Open source UI automation framework built specifically for Salesforce with Auto-locators

    Robin Gupta
    Robin Gupta
    Associate Vice President
    Provar
    schedule 2 months ago
    Sold Out!
    45 Mins
    Demonstration
    Beginner

    Automation for Salesforce is tough (no , seriously). And every platform release brings the lightning and thunder for UI Automation tests (Winter21 caused even our tests to shiver). So we present TestZeus to end this madness and create a simple (and robust) Open source framework for Salesforce Test Automation. And solve the problem of flaky tests, while accelerating the development of automation .

  • Michael Mintz
    keyboard_arrow_down

    Michael Mintz - Solving Wordle with Python and Selenium - And then running that in GitHub Actions

    Michael Mintz
    Michael Mintz
    Director of Automation
    iboss
    schedule 1 month ago
    Sold Out!
    45 Mins
    Demonstration
    Intermediate

    In 2022, the Wordle game took over the world by storm. As curious automation engineers, it is our duty to find an automated solution to solve Wordle for us. I took on that responsibility and created a working Wordle-solver using Python and Selenium. As a bonus, I got that solution to run in GitHub Actions.

    In this presentation/demonstration, you'll learn how all the pieces come together to make this happen. You'll learn some Python, some Selenium, some pytest, some SeleniumBase, some things about Shadow-DOM, and getting your scripts to run in GitHub Actions.

    --------

    The "Why?" Section:

    1. Why automate Wordle?
    Wordle is a game, and games help up learn. In the case of playing Wordle, we play because it's fun to solve puzzles. In the case of automating Wordle, that's an even bigger puzzle to solve because there are more components involved (algorithms, Python, Selenium, Shadow-DOM, etc).

    2. Why run the solution in GitHub Actions afterwards?
    GitHub Actions is one of many available CI/CD systems. Given that it's free to use and already part of GitHub, that makes it the most accessible to people looking to try this out for themselves. People could just as easily run their scripts in Jenkins if they already have access to that. The reason why a CI/CD system was included at all in this demonstration is because automating games gives us a fun excuse to learn more about CI/CD in general (Continuous Integration / Continuous Deployment), which is often the final destination of many automated scripts that test engineers write.

    3. Why SeleniumBase?
    SeleniumBase offers many simplifications and enhancements to the standard Python Selenium bindings. In the case of clicking Shadow-DOM elements, one SeleniumBase line like this:
    > self.click("game-app::shadow game-modal::shadow game-icon")
    would be the following with raw Selenium + Python:
    > self.driver.find_element("css selector", "game-app").shadow_root.find_element("css selector", "game-modal").shadow_root.find_element("css selector", "game-icon").click()
    That's just one of many simplifications. SeleniumBase also also has smart-waiting, reports, dashboards, pytest command-line options for customizing tests, other APIs to simplify Selenium commands, and multiple other enhancements. And best of all, SeleniumBase is free and open source on GitHub, which means it's accessible to all.

    --------

    This is a follow-up to my popular post on DEV:
    https://dev.to/mintzworld/solving-the-wordle-game-using-python-and-selenium-1aei
    ...which was a follow-up to my YouTube video: https://www.youtube.com/embed/wSvehy4u_xw?feature=oembed
    (Since those were created, the New York Times acquired Wordle, and there have been a few changes to URLs, etc. The code has already been updated as needed.)

  • Puja Jagani
    keyboard_arrow_down

    Puja Jagani - Selenium has a new trick up its sleeve to track failures

    Puja Jagani
    Puja Jagani
    Team Lead
    Browserstack
    schedule 1 month ago
    Sold Out!
    45 Mins
    Talk
    Beginner

    As our systems and tests grow more and more complex we need to make sure that we have the tools to capture the root causes without spending hours or days chasing them down. This is where Observability becomes our best friend. Observability allows us to see what is going on inside a system based on what we think is crucial without trawling through logs! Just like any piece of software should be robust, scalable, maintainable, and reliable, it should also be observable. Observability makes the journey from identifying unexpected problems to identifying the root cause easier.

    To do so, the code should record as much useful granular information as possible. Metrics, logs, and traces are three known ways of encapsulating granular information. They are the primary sources of information to help determine the state of the system at any given point in time. 

    Selenium 4 introduced a fully distributed Grid with multiple components that communicate over the network. Troubleshooting and diagnosing problems in this setup is a challenge. To tackle this, Selenium integrated OpenTelemetry’s tracing and event logs.  This feature is now available out of the box by default when using Selenium.
    The users now have more power in their hands!

    I will dive into Selenium's observability journey by discussing: 

    1. What is observability?

    2. Need for observability

    3. Understanding the three pillars of observability: Metrics, Logging, and Tracing

    4. Generating telemetry data alone does not suffice. It is a process from design to deployment. 

    5. Full-stack tracing in Selenium (Grid and Java client library)

    6. Explain how we, at BrowserStack, are benefiting and exposing this information to our users.

  • Benjamin Bischoff
    keyboard_arrow_down

    Benjamin Bischoff - Of plugins and decorators - trivago's e2e test framework in the spotlight

    45 Mins
    Talk
    Intermediate

    Most often, test frameworks are developed from scratch and gradually extended with the required functionality. This approach is perfectly normal, but carries the risk of creeping technical debt as well as poor maintainability, transparency and extensibility. These risks can be minimized by using clean software architecture.

    In this talk, I will present two key parts of our internal Selenium-based end-to-end testing framework, which has been successfully used to test multiple web projects using desktop and mobile browsers during the past five years:

    1. the plugin infrastructure using Java's Service Provider Interface
    2. the custom WebElement decorator that enables more resilient Selenium WebElements

    I will explain the rationale for using these architectural tools and how these approaches mean that we can still evolve this framework quickly and easily to meet new needs.

  • Saikat Sengupta
    keyboard_arrow_down

    Saikat Sengupta / Mayank Joshi - WebAuthn Automation using Selenium

    45 Mins
    Demonstration
    Beginner

    The Web Authentication API (a.k.a WebAuthn) is a specification written by the W3C and FIDO Alliance. The API allows servers to register and authenticate users using public-key cryptography instead of passwords. This helps to strengthen the security posture by going password-less and enabling phishing protection. We can automate WebAuthn-based sites using Virtual Authenticators, and being W3C compliant, Selenium 4 makes it really easy (The Virtual Authentication feature in Selenium 4 is currently available only in Java and in a patch release of Python).

    During the talk, we will explain what WebAuthn is and what virtual authenticators are with some quick demonstrations. Then, we will showcase how using Selenium 4 we can easily automate such cases. We are also going to cover the implementation in Selenium 3 (in case someone is still stuck with the old version :)

  • Boni García
    keyboard_arrow_down

    Boni García - WebDriverManager: the Swiss Army Knife for Selenium WebDriver

    Boni García
    Boni García
    Staff Software Engineer
    Sauce Labs
    schedule 1 month ago
    Sold Out!
    45 Mins
    Tutorial
    Beginner

    Selenium WebDriver is a library that allows controlling web browsers (e.g., Chrome, Firefox, Edge, etc.) programmatically using different languages (such as Java, JavaScript, Python, Ruby, or C#). Internally, Selenium WebDriver uses the native support implemented by each browser to carry out the automation process. For this reason, we need to place a component called driver (e.g., chromedriver, geckodriver, msedgedriver, etc.) between the script using the Selenium WebDriver API and the browser. WebDriverManager is an open-source Java library that carries out the management (i.e., download, setup, and maintenance) of the drivers required by Selenium WebDriver in a fully automated manner. In addition, as of version 5, WebDriverManager provides other relevant features, such as discovering browsers installed in the local system and building WebDriver objects, and running browsers in Docker containers seamlessly. The last feature added to WebDriverManager is related to log gathering. As of version 5.2.0, WebDriverManager provides seamless integration with BrowserWatcher, an open-source browser extension that allows gathering the browser console programmatically (even for Firefox, which was not possible to date). 

  • Narmadha Ramasamy
    keyboard_arrow_down

    Narmadha Ramasamy / sameena syed - Functional Programming in Test Automation

    90 Mins
    Workshop
    Intermediate

    Functional programming(FP) exists from as long as object oriented programming. But most of the testing frameworks are written in OOPS style rather than FP. A typical automation tester knows little or nothing about it. Functional programming is a programming paradigm in which everything is written in terms of functions. This makes the code more modular, bug-free and parallelizable. Hence, it is important to first understand functional programming before avoiding it.

    In this workshop, we will introduce functional programming in testing world. We will help you understand some of the hard concepts of FP, like Currying, Higher order functions, and demonstrate how they can be used in writing an automation framework which is scalable and easier to maintain.

    We'll use Selenium 4.0 to automate a few UI scenarios, covering functional programming concepts and a code walkthrough to its object-oriented counterpart.  This will entice viewers to choose programming style based on its benefits rather than its simplicity.

  • Gaurav Singh
    keyboard_arrow_down

    Gaurav Singh - Hello Espresso! Start with Android Gray box automation

    Gaurav Singh
    Gaurav Singh
    Software Engineer
    Meta
    schedule 1 month ago
    Sold Out!
    90 Mins
    Tutorial
    Beginner

    TL;DR Summary

    • Espresso is a powerful UI automation framework for the Android platform that offers gray box automation capabilities and has a simple, concise, and rich API. 
    • Onboarding to use espresso can however sometimes take time. In this talk, I will explain how to get started with Espresso in the shortest time possible and we’ll look at some recipes on how to automate common app scenarios with espresso API.

    Abstract

    • It’s 2022 and most businesses these days are mobile-first with a presence on major platforms. UI automation is a critical part of the testing strategy of businesses looking to release high-quality apps with confidence. While unit testing is a much wider adopted practice, writing scalable UI automation is often a challenge due to its higher fidelity.
    • Espresso is the dominant UI automation library for android from Google that provides a rich and concise API to test your android app's UI with confidence without sacrificing reliability and with minimal flakiness due to amazing integration with underlying instrumentation.
    • For an n00b engineer approaching their first Espresso test, it could be especially tough to wrap your head around its idioms and android context and get set up quickly. 
    • Well, In this talk:
      • we’ll solve for that exact persona and provide a quick understanding of an espresso test structure
      • Follow up by diving deeper into its API
      • Discuss different ready to use recipes that developers could use to solve some common use cases with mobile UI automation
      • Provide a boilerplate framework
      • I'll share Github repo links that have app source code along with their Espresso UI tests to follow along or revisit later.

     

  • Gayathri Mohan
    keyboard_arrow_down

    Gayathri Mohan / Pallavi Vadlamani - How to approach Continuous Testing of Cross-Functional Requirements?

    45 Mins
    Talk
    Advanced

    Cross-functional requirements (CFRs), predominantly referred to as Non-functional Requirements (NFRs), form an integral part of software quality and testing for them continuously is an absolute necessity for any team that promises to deliver high-quality software to their customers and end-users. Often, the emphasis that is placed on continuous testing (CT) the functional requirements are not equally placed on continuous testing the cross functional requirements in software delivery teams and by the business stakeholders. There could be multiple reasons catering to this phenomenon but one we believe could be a prominent reason is the lack of awareness on how to approach CFRs testing as they come across really vague, say, reliability or maintainability, for example. 

    In this talk, I, author of O'Reilly's Full Stack Testing book, and my colleague from Thoughtworks, Pallavi Vadlamani, would like to elaborate why it is essential to do continuous testing for cross-functional requirements and introduce a holistic approach to continuous testing of all the cross-functional requirements (the approach is carved as part of Gayathri's book). We will cover how different testing techniques such as static code analysis, architecture tests, visual tests, infrastructure tests, load tests, etc., cater to automating a variety of CFRs, including those really vague ones, and therefore, aid in continuous testing and building quality into the software. 

    We would continue the talk with applying the approach to a couple of CFRs specifically, say, security and accessibility, to give the audience a solid grasp on the approach. By the end of the talk, the audience should get a clear idea of how to approach continuous testing of any given CFR that is necessary for them to deliver a high-quality software.

  • 45 Mins
    Demonstration
    Intermediate

    Simulating real-user scenarios as part of your automation is a solved problem. You need to understand the domain, the product, the user, and then define and implement your scenario.

    But there are some types of scenarios that are complex to implement. These are the real-world scenarios having multiple personas (users) interacting with each other to use some business functionalities. These personas may be on the same platform or different (web / mobile-web / native apps / desktop applications).

    Example scenarios:

    • How do you check if more than 1 person is able to join a zoom / teams meeting? And that they can interact with each other?
    • How do you check if the end-2-end scenario that involves multiple users, across multiple apps works as expected?
      • Given user places order on Amazon (app / browser)
      • When delivery agent delivers the order (using Delivery app)
      • Then user can see the order status as "Delivered"

    Even though we will automate and test each application in such interactions independently, or test each persona scenarios independently, we need a way to build confidence that these multiple personas and applications can work together. These scenarios are critical to automate!

    In this session, I will demonstrate teswiz, an open-source framework can easily automate these multi-user, multi-app, multi-device scenarios. I will also mention how to run these tests on local and in CI pipelines.

    Example: Multi-user, Multi-device test scenario

    MultiUser-MultiDevice-Annotated.png

    Example: Multi-user, Multi-app, Multi-device test scenario

    MultiUser-MultiDevice-MultiApp-Annotated.png

    Teswiz enables, and guides you to implement your automated tests while adhering to the principles of test automation, like - independent tests that run in parallel, against multiple environments using environment-specific-test-data and generate rich and contextual reports (and test execution trends) in reportportal. 

    Test coverage is increased by using Applitools Visual AI, along with Applitools Ultrafast Test Cloud. 

    In addition, teswiz takes away the pain of managing your browsers, and android / ios / windows devices for automation. The automated tests can run on local browsers / devices, or against any cloud provider, such as HeadSpin, BrowserStack, SauceLabs, pCloudy.

    The following features makes teswiz unique:

    The ability to do:

    • Multi-user scenario automation between all platforms (android, iOS, Web, Windows desktop applications)
    • Managing browsers / devices and parallel execution automatically
    • Completely configurable options - means no code change required to run different combinations of tests, on demand
    • Integration with Applitools Visual AI and Applitools Ultrafast Test Cloud
    • Rich contextual reports (including screenshots, browser / device logs) and trend analysis via ReportPortal.io

    The following features are relatively new in teswiz:

    • Ability to run test orchestration across different platforms, using different app(s) and different users
    • Integration of Applitools Ultrafast Grid for scaling
    • Support for Firefox & Safari (earlier it was only Chrome)
    • Better driver management & cleanup
help