Writing automated tests is pretty easy. Writing Great automated tests is pretty hard. By "Great" I mainly mean:

1. Easy to maintain

2. Readable

3. Reliable

4. Reusable

In this hands-on workshop I'll give very clear guidelines for writing such tests and their required infrastructure


Outline/Structure of the Workshop

* The different considerations and benefits of Manual and Automated tests

* The unique value of automated tests

* Traits of great automated tests

* The guidelines for writing great automated tests:

  • Composing automation-oriented, goal focused, test cases
  • Composing the scenario steps to achieve the defined goal as high-level business sentences
  • Translating the steps to an object-oriented design
  • Writing the skeleton of the test design in code
  • The systematic implementation process
  • Remove duplication

* Growing a framework

* Beyond the test code

  • Isolation
  • The place of the automation in the development lifecycle

* Conclusion

Learning Outcome

The attendees will be given concrete guidelines for writing highly maintainable, readable, reliable and reusable test code that will provide the most value to the development team. They'll also learn how this technique helps them grow a robust, reusable and maintainable infrastructure for their tests.

Target Audience

Test automation developers that write code

schedule Submitted 3 years ago

Public Feedback

comment Suggest improvements to the Speaker

  • Liked Simon Stewart

    Simon Stewart - Fix a Bug, Become a Committer

    480 Mins

    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!

  • Priti Biyani
    Priti Biyani
    schedule 3 years ago
    Sold Out!
    90 Mins
    Case Study

    These days we find most of the apps are being developed across different platform, iOS, android, windows and to keep the user base which uses web, mobile web and websites. 

    When apps are being developed for cross domains, most of the functionality provided by the app is very similar, varying thing is PLATFORM. 

     In rapid development cycle, where there are tools which allows you to write once and reuse across multiple platforms, makes development very faster. 
    But at the same time, if we have different automation suite for different platforms, it becomes very difficult to keep a pace with ongoing functionality. 
    This is the exact problem we faced, and the solution we came up with is "One Page to test them all! -A cross platform mobile automation framework! "


    Page Object Model

    Well, Page Object Model was again a natural fit for this framework. Most implementations of POM recommend different POMs for each platform. But we wanted to have a single Page Object Model for all the 3 platforms to ensure maximum code reuse and reduce overall time spent in adding new automation.

    Single Page Object Model across platforms

    This was complicated because we had native screens as well as webview screens and so it was not possible to use the same Page Object. To solve this, we introduced abstractions for the elements on the screen and encapsulated the respective native driver implementations.

    This also allowed us to implement common automation tasks in one place for e.g waiting for new pages to load, so that this code is not repeated across multiple step definitions and platforms. This helped us move to thinking in higher domain level concepts than in terms of low level UI interactions.

    So, in summary, we write our tests for one platform and run them for all with an abstraction layer in place.



  • Liked Ori Bendet

    Ori Bendet - Tales from the Dark Side: The Growth, Implementation and Influence of Selenium inside Hewlett Packard Enterprise

    45 Mins

    I know what you’re thinking: the creators of WinRunner, QTP/UFT are now embracing Selenium?

    Ten years after Selenium came into existence as an open source alternative to Mercury Interactive, the perception and relationship between QTP and Selenium has morphed from competition to collaboration with complementary test automation frameworks.

    Join Ori Bendet, HPE Inbound Product Manager for Functional Testing to discuss how HPE’s R&D uses Selenium and other open source tools. Understand the new roles and responsibilities of dev/test @HPE and how they fit into current team structure. Discover their lessons learned about how Selenium and open source has contributed to the success and maturity of HPE's own quality assurance and testing tools across the entire portfolio.

  • 45 Mins

    Building a Test Automation Framework is easy - there are so many resources / guides / blogs / etc. available to help you get started and help solve the issues you get along the journey.

    Teams already building 1000s of tests of various types - UI, web service-based, integration, unit, etc. is a proof of that.

    However, building a "good" Test Automation Framework is not very easy. There are a lot of principles and practices you need to use, in the right context, with a good set of skills required to make the Test Automation Framework maintainable, scalable and reusable.

    In this talk, we will focus on one of the critical aspects and patterns in building the Test Automation framework - Test Data!

    We will look at different data patterns as options and techniques how to create, manage, use, reuse Test Data in a way to keep the tests running in an reliable and deterministic way. We will also discuss what questions to ask, what things to think about in selecting your approach for Test Data!

    This discussion will be applicable for any type of Test Automation (web / mobile / desktop), but, we will focus primarily on UI automation frameworks, ex. using Selenium.


  • Liked Ankita Gupta

    Ankita Gupta / Jatin Makhija - Web Push Notification Automation Mystery Solved!

    45 Mins

    Push Notifications are the latest way of sending updates to our users. More and more Organisations are implementing Web Push Notifications along with emails and other notification systems.

    So the Big Question that arises is "How do we automate them?"

    We have come up with a library in various languages which can be integrated with your Automation suite and provide you everything you need about the notification triggered.

    You can easily then trigger and verify the push notification sent and ship out the product without worries :)

  • Liked Michal Vanek

    Michal Vanek / Filip Braun - Breaking down the barriers: Testing desktop apps with Selenium

    45 Mins

    Selenium was born for web-application testing. But have you ever thought it could be a great tool for testing Windows desktop apps too?

    Today, more and more desktop apps use a web-like approach to implement their UI. The methods vary from basic HTMLayout environment to complex designs in CEF (Chromium Embedded Framework). However traditional GUI automation tools seem to be a step behind or ignoring the trend completely. This situation calls for finding new ways of testing.

    In our talk we shall introduce to you a new way of utilizing Selenium for automated testing of desktop applications. No matter whether the HTML UI content is completely offline or loaded and updated dynamically, Selenium is able to access and navigate it just like in a web page. We’ll also show you how to build a small framework around it and plug it into your Continuous Integration process. All of this will be demonstrated using a real-life instance of Avast Antivirus for Windows.


  • Liked Sargis Sargsyan

    Sargis Sargsyan - Web Application Testing with Selenium

    90 Mins

    Creating automated tests for a web application can be challenging. During this talk we will discuss how to use the popular browser automation framework, Selenium, to create automated tests for web applications. We will examine using Selenium and Java to automate the web browser using Selenium WebDriver.  Also we will talk about the implementation of a simple, maintainable framework for testing a web application using Selenium.

  • Liked Uzi Eilon

    Uzi Eilon - Selenium Tests with Zero Code

    45 Mins

    More and more companies are using responsive web to solve their digital requirements when user can execute any transactions from any screen.

    The varieties of screen sizes, browsers, devices and OS required more UI and end-user testing.

    One of the method to run end-user testing is monkey tests (executed clicks on random locations on the screen).

    The DOM object tree contains a lot of data which can help us to generate tests.

    In this session, I will describe how to use the DOM data to automatically build an object repository and to generate tests without writing any code.

    One more aspect of the UI testing is the validations, in the session i will show how to execute visual validation from standard selenuim test.

    I will also show how to:

    • Use on test on Mobile and big screen browsers.
    • Execute Tests on different devices and operating system in parallel. 
    • Add real user condition and persona base testing to your current tests. 
    • Smart reporting 

    For more details see: zero-effort-automation


  • Liked Christina Thalayasingam

    Christina Thalayasingam - Distributed Testing and Test Reporting

    45 Mins

    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 comprehendible report.

    This talk would have a quick guide on how to use Selenium. With details on how to create html reports (with latest plug-in) which would give understanding test execution results for both technical and non technical people. The highlight of the talk would be on Selenium Grid which permits to run Selenium test cases on various operating systems and browsers from a specific hub. This would cover quick demonstrations on main browsers used in the industry such as Firefox, Chrome and Internet explorer. This would help for continuous integration.

  • Liked Dharmesh Vaya

    Dharmesh Vaya - Selenium + SoapUI + JMeter : A complete framework

    45 Mins

    This talk showcases how you can develop a framework in Java with all kinds of features like WebTesting with Selenium, Service Layer testing with SoapUI and Load Testing with JMeter - all packaged as a single testing solution. Above all, make use of open source libraries and get details HTML reports as well as Summary reports. This solution allows you to seamlessly integrate all your testing requirements under a single framework.


  • Liked Arnon Axelrod

    Arnon Axelrod - Introduction to ATDD and SpecFlow

    90 Mins

    ATDD, which stands for "Acceptance Test Driven Development" (also known as BDD -- "Behavior Driven Development" or SbE -- "Specification by Example"), is a pretty simple development methodology that utilizes automated acceptance tests for improving the collaboration between developers, testers and the domain experts. In addition to the immediate benefit of enhancing the customer satisfaction, it also ensures that the software is in delivery quality at any moment, provides an always-up-to-date product documentation (in the form of executable examples), and shortens the delivery cycle! In this talk I will explain the basic concepts of this method and its benefits, and provide some general guidelines on how to start adopting it. In addition, I will demonstrate how SpecFlow, which is a free, open-source, and the most popular tool for this purpose, can be used to facilitate the implementation of ATDD when working in .NET.

  • Liked Arnon Axelrod

    Arnon Axelrod - Introducing Test Automation Essentials

    90 Mins

    As a test automation consultant who builds the infrastructure for many test automation projects, I found myself writing some common code over and over again. At some point I decided to collect all of this common code into one open-source project called “Test Automation Essentials”, so both others and I can use it in more projects. The project is composed of few small C# libraries, so you can use only the parts you really need. These libraries range from very generic utilities (that may be useful even in non-test projects) to more specific CodedUI and Selenium utilities. In this session, I will show the main utilities in these libraries and talk about the process of creating it. Even if you are not developing your test code in C#, I am sure you will get some ideas that you can use in other languages and tools too! (For more information see Test Automation Essentials)

    Among the features of these libraries are:

    • A straight-forward API to handle frames/iframes and multiple browser windows, avoiding unneccesary StaleElementExceptions and the combersome need for SwitchTo().
    • A WaitForElement method that simpilfies the usage of explicit wait (i.e. WebDriverWait), and avoiding the the time-wasting implicit wait when using FindElements.
    • An automatic logging of every Click and SendKeys actions
    • A simple way to write reliable and reusable cleanup code
    • Many syntactic sugars (mainly in the form of Extension Methods) that makes the code more readable
  • Liked Soumyajit Basu

    Soumyajit Basu - Running your tests headless using Java + Selenium + PhantomJs Driver + TestNG

    20 Mins

    In this era of continuous software development and continuous delivery automation of a software plays a really big role in reducing time and effort for quality control and visually verifying individual functionalities. Automation plays a vital role in quickly pin pointing any break within the functionalities of the software system and also provides a quick report so that the software development team is aware what functionality in the system needs to be attended.

    The session would contain running an automation test headless by using the capability of phantomjs driver, running Selenium, implemented in Java and triggered by TestNG. People interested in learning automation can utilise the power of phantomjs driver to run tests quickly and get the desired test reports.

  • Liked Jatin Makhija

    Jatin Makhija / Ankita Gupta - Automation testing: An endangered species in Agile development

    45 Mins

    With the increased pace in adoption of agile methodology, testing is now becoming really complex in relation to the not so simple yet sweet demand of every project manager: "Why don’t you automate test cases while you test?"

    Having worked and counselled in product giants and more than 5 startups in India, we would like to throw some light on what fits the test automation use case. Is UI automation "the Only way to test efficiently?"

    The main issue with startups following Agile is “time crunch.” With multiple deploys a day and a fast paced development cycle, how does one find time to automate the product?

    In this session, we will be sharing some methods/tools/techniques which increase the overall test coverage and have worked well in the past for startup culture.

    A demo of some simple, useful and robust tools used for API, UI and Performance testing will also be given.