Getting started with internal open source: navigating overwhelming organisational changes

Intermediate

When I first started as a tester at my current company over 7 years ago my team was contributing code to a monolithic application. Soon after we started building our first microservice(yay) and moving towards a service-oriented architecture. Then, in a what seemed like the blink of an eye, we went from one microservice to hundreds of them. It was then that I realised for the first time that the foundation of how the organisation worked was changing drastically. As a tester I went from owning my component to owning my team’s components to now owning all the components. We are no longer working in siloed teams but in squads across tribes in an internal open source model.

So now what? How do you tackle all the changes? How has the tester role changed? What are the new responsibilities and how do they fit in the overall picture? How do you work inside the squad, with other squads and other tribes? How does a feature get into production, what does automation look like? How about releasing and support or incident management?

Join me in this session where I will be sharing my personal experiences of recognising a pattern when organisations are changing, navigating through them and adapting ways of working to the new model. It’s about finding your voice and role in an ever changing world.

Raluca Morariu

Raluca Morariu

Delivery Manager - Betfair Romania

Part 3: practice what you preach when deploying Selenium 4.x

In 2017 I told you to care more about your infrastucture than your scripts. In 2018 I showed you a framework to help you with it. This year the theory meets reality and we actually deploy something.

On Stage.

Securely.

Entirely through code.

And while that runs in a window, we'll discuss what makes your automation infrastructure secure, scalable and cost efficient.

This session will use Terraform and AWS, but the concepts are applicable to any cloud deployment.

Note: You don't need to have seen Parts 1 and 2 to get value from this, just a desire not to be the one responsible for a security breach or to cause your employer to have unnecessary operating expenditure.

Adam Goucher

Adam Goucher

CTO - The Mobile Experience Company / Element 34

Build an automation framework... with a developer mindset

Intermediate

Automation framework development is an acquired skill and can be considered similar to application development. The framework would greatly improve if the design principles used to write application code are leveraged to build it. By leveraging the 4 pillars of Object Oriented Programming in writing your automation framework, we can achieve the same level of efficiency as your application. Here are a few quick examples:

  • Abstraction - use of different browsers to enable the test case to be run on many different system configurations.
  • Encapsulation - use of page objects as a class.
  • Inheritance - keep common functionality in parent Page class and extend it for all other child Page classes.
  • Polymorphism - ability to change behavior at runtime

Software development is built on the foundation of reusability and reliability. By making the steps in scenarios reusable and scenarios or test cases independent, we can lower the test maintenance costs and improve stability.

Prerequisite

  • Test Automation
  • Nice to have basic Java experience
  • Learning Outcomes

  • Get ideas on how to build frameworks
  • Understanding ways to write easily maintainable code
  • Write independent scenario and reusable steps
  • Aditi Mulay

    Aditi Mulay

    Automation Test Lead - Karsun Solutions LLC

    An engineer's code of ethics

    Beginner

    We should have a code of ethics in whatever we do because it allows us to measure our decisions against our values. An engineer is first and foremost a human being, but sometimes engineers ignore ethics and ship unethical features to users. With this talk I will explain why people push unethical code into production and ways that we can prevent that from happening.

    Development does not exist in a vacuum. Society is the biggest system we can impact and everything you do is a part of that system, good and bad. Ultimately we must judge the weight and value of our work based on that impact.

    Sometimes engineers ignore ethics and ship unethical features or outright products to users. With this talk, I will answer some questions such as:

    • What’s the code of ethics of an engineer?
    • Why many of the engineers that are working on products tend to not follow this code and push “unethical” code to production?
    • What are some examples of unethical features pushed to production?
    • What we can do as a community to persuade people to follow this code of ethics?

    I believe that we have a duty as people building products for people on the other end of the screen, to build a product that they can love and trust. But we can only do that if we ourselves are transparent and straightforward in the way we do so and the route we take to get there.

    Agisilaos Tsaraboulidis

    Agisilaos Tsaraboulidis

    Co-founder and CTO - Iris Health

    Shifting left your UI tests

    Intermediate

    We all know Selenium tests are flaky by nature, slow to run, expensive to maintain and finding the root cause of a failure is not always easy. I would like to show you how we shifted our UI tests left. This drastically limited the number of Selenium tests we needed to write, which made us able to focus our Selenium testing on areas where it actually adds value instead of creating a headache.

    Arjan Blok

    Arjan Blok

    Test Engineer - Mendix

    Devs should love your tests

    Beginner

    The best way to truly achieve Agile and CI/CD is to have devs fall in love with your tests - manual or automated. This transformation starts with empathy and ends with confidence. This is what I did at my current company and now every member of the team enjoys writing automated tests.

    Carlos Kidman

    Carlos Kidman

    QA Manager - Workfront

    Let's take baby steps to security testing : don't let those vulnerabilities choke your application

    Beginner

    Security has become a necessity in our day-to-day activities. Are we aware how we can uncover these vulnerabilities? Do we understand the basic security tests that we run? Can we analyze and understand whether the threat found is a false positive or not? How can we make Static Application Security Testing and Dynamic Application Security Testing (DAST) work hand in hand for our benefit? How can we have DAST Automated with our dear Selenium? How can we apply DAST on Mobile Apps? How can we have DAST part of CI/CD pipeline?

    This talk will introduce the audience to take their very own first steps in to Security Testing. I will be introducing them to concepts and move forward on how they can achieve them with real demos which will comprise of giving the audience an overview on certain OWASP vulnerabilities with demos on them and then demos on Mobile DAST and Web Application DAST with Selenium and Jenkins.

    This will be a helpful talk for those who are interested to step into the world of security testing.

    Christina Thalayasingam

    Christina Thalayasingam

    Senior Quality Engineer - Sysco LABS

    Selenium and Conservancy

    Beginner

    Conservancy is home to over 40 community-driven open source projects -- including Selenium. This talk is about the structures that facilitate the sharing of everything *around* the software that community projects need in order to thrive and do good in the world.

    Deb Nicholson

    Deb Nicholson

    Director of Community Operations - Software Freedom Conservancy

    Using ML to find value in your automated tests

    Beginner

    I’ll share details about open sourced AI-powered test-automation dashboard — ReportPortal.io. Use case of machine learning in test automation log processing and test fail categorization. With benefits of real-time reporting from multiplied, distributed or remote environments. You will learn how to start it on you project, organize dashboards and metrics tracking. Leverage API of the tool for integration with you CI tools like Jenkins.

    Dzmitry Humianiuk

    Dzmitry Humianiuk

    Delivery Manager - EPAM Systems

    Adding accessibility into Unit Tests: improving audit results and our experiences

    With changes to and increasing enforcement of accessibility Laws around the world, implementing a strong testing strategy early in the product development cycle is key to not only meeting these Laws but an overarching improved user experience for everyone. This presentation will discuss how implementing accessibility into unit testing has helped us improve our ability to catch issues sooner in addition to the following:

    • Technical aspects of implementing the tool
    • General pros and cons of using any automated accessibility testing tool
    • And of course the Web Content Accessibility Guidelines, Section 508 (United States), and EU 301 549 (European Union)

    Elizabeth Simister

    Elizabeth Simister

    Product Accessibility Manager - Blackboard
    Heidi Jungel

    Heidi Jungel

    Accessibility Engineer - Blackboard

    Treat test code as application code by linting

    Intermediate

    In my experience, test code does not get treated with high coding standards as application code does, because as many people tend to say: "it's just for testing". As testing is a critical part of the SDLC, why not?

    By applying linting (static code analysis) tools to test code, preferably the same tools as for application code, tests can be improved which can eventually lead to better maintainability, readability and more robust tests.

    Kwo Ding

    Kwo Ding

    Test Automation Consultant, SDET

    Caring for new developers

    When your team gets new developers, how do you prepare to help them thrive? Most of us believe we are encouraging and inviting to new team members. Hiring developers can be expensive. As an industry, we still have a turnover problem, costing us time, money, and technical excellence. What you do in real time, solving business problems, defines your team culture. Hear real life examples of experienced developers attempting to help me learn in my first few years of programming. I'll share some mistakes that you may be unintentionally making that could harm the confidence and growth of your new programmers, and several tips for quickly boosting the experience and learning of the developer you are interacting with.

    Lanette Creamer

    Lanette Creamer

    Software Test Pilot - The Omni Group

    Screwing up. The automated way!

    Intermediate

    The story of my major blunders and lessons learned throughout the 7 years that I’ve spent as the only member of the Test Automation Team, designing and developing the company’s automated testing framework “from scratch”. I had to learn the hard way that, while, in a world of Software Testers, the Test Automation Engineer is seen as a superhero – with great power come endless possibilities of messing things up!

    Madalina Bejinariu

    Madalina Bejinariu

    Test Automation Engineer - Smart2Pay

    The automation break up: saying goodbye to full stack tests with task analysis

    Advanced

    Full stack UI driven tests are routinely criticised and shown to be inefficient, wasteful and brittle. But what are the alternatives? How can we successfully move away from full stack tests and develop valuable automated tests? We can achieve this by using our knowledge of our systems along with task analysis techniques to identify opportunities to move away from fill stack tests and towards smaller, focused, tests that are more maintainable, give better feedback and are fast to run.

    In this talk, I will introduce and demonstrate task analysis techniques that can help us break down a system. We will identify the different technologies a system is comprised of, the actions each technology carry out and their integration with other parts of the system. From there, we will learn how these actions and integrations can have automated tests run against them using a varied range of automation tools. Examples would include JavaScript unit tests for JS components, Visual comparison tests for rendered HTML and API tests for contract changes between services.

    Through the demonstration of task analysis and range of tools, we will learn that by breaking down a complex action, we can identify and create multiple targeted tests that when ran together give us richer feedback and are more maintainable than a full stack test can.

    By the end of this session, attendees will be able to:

    • Describe the task analysis process and its value when applied to complex systems
    • Break down a complex system using task analysis to identify specific system actions
    • Review specific system actions to help identify different automated testing activities
    • Produce automated tests that run against specific system actions that when combined give us a wider view of our systems current state
    Mark Winteringham

    Mark Winteringham

    DojoBoss - Ministry of Testing

    40 countries, 35 brands, 1 test automation framework

    Intermediate

    How do you tackle test automation for an e-commerce platform spanning 48 different brands in so many countries? The project started with one country but was built generically because all the brands worldwide would be onboarded in the upcoming years. New countries can be set up very quickly, which is the main goal and the proven strength of the project. Our test automation could not be the bottleneck in this rapidly expanding global ecommerce solution.

    In order to avoid a lot of different frameworks/repos, we had to think of a way to make a scalable and generic test automation framework. Key to success is a combination of proper tooling (Cucumber, WebdriverIO), scalable set up/mindset and support within the project.

    Currently, several brands are live and our framework has proven itself by its scalability, accessibility. Setting up a second brand, which was the first real “test” for our framework, mindset and way of working, was a matter of hours with some tweaking for minor brand specific elements. The third country went even faster and we can now include new brands into the framework on a daily base.

    Michel Lalmohamed

    Michel Lalmohamed

    Senior Test Automation Specialist - Valori Full Stack Testing
    Wout de Jong

    Wout de Jong

    Test Automation Specialist - Valori Full Stack Testing

    The Pied Piper of Selenium

    Beginner

    Remember the legend of the Pied Piper of Hamelin? He was known as the Rat-catcher. He played an enticing song on his pipe and the rats followed him mesmerised by his music. Who are the “rats” we want to control in Selenium? Mouse events and complex user gestures.

    Unfortunately the mouse is often deaf and unresponsive to the code we play.

    All of us can become like the The Pied Piper of Selenium and get those "rats" to dance to our tune.

    Michelle will elaborate further on how we can achieve this and look at elementary mouse events and element attributes. She will look at how actions and interactions differ across programming languages, and in a variety of browsers and devices. Michelle will discuss the pros and cons of learning more about Javascript, and how executing JS can result in less painful scrolling, hovering and dragging. And a bit of chit-chat about using appropriate waits and sensible pauses when coding your interactions. The moral of the story. Keep your promises. Make those mouse simulations work.

    Michelle Macdonald

    Michelle Macdonald

    Senior Test Automation Engineer - Aesop

    Open source multiplatform visual based testing

    Beginner

    Working at a game company, we needed a powerful test automation tool that could be used across our different games and engines. We thought of a solution that would do this and more and, in collaboration with Google, we created and open sourced the "Airtest Project". With its record and playback utility and the ability to create the test code built-in you can see how useful it can in any of your projects.

    Noemi Ferrera

    Noemi Ferrera

    Senior Software developer

    4-1-4: four ways how to communicate one thing to four different people!

    Beginner

    My first Stand Up as a Test Manager? Charlie slammed the door shouting that he needs clear instructions. Lucas stood in a corner, terrified in silence. Kevin told me that he will probably quit because it’s not fun anymore.

    Petra, do you want to succeed? Then you have to adjust your communication style to the needs of your team.

    Does Charlie want instructions? I will always write clear emails explaining what went on at the end of every meeting. Does Kevin want some creative challenge? He will get a new project. Will Lucas feel more comfortable in private? I will plan a lunch with him.

    There are 4 personalities in your team!

    1. Get to know yourself!

    In the first part I will introduce you to these 4 colours of energy and how to easily recognise them. You will finally find out: a. What is your real value for a team? b. How do you behave in a good mood or stressed out?

    2. Get to know your team!

    We will focus on topics: a. How to communicate change? b. How to give feedback? c. How to motivate and which tasks to give to your team members? d. How to write a meeting invitation to get all the people (personalities) on a meeting?

    I have held some parts of this Speech at European conferences last year and someone approached me every time with a big smile on their face screaming: 'Now I finally understand it, my team is blue and I’m yellow.' or 'Aha, that’s why I can’t really get on the same page with my Business Analyst.'

    Prepare yourself, this will change your way of communication forever. At the end of my session, be ready for a funny and interactive colourful call to action.

    Petra Bouskova

    Petra Bouskova

    Test Coordinator - tesena

    Uncover your test biases

    Beginner

    It is possible that the test automation or test strategy built by teams is based on the biases about the application. For example, we all have a favourite part of our application that we know is most prone to bugs and unknown issues and we end up testing it more than usual. Even when it is proven that the functionality has been robust, we can never get over the unconscious bias that it might still be risky and test it thoroughly. On the other hand, there will be parts of application that we would be so confident that it would never break and any defect found there comes as a surprise. Now why do teams have such a biased strategy for testing? Are there more such biases that we never uncovered? In this talk, I will focus on the test biases I have discovered in our collective experiences as QA community.

    Target audience: Everyone who is interested in improving their testing strategy and quality.

    Take aways:

    • Uncovering the existing biases in typical testing approaches
    • Examples for those biases
    • Ways to mitigate those biases going forward
    Pranathi Birudugadda

    Pranathi Birudugadda

    Lead Quality Analyst - ThoughtWorks

    Redefining test automation

    Test Automation, a term everyone in testing probably hears on a regular basis, but what is it? If we listen to consultancies and tool vendors, it’s the holy grail. If we listen to some gurus in the testing space it’s the current and future of testing. Others are more conservative. However, I commonly hear people say Test Automation when they actually mean Automated Testing, to be frank, they’ve become synonyms.

    This confuses me. As a skilled tester I use automation and tools all the time, some I create, some I download, but automated tests they are not. I’ve built automation to help my team create data, I’ve built low tech dashboards and I’ve built tools to install my mobile app under test on as many devices as I could connect to my computer. I’ve written tiny little scripts they saved me hours on a weekly basis. All these tools provided a lot of value. I’m also built numerous architectures to do automated checking, which just like my tools provided a lot of value. My focus on all these occasions was my testing mission.

    So, what is Test Automation? How can we succeed with it? What skills do we need to succeed with it? Questions I’ve been pondering for the last four years, and I think I finally have some answers. Not just answers though, I also have lots of actionable advice for you to take back to work. This advice will be woven between real examples like those listed above, exploring why I created them, the skills needed and how they helped me with my testing mission. To keep the balance, I’ll also be included lots of stories where my automated approach has failed and how I learnt from it.

    Takeaways

  • Models to take back to work to challenge your existing use of automation
  • A list of skills required to succeed with automation that you can to plan your learning
  • A list of techniques to spot opportunities for valuable automation in your context

  • Richard Bradshaw

    Richard Bradshaw

    CEO - Ministry of Testing

    Next level of Front end testing with Devtools and WebDriver

    Beginner

    Chrome DevTools is one of the most useful web developer tools. It allows you to get comprehensive information about the page and requests and emulate mobile browsers on slow devices.

    Some of the blockers which we faced with Webdriver was to automate

    • Getting events from browser like when specific network call completed
    • Setting the fake geo-location from your WebDriver scripts
    • Updating the user-agent
    • Mocking the web response by intercepting the traffic
    • Simulating network bandwidth especially for Mobile Chrome

    As our team had built a good number of a test case with user-journeys it was hard for us to move out of Webdriver and rewrite all our tests. So we decided to take the advantage of chrome dev tools API which uses web socket communication and implements our selenium web driver test to access all the API.

    An outcome of Session:

    We will demo about how you can use the power of DevTools in Selenium tests and how to make the debugging more convenient.

    Fathima Harris

    Fathima Harris

    Senior Consultant - ThoughtWorks
    Sai Krishna

    Sai Krishna

    Lead Consultant - ThoughtWorks

    Lessons from testing browsers using WebDriver

    Intermediate

    Web-platform-tests is a large testsuite used to ensure browsers stay compliant to web standards and in doing so remain interoperable. Along with being run in most browsers as part of their CI system, we run the whole testsuite over a dozen times a day to provide a public dashboard for both those working on browsers and those more generally working on standards.

    Running such a large testsuite, we’ve inevitably run into many of problems web developers often hit when writing tests using Selenium. We’ve often fought against flakiness (from our Python code calling WebDriver, from JS code running in the browser, and from browser bugs causing them to be inconsistent) as well as against browsers changing under us. They hope in this talk that attendees will gain a good understanding of how we tackled these problems and be able to apply them to their own tests.

    Sam Sneddon

    Sam Sneddon

    Software Consultant - Freelance

    State of the union

    Beginner

    What's been happening in the world of Selenium since the last SeleniumConf? In this talk, we'll cover Selenium 4, how the project is run, how you can participate, reminiscing on the Old Days, and reflect on something that at first doesn't appear to be related to Selenium, yet is intimately related to it.

    Simon Stewart

    Simon Stewart

    Lead Committer, Selenium Project & Creator of WebDriver

    So you think you know Appium because you know Selenium

    Intermediate

    In this talk I'll discuss some key differences between using Selenium and Appium when automating a hybrid and or native app. We'll dive into some of the most common made assumptions by exploring the differences with a native app. I'll give examples and tips on how to deal with those differences and to prevent the assumptions in the future. This will be done with some live coding on stage.

    People can gather more knowledge about the differences between web and native apps because I'm going to explore the differences in the DOM, for web, and the UI-hierarchy for native apps (iOS and Android), determine the best locator strategy for automating native apps, discussing some useful ways to use for example: cross platform gestures, validating texts and much more. (including cross platform page objects).

    Wim Selles

    Wim Selles

    Sr. Solutions Architect - Sauce Labs

    Sponsor SeleniumConf

    We love working with our sponsors to come up with fun and creative ways to showcase your brand, meet your objectives and budgets, and add value for our attendees.

    Please get in touch to request a sponsor pack.

    Sauce Labs

    Premier sponsor

    Applitools

    Platinum sponsor

    SmartBear

    Platinum sponsor

    API Fortress

    Gold sponsor

    Perfecto

    Gold sponsor

    Join our mailing list

    Sign up to receive updates about SeleniumConf, including speaker previews, ticket launches, Call for Proposal details and other exclusive content. We won’t spam you and will only send you emails we genuinely think you’ll find interesting. You can unsubscribe at any time and you can find more information in our Data Promise.