How to build an automation framework with Selenium : Patterns and practices

location_city Virtual Platform schedule Sep 11th 11:30 AM - 12:15 PM place Online Meeting 3 people 74 Interested

With an ever increasing no of businesses being conducted on web the testing need to write automated tests for the app's UI is something that can never be ignored. As you all know Selenium provides an API that enables us to do this quite effectively.

However, when tasked with setting up the automation framework, there are a lot of questions that arise in the minds of aspiring test developers regardless of what level they are in their career.


Some of such questions are:

  1. How does one actually go about the business of building a robust and effective automation framework on top of selenium?
  2. What are the elementary building blocks to include in the framework that an aspiring automation developer should know of?
  3. How should we model our tests? XUnit style vs BDD?
  4. Are there good practices, sensible design patterns and abstractions that we can follow in our code?
  5. What are some of the anti patterns/common mistakes we should avoid

A lot of literature, documentation and blogs exists on these topics on the web already.

However In this talk,

I would combine this existing knowledge and my years of experience in building automation frameworks and breakdown these elements and walk you through exactly the sort of decisions/considerations and practices that you can take while starting to implement or improve the UI automation for your team.

Hope to see you there!

 
 

Outline/Structure of the Talk

  1. Introduction (~2m)
  2. Building blocks of an automation framework (~20m)
    1. Considerations while choosing programming language/environment
    2. How to structure your project - Essentials to include.
    3. Considerations while choosing a test frameworks - XUnit style vs BDD?
    4. Considerations while choosing a CI Infrastructure - Jenkins/Gitlab?
    5. Selenium Grid - In house vs cloud infrastructure to run your tests on.
  3. Design patterns/sensible abstractions to follow in your code (~10m)
  4. Good selenium practices to follow (~5m)
  5. Avoid these automation anti patterns (~5m)
  6. Q&A (~3m)

Learning Outcome

The intent of this talk is to leave a bread crumb trail of approaches that you as a test developer can follow to either setup or improve your automation framework.

You should hopefully leave with the following takeaways:

  1. Understand the broad considerations you should take while starting/improving a UI automation framework
  2. Understand good framework development practices/design patterns to use and be aware of the anti patterns to avoid
  3. Know about the common tools/libs available to implement these concepts/blocks in

All the code samples used in the talk would be uploaded as a GitHub repo

I would include recommendations of libs/tools that you can use in Java/Kotlin (JVM) and Python language eco systems.

Target Audience

Testers, Developers

Prerequisites for Attendees

Participants should have a basic idea of what selenium is and have a beginner level knowledge of a programming language.

schedule Submitted 11 months ago

Public Feedback


    • Simon Stewart
      keyboard_arrow_down

      Simon Stewart - Selenium: State of the Union

      Simon Stewart
      Simon Stewart
      Project Lead
      The Selenium Project
      schedule 8 months ago
      Sold Out!
      45 Mins
      Keynote
      Intermediate

      What's the latest 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.

    • Gopinath Jayakumar
      keyboard_arrow_down

      Gopinath Jayakumar / Babu Narayanan Manickam - Expanding boundaries of WebDriver with DevTools Integration

      45 Mins
      Demonstration
      Beginner

      Problem Statement

      Though Selenium taking most of the stake in the UI test automation tool market comfortably, there were always challenges that were for selenium test automation engineers are handicapped with especially when dealing with modern JS technologies. For example,

      • dealing with DOM elements to solve the stale / loading / non-interactable elements,
      • handling full screenshots to know how the elements at the left, bottom, etc,
      • measuring the performance of request and response resources at different speeds,
      • monitoring the memory of the pages, controls, etc,
      • attaching to an existing browser for debugging the failed scripts and many more.

      These problems were largely resolved with the integration of selenium with devtool protocols. And that makes the selenium engineer's life merrier than before.

      Why this proposal can be different from others?

      1. Our solution can be executed as independent with chrome dev tools or with selenium. That gives the power back to the automation engineer to choose what and how to debug/run their tests.
      2. We used this solution for one of our largest enterprise customers and moved this solution to public repository this week (for this conference and beyond). With that said, we tested reasonably with more than 10,000+ test scripts and more than 1M tests.
      3. The present solution is completely (100%) packed with all Chrome Dev Tools API in Java and with that said, any Java Selenium automation engineer can bind in minutes for their existing code base with no additional dependencies.
      4. Finally, we love to present at the local home to start our selenium conference campaign. Where else?

      Solution:

      The present proposal largely connected with Chrome and Selenium in Java language. However, there is no limitation to expand the boundaries for other language bindings and browsers.

      Google Chrome, the most picked browser for browsing, which makes it the primary concentration for developers and testers. DevTools is one such boon for developers, testers especially the new aged test automation engineers. With that said, we built the following design pattern to allow chrome dev tools API to marry Selenium using debugger address / remote targets.

      Selenium Devtools

    • Shweta Sharma
      keyboard_arrow_down

      Shweta Sharma / Nikita Jain - Accessibility testing 101

      45 Mins
      Talk
      Beginner

      "This world is such a beautiful place to live in." If you can read the first sentence without any screen readers or assistance, you're privileged. As technologists, shouldn’t we be more empathetic towards differently-abled people and make all parts of our website accessible to them? In my humble opinion, the true power of technology can be identified when it reaches out to people of all kinds having different physical or psychological challenges. We not only legally bound to provide Accessibility but also it should be considered as our moral responsibility.

      As testers, we have a wonderful opportunity to contribute to Accessibility by ensuring that the site is accessible in many different ways. Although it is impossible to identify all the issues that exist around Accessibility in the world, we are lucky enough to still understand a majority of them. With this understanding, there have been many measures taken in order to make your site accessible. But, don’t forget - we are QA engineers. We got to ensure that the site is accessible as per the standards set by WCAG 2.0 (AA) by testing for accessibility using various tools and techniques.

    • Abhijeet Vaikar
      keyboard_arrow_down

      Abhijeet Vaikar - End-end test code as a first class citizen

      45 Mins
      Case Study
      Intermediate

      "All tests in today's automated regression run have been marked as Untested. What happened?"

      "No notifications are being sent for test runs on the channel"

      "I pulled latest code, and the framework dependency shows compilation error"

      "What does this new method in the framework do?"

      How often do you hear such things within your team?

      As Quality champions, we need to walk the talk. When we expect our developers to write quality code, write unit tests, build features without introducing bugs, the onus lies on us (as test engineers) to do the same. With almost every test engineering team writing automated tests to check functionality of their products and services, it becomes very important to ensure that the test automation framework and the test scripts are bug-free and follow good standards of software engineering.

      It cannot be stressed enough that test automation code should be as good as production code. In order to build production-quality test automation framework and scripts, a number of steps can be taken at:

      1. Code & System Level

      2. Process & People Level

      Our test engineering team went through a transition from having random & unexpected failing test runs to having greater confidence in the quality of the tests. Learn from this case study of our journey to ensure that end-end UI automated tests are built with quality in mind. We will also see demonstration of some of the use cases.

    • Rajdeep varma
      keyboard_arrow_down

      Rajdeep varma - The Joy Of Green Builds - Running Tests Smartly

      Rajdeep varma
      Rajdeep varma
      Automation Lead
      Bumble
      schedule 9 months ago
      Sold Out!
      45 Mins
      Talk
      Intermediate

      So you have got a few UI tests and they are running in parallel, great! However, life will not be so sweet once these 'a few' turns into 'a lot'. We grew from a few to 1500 UI tests (although not particularly proud of this number, there are situations and reasons)

      We started with a simple parallel distribution of tests 3 years ago. As test count increased failure count run time increased along with increased flaky tests. Mobile tests had their own challenges (eg. device dropping-off, random wi-fi issues, etc) To keep up with this, we created a queue and workers based solution which could distribute the tests more efficiently (https://github.com/badoo/parallel_cucumber). Over time, we made more improvements, in particular:

      • Segregation of failures based on infrastructure issues and re-queue the tests
      • If a device/emulator malfunction, rescue the tests to another device
      • Repeating a single test on 100s of the worker in parallel to detect flakiness
      • Repeat a test if a known network issue
      • Terminating the build early if more than a certain number of tests have failed
      • Health check of each device, before each test to ensure reliability
      • Muting a test if failure is known, and highlight outdated mutes if the related task is fixed

      In this talk, I will talk about the initial challenges with running UI tests in parallel (Selenium and Appium), how we approached the queue based solution and continuous improvement of this solution; finally, how attendees can use it at their workplace or create their own solution based on our learnings.

    • Virender Singh
      keyboard_arrow_down

      Virender Singh - Rise of Shadow DOM - Lets solve it through WebDriver

      45 Mins
      Demonstration
      Beginner

      Shadow DOM is kind of web standard that developers use to encapsulate their custom HTML code and style components so that no other global style components can override their code. It ensures that a component will work in any environment, even if other CSS or JavaScript is run on the page i.e. Shadow DOM hides away the complexity of the components from the rest of the page because it renders separately from main DOM.

      Selenium legacy selectors are not able to interact these custom elements under the shadow DOM so we need java script to interact with shadow DOM elements and we also require JavascriptExecutor interface for their execution.

      We will also talk about the WebdriverIO tool v5.5.0, which implicitly support Shadow DOM elements.

       
       
    • Syam Sasi
      keyboard_arrow_down

      Syam Sasi - When Ansible meets Selenium Grid - Story of building a stable local iOS simulator farm

      Syam Sasi
      Syam Sasi
      Senior Software Engineer
      Carousell
      schedule 10 months ago
      Sold Out!
      45 Mins
      Case Study
      Beginner

      There are dozens of matured docker based solutions available in the market for Android automation testing,

      but

      what about iOS testing?

      It’s hard to create and maintain the docker based solution for iOS testing since it demands the Xcode and for the optimal performance the system needs the Apple certified hardware.

      Combining Ansible with Selenium Grid yields a powerful combination because it allows us to set-up our grid and nodes in just a few seconds. In this talk I will demonstrate how to use simulators to build a reliable and scalable in-house iOS simulator lab using Ansible, Selenium Grid and Appium.

    • Rabimba Karanjai
      keyboard_arrow_down

      Rabimba Karanjai - Testing Web Mixed Reality Applications: What you need to know for VR and AR

      Rabimba Karanjai
      Rabimba Karanjai
      Researcher
      Mozilla
      schedule 9 months ago
      Sold Out!
      45 Mins
      Talk
      Intermediate

      There are already over 200 million users consuming VR applications by 2018. And with Google, Mozilla pushing WebXR capabilities in browser and vendors like BBC, Amnesty International, Universal, Disney, Lenskart and a lot of them adopting them to their websites, we will soon see a huge rise i demand for Web VR and Mixed Reality applications.

      But how do you test them in scale? How do you define "smooth" as opposed to just responsive?

      In this talk I will go over some key details about the WebXR specification. The work that Mozilla, Google and the W3C Immersive Web Group is doing. The differences between testing a regular web page and a Mixed Reality enabled one. What to watch for and how you can automate it.

    • Tomasz Konieczny
      keyboard_arrow_down

      Tomasz Konieczny - Serverless - how to speed up tests over 300 times and achieve continuous feedback?

      Tomasz Konieczny
      Tomasz Konieczny
      Senior QA Engineer
      Ro
      schedule 10 months ago
      Sold Out!
      45 Mins
      Talk
      Intermediate

      Automated tests can provide results faster and it’s possible to execute them more frequently than manual ones. That allows to test earlier in the development process, decrease overall time needed for tests and what is probably the most important it’s possible to release and deliver business value faster and more frequently.

      But what if we have more and more tests and even automated execution of them takes too much time - 10 minutes... 30 minutes... maybe even hours? Should we consider the ability to execute full tests set just a few times a day as something normal? Is adding more compute resources the only option to reduce the execution time? Or maybe there are too many high-level tests and some of them should be replaced by low-level ones according to tests pyramid? Is the tests pyramid still valid in the cloud world?

      During the presentation you will see how the serverless cloud services like AWS Lambda may be used to run tests in the highly parallelized environment that can speed up execution even hundreds of times.

    • Shi Ling Tai
      keyboard_arrow_down

      Shi Ling Tai - Start with the scariest feature - how to prioritise what to test

      Shi Ling Tai
      Shi Ling Tai
      CEO
      UI-licious
      schedule 10 months ago
      Sold Out!
      20 Mins
      Talk
      Beginner

      It can be intimidating for inexperienced teams embarking on their test automation journey for an existing code base. There is so much to test, and so many ways to test. I often see teams stuck with debating on where to start and what tools to use and best practices:

      "We should start from unit tests"

      "No, integration tests are better!"

      "Should we use tool A or tool B?"

      I see this play out all the time, and I've been there before. And the worst that could happen is decision paralysis and inaction.

      The bigger question really is "What to test?".

      My rule of thumb is "Start with the scariest code". I'll share with you my framework for evaluating the ROI of writing a test for a feature and prioritising what to test.

    • Diego Molina
      keyboard_arrow_down

      Diego Molina - Test Automation is not just coding

      Diego Molina
      Diego Molina
      Sr. Software Engineer
      Sauce Labs
      schedule 9 months ago
      Sold Out!
      45 Mins
      Talk
      Intermediate

      We learn more from our failures than our successes. I want to share one of my failure stories, where I learned that coding is not the most important task in Test Automation.

      A failure taught me that coding is not the most important task in Test Automation. I fixed a bug, added tests, and shipped it to production. After that, a bug report came in showing that the fix created a new bug. I felt bad, I did not understand how that happened. A hotfix solved the issue, but the root cause was not addressed: what did I miss?

      By taking a step back, I understood the situation, it all happened by overseeing basic concepts in testing (like understanding how the system works). The problem was that coding had more priority than creating a test plan. After this, I prioritized tasks better to avoid this situation to happen again.

      This talk shows that testing concepts are more important than ever, in a time where tools promise to do everything, we focus less on what and how to test, and more in using tools to test. It outlines how a test strategy can leverage a continuous testing setup. Finally, it shows that failing is ok, but failing again for the same reasons is not.

    • Pallavi Sharma
      keyboard_arrow_down

      Pallavi Sharma - Learn Selenium with JavaScript

      Pallavi Sharma
      Pallavi Sharma
      Soloprenuer
      5 Elements Learning
      schedule 10 months ago
      Sold Out!
      480 Mins
      Workshop
      Beginner

      Selenium is a popular open source test automation tool, so popular it has its own conference event which run for 3 whole days across continents and is attended by hundreds of enthusiastic testers, and people wanting to know more about testing and automation. In my little experience of coaching for last 7 years, i feel what english language has done for common man[those from non english speaking countries] in earning bread and butter and giving them an elite status, selenium has done for manual testers.

      Anyone and everyone wants to learn Selenium. The magic of selenium or the flexibility is that it can be learnt with your choice of programming languages. I have taught people Selenium with Java, C#, Python and Ruby largely in past these years. I wish to delve into the world of Javascript now and see what this has to offer to us. So this workshop is for those open minded souls out there who wish to pick up another language and learn, unlearn, relearn selenium with it.

    • Babu Narayanan Manickam
      keyboard_arrow_down

      Babu Narayanan Manickam - Deep Learning Based Selenium Test Failure-triage Classification Systems

      Babu Narayanan Manickam
      Babu Narayanan Manickam
      Director
      TestLeaf Software
      schedule 11 months ago
      Sold Out!
      45 Mins
      Talk
      Intermediate

      Problem Statement:

      While running thousands of automated test scripts on every nightly test schedule, we see a mixed test result of pass and failures. The problem begins when there is a heap of failed tests, we caught in the test-automation trap: unable to complete the test-failure triage from a preceding automated test run before the next testable build was released.

      Deep Learning Model:

      The classification was achieved by introducing Machine Learning in the initial months and followed by Deep Learning algorithms into our Selenium, Appium automation tests. Our major classification was based on the failed test cases: Script, Data, Environment, and Application Under Test and that internally had hundreds of sub-classifications.

      To overcome this problem, we started to build and train an AI using Deep Learning, which simulates a human to categorize the test case result suite. Based on the test result failure for each test, the AI model would predict an outcome through API, categorizes and prioritize on the scale of 0 to 1. Based on the prediction model, the algorithm takes appropriate response actions on those test cases that are failed like re-run test again or run for different capabilities. We kick-started this by gathering the historical data set of 1.6 million records, which was collected over a 12 months period, data including the behavior of the test case execution and the resulting suite.

      This Deep Learning-based algorithm has been provided the quality to break down the new defects based on its category, and a classification score is given on a scale of 0-1. We’ve also established a cutoff threshold based on its accuracy of improving, and to group the failed test cases based on its similarity. Classification of the test cases is done in high granularity for sophisticated analysis, and our statistical report states that the classification of the defects has been increased with 87% accuracy over a year. The system has been built based on the feedback adapting models, where for each right classification it will be rewarded and for the wrong, a penalty is given. So whenever receiving a penalty the system will automatically enhance itself for the next execution.

      The algorithm has a powerful model for detecting false-positive test results calculated using the snapshot comparisons, test steps count, script execution time and the log messages. Also, the model has been built with other features like – duplicate failure detection, re-try algorithms and defect logging API, etc.

      The entire classification system has been packaged and deployed in the cloud where it can be used as a REST service. The application has been built with its own reinforcement learning where it uses the classification score to enhance itself and this is programmed to perform in an inconclusive range.

      In sum, this deep learning solution can assist all Selenium testers to classify their test results in no-time and can assist to take next steps automatically and allow team could focus its efforts on new test failures.

      Link: https://github.com/testleaf-software/reinforced-selenium-test-execution

    • Naveen Khunteta
      keyboard_arrow_down

      Naveen Khunteta - Best Practices to implement the test automation framework starting from Design - To -> Infrastructure - To -> Execution.

      45 Mins
      Talk
      Intermediate

      Best Practices - How to get the best 'Return ON Investment' (ROI) from your Test Automation.

      This has been observed that, most of the test frameworks wont be able to survive due to lack of expertise, no maintenance, no best practices being followed, and finally your test automation will be dead after few months, and there is no "Return ON Investment" from this. This is the most common problem, most of the companies are struggling and finally back to square to the Manual testing.

      My proposal : HOW to leverage your test automation in terms of best practices, best ROI, and how to adopt best automation culture in your organisation.
      I strongly propose some of the important points/suggestions to achieve this in your Organisation/Team.
      1. Test Automation Practices:
      • Design Patterns (Web/Mobile/API)
      • What to Automate/Not to Automate
      2. Common Automation Frameworks at Org Level:
      • How to design Generic Utilities, Libraries and different Components, which can be suitable for all the teams in the same Org.
      • Best practices to design your Tests (Automation).
        • Common Design Patterns
        • Common application level and Page libraries
        • Best Practices to use Assertions in your Tests (How and What to write for assertions). Most of the people don't write proper assertions and this is making your test unreliable and no defects found during execution.
      3. Inclusion of API/Backend libraries in your UI test automation as an external Maven/Gradle Dependencies to avoid un-necessary tasks, some of the important points to be considered here:
      • User Creation from APIs (No need to automate user creation from web/app for all the test cases)
      • API tests are stabled most of the time
      • API calls takes lesser time as compared to web, hence include API calls in your UI/App framework to save time.
      • Less flaky test

      4. Best Code Review Process (Do not merge your code into Master without proper Code Review)

      • Implement PR (PULL Request) Process
      • Static Code Analysis using SonarQube, Cobertura, JACOCO etc..
      • Get the benefits of Best Test Automation Quality Matrices
      • Sometimes, Manual (Functional Tester) should review your code (Assertion, test steps and use cases) to get the best coverage
      5. Quality is A Team responsibility:
      • Developers, POs, Manual QEs and Automation engineers should be included to get an overview of test automation coverage.
      6. Maintenance of the Frameworks
      • After couple of months, it should not make your life miserable if you don't maintain your libraries and framework properly.
      • Do not use Hard Coded values, make it simple and Generic.
      7. Infrastructure Setup for Test Design and Test Execution:
      • Proper Browser - OS lab setup
      • Proper Mobile Labs setup with different Devices - IOT, iOS, Android, iPad, Tablets
      • Proper CI - CD common configuration using Jenkins, Dev Ops, AWS, Docker and Cloud setup
      • Handling multiple Docker nodes using Kubernates (use of Selenoid, GRID on Cloud)
    • Praveen Umanath
      keyboard_arrow_down

      Praveen Umanath - State-of-the-art test setups: How do the best of the best test?

      20 Mins
      Talk
      Intermediate

      The best engineering teams are releasing code hundreds of times in a day. This is supported by a test setup that is not just fast, but robust and accurate at the same time.

      We look at data (anonymized) from millions of tests running on BrowserStack, to figure out the very best test setups. We also analyze the testing behavior of these companies—how do they test, how frequently do they test, how many device-browser-OS combinations do they test on. Do they gain speed by running more parallels or leaner test setups?

      Finally, we see how these steps help these teams to test faster and release continuously, and how it ties-in to the larger engineering strategy.

    • Sameer Arora
      keyboard_arrow_down

      Sameer Arora - Triggering alerts on Slack along with screenshots in case of test case failure

      Sameer Arora
      Sameer Arora
      Senior Quality Engineer
      Dunzo
      schedule 11 months ago
      Sold Out!
      45 Mins
      Demonstration
      Beginner

      One of the biggest limitations with most of the frameworks in selenium is that we need to wait till the end to get the final test case report. Only then we can raise the alert that a particular functionality is broken. By then, it may be too late! In addition to this, in most of the frameworks, the HTML report generated is hosted on our company's private network and we need to connect to the VPN if we are outside the office to open the report and check the related screenshots to see which test case has failed and why.

      So, why not raise an alert as soon as the test case fails? And why not attach a screenshot along with that alert so that all the stakeholders can actually see what has failed in the application?

      In this session, we will learn a simple yet a really useful way of sending an alert along with the failed test case screenshot by integrating slack with selenium which will help us alert all the stakeholders as soon as an automated test case fails so that everyone can react to it immediately and the damage will be minimised.

    • Varadharajan Srinivasan
      Varadharajan Srinivasan
      Consultant
      Jocata
      schedule 9 months ago
      Sold Out!
      45 Mins
      Talk
      Intermediate

      We are now living in the age of Big Data. What makes Big Data so special is its ability to help the common man process petabytes of data to build innovative solutions. Cloud has played a pivotal role in building this data economy by making infrastructure more cost effective and enabling easy scalability.

      Today, the abundance of data helps business make intelligent decisions through business process automation. Data drives all our digital interactions, starting from products that we see on our Amazon home page, to our Netflix recommendations, to the advertisement on Google search results, to even the Friends that we get connected to on Facebook. All these systems are powered by data that is collected from the various system, cleaned, transformed and stored into Big Data solutions. Testing of these data systems have become very complex and requires a new approach. This paper highlights various aspects of Big Data Testing including:

      • Complexity in testing Big Data systems

      • Cloud based tools for testing Big Data cross various stages

      • Simplification of test processes and visualization through dashboards

      • Testing Big Data in the Agile/ DevOps

    • Lavanya Mohan
      keyboard_arrow_down

      Lavanya Mohan / Priyank Shah - Analytics - Insights from unsaid customer feedback

      45 Mins
      Talk
      Beginner

      Are we investing our efforts in building things that actually matter? Is the new feature that we rolled out adding value to the customer? Is the new release doing better than the previous releases? How do we get answers to these questions and more? Analytics is our answer!

      Analytics information helps not just the business teams but also QAs, Devs, PMs and other members of the project in multiple different ways. It could help us uncover some critical issues, it could help us understand customer sentiments better, it could help us get a broader picture of how the customer actually uses the product and whether it was how we intended it to be, it can help us get ideas about what small or large changes the customers are looking for without them having to explicitly tell us.

      Analytics is important information to us. So, it is also critical that the information is correct. That means analytics information produced also needs to be tested and validated.

      This talk is intended to understand the testing of analytics events and why they are important to us.

      In this talk, we will cover our experience of how analytics information helped us understand our customers better and invest our time in building the right things. We will also cover how we validated it to ensure that the data that we were seeing was actually correct. In addition to this, we will also briefly cover some details about other sources of information that can be looked at if we are working in a mobile world.

      Please note: We’re open to tune the proposal based on feedback

    • Smita Mishra
      keyboard_arrow_down

      Smita Mishra - Vision Boards - Project your goals

      Smita Mishra
      Smita Mishra
      CEO
      QAZone Infosystems
      schedule 9 months ago
      Sold Out!
      20 Mins
      Talk
      Intermediate

      How do teams share their understanding on the common goals? It is either audio or visual. Recording each talk and storing them ( tagged) is not the most effective way to share common knowledge. Sketching is not new to agile teams. We are taking it a step forward in the form of Vision Boards. Vision Board – is creative visualization of your goals. While our focus in this talk, remains on- how teams could use the board, Individuals use these in order to make their life goals into reality. There are pictures or sketches of what they want – all pasted together on one board – so they constantly remind themselves of their ultimate goals in the bigger scheme of things. These goals may not be achievable with one task. They may need a series of tasks which do not directly seem to be connected with the goal. But these visualizations captured - are very good indicators of what success means to one.

      We used Vision Boards to visualize our customer experience, their reactions and expected patterns of use for our application. This board single handedly kept all our teams aligned and as many changes happened – the teams knew their true north when they were discussing how to design the screens and which features to build on (priority). Our already agile teams were constantly looking at the short term goals of prioritized features, but vision board helped them reduce chaos and clutter and saved lot of time on understanding the overall requirement - it also served as the basis for User Stories.

    • Krishnan Mahadevan
      keyboard_arrow_down

      Krishnan Mahadevan - My experiments with Grid

      45 Mins
      Tutorial
      Intermediate

      Everyone starts off with a simple grid setup which involves a hub and one or more nodes.

      This traditional setup is a good start but the moment one starts to get serious with the selenium grid and decide to house their own selenium grid for their local executions, that is when issues start.

      My experiences with the Selenium grid in the past couple of years has led me to get introduced some of the most prevalent problems with maintaining an in-house selenium grid.

      • Nodes get unhooked randomly due to network glitches.
      • Nodes introduce false failures due to memory leaks.
      • Selenium Grid running out of capacity.
      • Nodes require OS upgrades/patches etc.
      • Needing to deal with auto upgrades by browsers (especially chrome and firefox)

      Some of these issues I managed to fix by building a "Self Healing" Grid wherein the nodes automatically get restarted after they have serviced "n" tests. But that still didn’t solve many of these other problems.

      That was when I felt, what if there was an on-demand selenium grid.

      What if the Grid could do the following ?

      • The Grid auto scales itself in terms of the nodes based on the current load.
      • The Grid does not require a lot of infrastructure to support it.
      • The Grid can plug itself into some of the cloud providers or leverage a solution such as Docker so that the nodes can be spun and shutdown at will.

      That was how the idea of "Just Ask" an on-demand grid was born.

      Just-Ask is an on-demand grid. It has no nodes attached to it.

      It’s designed to spin off nodes on demand, run test against the newly spun off node and after test runs to completion, clean-up the node as well. The node can be backed by anything. It could be Docker (or) it could be a VM running on any of the popular clouds.

      The session aspires to walk the audience through with my experiments with the selenium grid, my learnings on the selenium grid internals and how I used all of that knowledge to build my own On Demand Selenium Grid. What better avenue to share these learnings than a Selenium Conference.

      The session will introduce the audience to the grid internals and their concepts such as

      • What is a Selenium Remote Proxy ? What is it used for? What can you do with it?
      • What is a Hub (or) Node level Servlet ? When would you need one ?
      • All of this followed by a quick demo on "Just Ask", the on-demand grid that I have built and open sourced here: https://github.com/rationaleEmotions/just-ask