Is “FLAKINESS” hampering your test automation execution?? No Worries “AI (” is here.

Every time you see flaky scripts you keep wondering what should I do .Should I change my locator strategy or should I use “Thread.sleep(“wait a minute should i really use this.. A big pause in your mind.”)” . Trust me flaky scripts are worst nightmares.

So here I will be sharing my journey how I have used in appium automation scripts and how I have converted my flaky scripts to green colour .

Apart from this I will also be talking about how you can integrate this in your appium automation framework.And how you can train this AI plugin according to your need.

As a bonus those who hate flakiness I will be talking about some limitations of this and where not to use in your scripts.


Outline/Structure of the Talk

1. Problem Statement :2 mins

2. Implementation details and usage :6 mins

3. Challenges faced while implementing this and how to overcome that: 3 mins

4. What are the benefits - for App.(No more locators.): 2 min

5. Demo:5 mins

6. Q&A:2 mins

Learning Outcome

Attendees after leaving the session will know how we can use AI in our automation scripts and will also have a better understanding how to take their automation framework to next level.

Target Audience

Anyone working on appium automation.

Prerequisites for Attendees

Little bit of mobile automation knowledge.

schedule Submitted 1 year ago

Public Feedback

    • Virender Singh

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

      45 Mins

      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.

    • Tarun Narula

      Tarun Narula / sandeep yadav - What to do when tests fail

      45 Mins

      What to do when your tests fail? Read on...

      Functional automation is known to be flaky. A test passes sometimes & fail the other times. The failure can be attributed to multiple factors. We need to find out the root cause & then work towards fixing it for increasing automation tests reliability.

      In this talk, we will not only be discussing causes that lead to a test failure, but we will also talk about prevention, early detection & fixing these failures for good.

      We will discuss some common test failure causes such as locator changes, browser compatibility issues, coding bloopers etc

      You will get to know how you can get alerted early about any test failures. We will be discussing topics such as running tests on under development builds for getting early feedback, triggering slack/SMS/email notifications with failure details for immediate redressal and many others.

      You will get to know how to prevent failures by building robust locators, exception handling, making use of APIs for test data setup, building atomic tests, making use of waits, retrying your failed tests, rebuilding your Jenkins jobs automatically based upon a failure percentage threshold & so on.

      At the end of this talk, you will be confident on how to deal with your failing tests!!

    • Tarun Narula

      Tarun Narula / Surbhit Aggarwal - Reporting, Tracking & Analyzing Play store Reviews using automation

      20 Mins

      "Buggy App! Why don't you guys hire some good QA. Your app sucks."

      How many of you have written a negative play store review? Did you get a response back? In how much time? Was your query resolved?

      How would you like if you get a quick response to your comment (say within 15 mins). Your query is then tracked & you are provided a quick resolution. It would be fabulous. Right? Absolutely!

      By using some Google & JIRA API's we have automated logging of these reviews into JIRA. For each negative review a JIRA ticket is created with all the details such as Author's Comment, Name, Star rating, App version, Link to original review & Device details such as model number, manufacturer, OS version & RAM. These details help in analyzing the issue at hand.

      These reviews are then assigned to the concerned department who can take action on them & provide a resolution by corroborating the review details with internal system logs, verifying app functionality/crashes on that particular device type & reproducing the use case.

      These reviews are also attributed to a Review Category by the support team which help us find out areas of concern or improvements for the app. We also try & see if the issue has been reported through other sources as well such as in-app feedback channels/issues reported through mails/call to determine if the problem mentioned in the review is specific to a user or is being faced by other users too. All of this helps us in providing a quick resolution to the user.

      In this talk you will get to know all about how to build an ecosystem for app reviews by Reporting, Tracking & Analyzing them.

      As a bonus for being a terrific audience, You will get to know about how you can reply to the users review on the play store, Automagically!

    • Khyati Sehgal

      Khyati Sehgal / Shubhechchha Rai - Applying software craftsmanship to the evolving world of automation.

      45 Mins

      Software Craftsmanship is a practice of continuous development and helping others learn the craft. As the world is evolving towards the era of scripting language, we will be sharing our experience of how we have grown as a team of all QA with programming language background to the niche typescript world contributor.
      During this talk, we will be focussing on the shift of existing selenium to the actual implementation of Protractor test API. How and when to use a protractor? When to pick protractor as an automation tool for building a framework.

      By the end of the session, one will be able to understand how can we start working on end to end tests for any JavaScript and TypeScript based application using Protractor, Cucumber framework, and Page Object Model design pattern.

      We will also talk about configuration files, cucumber, typescript, promise handling in protractor.

    • Vishal Srivastava

      Vishal Srivastava / Khyati Sehgal - Setup Grid Infra with AWS Nodes & Autoscaling of AWS Nodes

      45 Mins

      When it comes to creating a project we always search for ideas that are open-source, easily scalable, ready to use.

      We as humans always have a tendency to grow and expand and when it comes to customizable infrastructure it's a big Yes.

      In this talk, we will be focussing on how we can save the cost of actual servers with easily scalable and manageable open-source software using an open-source tool - selenium grid. How we set up the nodes and hub altogether to make cross-browser, multi-platform execution takes place.

    • Khyati Sehgal

      Khyati Sehgal / Shubhechchha Rai - Expanding the aura of automation, when it comes to mobile.

      45 Mins

      This talk will answer the questions "Will you be able to run your automation scripts without connecting the USB cable to your device in a limited range?"

      If we have to ask ourselves where is the mobile and when is it required? So the answer would be its 'Everywhere'!!

      It's next to possible to imagine a day without looking at mobile or using apps for that matter- Google, Facebook, Whatsapp, etc.

      When it comes to using it so testing comes hand-in-hand with it. As we develop applications over a mobile device, be it any platform ios, Andriod and windows we shall also think about usability and end-to-end testing.

      In this talk, we will discuss how Appium worked as a bridge between devices and controllers.

    • Argneshu Gupta

      Argneshu Gupta - Get rid off Xpath in iOS Native App Automation

      Argneshu Gupta
      Argneshu Gupta
      QA Lead
      schedule 1 year ago
      Sold Out!
      45 Mins

      It is always challenging for us while dealing with Xpath and Css in iOS Mobile Automation.Even we can't think to do iOS native app mobile automation without them .

      So problems we need to face are

      • High Maintenance
      • High Execution Time
      • Complex installation
      • Additional Web server

      Do we have some solutions for this problem - The answer is Yes !!! -> KIF(Keep It Functional)

    • Prateek Sethi

      Prateek Sethi - Enhance Test Automation ROI with Docker based Selenium Environment

      Prateek Sethi
      Prateek Sethi
      QA Lead
      schedule 1 year ago
      Sold Out!
      90 Mins

      Quick Description :

      To support the continuously evolving software industry, DevOps and Agile practices have established themselves as a big helping hand. With ever-increasing large scale digital transformation projects, organizations realize that the only way to shorten the product development cycles is to automate the processes involved in the delivery pipeline.

      There are many tools and technologies to establish DevOps, but one of the most important ones is containerization, which gives flexibility in application packaging and automating a number of processes involved in the delivery pipeline. Containers have all the needed configurations and dependencies, for faster delivery of committed items to the customer. Docker is an open-source solution that makes it easier to create, deploy and run applications securely using containers. Therefore, quick feedback and testing applications with different environments can be achieved using Selenium with Docker.

      My Proposal :

      We can reduce the significant effort in provisioning, maintaining, running the Test Automation on different environment setup using, Docker with Test Automation. Some of the benefits are:

      Benefits of using Docker with Selenium:

      1. Test an application on multiple browsers and their different versions without installing them on multiple machines
      2. To test multiple application builds concurrently without updating the code for different environments
      3. To test your applications on multiple devices/OS/Browser combinations on a single machine.As Selenium within Docker will make it much quicker to test different environments by using the preconfigured containers.
      4. Also, I will cover topics like how to set up the Selenium multi-environment setup using Docker concepts like Compose file, etc.

      Best practices using Selenium with Docker

      1. Common Dos and Don'ts for this setup.
      2. How to avoid over maintenance of your Test Harness.
      3. Infrastructure setup

      Increase the power of your Test Automation Setup with Kubernates:

      How to handle Selenium grid-based dockerize nodes with Kubernates.

    • Sahib Babbar

      Sahib Babbar / Amrit Pal Singh - An extensible architecture design for cross-platforms/technologies to maximise product automation coverage

      20 Mins
      Case Study

      "Are you working for a product where you're struggling to automate the module(s) which you actually think can not be automated?"

      Considering you have a product running on different browsers, different OS and/or different platforms and for this, you have written automation scripts in different technologies. So, following are the pain points which we are going through: -

      • Automation candidates test-scripts can’t be automated

      • Lower automation coverage

      • Lesser auto-tests => more manual work.

      • Lessor auto-tests => more regression time.

      • No with-in sprint automation.

      • Urge for the quick solution to cater to cross-technology and cross-platform automation scripts.

      So, based on the above points, we came up with the automation architecture in such a way which serves the purpose in the following manner:

      • Able to add more automation coverage in another layer of testing.
      • Able to make a call from any platform (mobile or web) with any technology like Java, Swift, C#, etc.
      • More automation coverage = Lesser manual effort during regression or Smoke testing.

      Extensible Web Services Architecture Diagram

      Extensible Services Components:

      • Application: Responsibility: Application is the main Spring Boot Application and has the following responsibilities:
        • Triggers auto-configuration
        • Component scanning
      • Controllers: Responsibility: Controllers are the Rest Controllers has the following responsibilities:
        • For restful services creation for CRUD operations
        • All the requests and response from the external automation framework is being catered via controllers
      • Services: Responsibility: Services is the Business Logic layer where the CRUD operations can be performed based on the extended web-service calls. These operations can be performed on the product’s existing APIs and/or database using the data-access layer, below are the key responsibilities:
        • Business use-case based CRUD operations on the product database
        • Business use-case based CRUD operations on product existing web-services
        • Authentication of the product can be done internally via services based on credentials supplied from the controller params.
      • DAO: Responsibility: DAO is the Data Access Layer where the CRUD operations can be performed on the product database.

      Some of the actual problems and the solution:

      Problem#1: Alerts - Dismiss for Today flow

      • We have to wait for 24h to verify that the alerts section is displayed again

      • Cannot run the same test on both platforms (web/mobile)

      • Cannot run the same test twice in the same day

      Solution: Unsupress the suppressed dialogue box by calling the extensive API can resolve the problem so that on re-run the automation it would not fail.

      Problem#2: Tasks read status, once selecting a task, it is marked as read and cannot check it again.

      Solution: Unread the task with simple extensive API call with taskId as a parameter

      Implementation and usage

      We have the implementation done on a product, and is utilized by 4 external automation frameworks, as below:

      • API Automation Framework (Java)
      • Web Automation Framework (.Net)
      • Android Mobile Automation Framework (Java)
      • iOS Mobile Automation Framework (Swift)

      We can walk through with the implementation approach, as a

      • Producer: How we actually produce the HTTP response for a test scenario via API call requested by the consumers.
      • Consumer: How our consumers (external automation framework) can get the HTTP Response, they can use at their end to get the work done.

      Time break-up and the speakers:

      1. Introduction about the case-study 3min - Sahib
      2. Problem and solution 5min - Amrit
      3. Architecture diagram walk-through 5min - Sahib
      4. Demo 5min - Amrit (running the demo) / Sahib (explaining the demo)
      5. Q/A 2min (Both)