Next-Generation Test Automation & AI- Tools

VinayakTitti-Technical QA
9 min readApr 11, 2020

How about we start with the ace, master & market-leader of all the open-source test automation tools, I hope you guys already guessed. It’s none other than Selenium.

Selenium:
was created by Jason Huggins in 2004 and it comes in various flavors or variants, for example, Selenium IDE, Selenium RC, Selenium Webdriver and Selenium Grid. In spite of the fact that, there are numerous variations of Selenium, among every one of them Selenium Webdriver is the most famous and generally utilized in the testing industry because of its inbuilt libraries and capabilities.

In the testing world, there are different tools such as UFT, Protractor, WebdriverIO, Cypress, Katalon Studio, TestProject, and Silk Test but Selenium has become the most generally received & adopted in the testing industry, because of its open-source model and expanding development contrasted with other free & paid tools. Selenium has now situated itself as the standard framework when handling with UI automation.

Few features of Selenium are UI automation, cross-browser testing, multiple language support ex: Java, .net, Python, Javascript, etc., and cloud testing integration ex: Sauce Labs, Browserstack, etc., Even though many new tools are emerging every year, Selenium is still leading the market due to its huge support and community.

Cons:
* Even though Selenium is a popular and robust framework there are downsides as well, such as huge setup, synchronization issues, flaky tests.
* drivers compatibility/versioning issues.
* Need to build a framework from scratch

Selenium-4.0 comes with major fixes and upgrades (see picture below).

NodeJS Testing Tools: Protractor vs Webdriverio vs Nightwatch js
Evolution of Nodejs test automation frameworks such as Protractor, Webdriver.io, Nightwatch js, etc., These frameworks depend on WebdriverJS & W3C Webdriver JSON wire protocol for the simulation of UI events. Protractor is specially designed for angular apps with inbuilt compatibility & support for ng-element locator strategies for web automation. On the other side, Webdriver.io and Nightwatch js are robust automation frameworks compatible with any website irrespective of the development language, ex: Angular, React or Vue.js. But, the customization and maintenance of these tools are daunting due to the complexity of managing and installing selenium drivers for each platform and browsers.

Initially, Protractor was very popular and was doing good in the market due to its inbuilt compatibility for angular apps. But NightwatchJS and WebDriverIO newer versions comes with inbuilt compatibility for angular locator strategies too. Among the three, WebdriverIO is getting popular and better choice for its advanced features for web and mobile compatibility. Few addons/plugins such as Appium service, Applitools, Browserstack/Saucelabs, Testingbot service, etc.,

Cons:
* Protractor, Webdriverio & Nightwatch js are WebdriverJS & W3C Webdriver dependant & only supports Javascript language bindings.
* Customization and maintenance of these tools are not straight forward.
* Need to build a framework from scratch

Next-generation Tools: TestCafe vs Cypress vs Puppeteer
Presently, how about we switch our concentration towards the next-generation tools without the dependency of the W3C Webdriver/Selenium-Webdriver protocol. Here, we see three new players showing up at the scene. Their names? Cypress, Puppeteer, and TestCafe. These tools are open source start to finish testing systems written in JavaScript. Run partially in the browser and somewhat in Node.JS. Straightforwardly easy setup, auto-waiting mechanism, retry assertions, which wipes out a ton of the flakiness related with Selenium-based tests.

Cypress:
Quickly just backings Chrome as an initial browser, however, with version 4.0 released support for Firefox and edge on their guide. The cool thing about Cypress is that it’s really a complete framework for Unit, Integration and E2E testing. It contains Mocha, Chai, Sinon, and Chai-JQuery. Easy setup and can start writing tests in seconds, no complex driver setup or debugging when compared to Selenium.

  1. DOM: It runs the actual test code in the browser, giving access to real DOM elements
  2. Configuring: It doesn’t require installing or configuring servers, drivers, or any other dependencies
  3. Automatic waiting: Cypress waits for commands and assertions before moving on (no more async hell).
  4. Real-time reloads: Making changes to your test triggers the automatic reload of Cypress
  5. Debuggability using chrome dev-tools & Cypress inspector.
  6. Real-time records.
  7. Screenshots & Videos: View screenshots were taken automatically on failure, or videos of test suite when running from CLI.

TestCafe:
Really perceives any browser introduced on the objective gadget, which makes it exceptionally simple to get legitimate browser support. It’s additionally very simple to install, arrange, and begin.

  1. Browser handling: It can run tests simultaneously in any browser, and no, it doesn’t need any complex configuration (including mobile devices and cloud services).
  2. Headless testing: It can run tests in headless mode (Chrome, Firefox) without having to render DOM.
  3. Proxy server: TestCafe uses a proxy server. It injects scripts into the page, which can inspect and control elements on the page. This amazing tool also allows interaction with native alerts, file upload inputs, and iframes.
  4. DB fixtures: The ability to call out to parts of your Node server application directly from the test (setting up and clearing database fixtures, starting and stopping the test server).

If someone bored with the Selenium and wants to try different & promising tools then Cypress, Puppeteer, and TestCafe is the right choice. Among the three Cypress is the popular one for its growing community, detailed documentation, realtime dev-tool logs, debugging, Continous integration with Jenkins, CircleCI ., etc and easy configuration.

Puppeteer:
Puppeteer has shown up in the scene with another method for automating apps. Puppeteer is an open-source Node.js library created by Google with wide help for practically any activity in Google’s Chrome program. The fundamental thought is an API at the elevated level that permits us to automate activities in both of the Google programs, Chrome and Chromium. For those non-Chrome users, Mozilla is likewise executing Puppeteer in Firefox.

Cons:
* Cypress, Puppeteer, and TestCafe — Only supports Javascript language and got few downsides as well, such as
* Less support for cross-browser testing, native mobile apps compatibility, and cloud testing but got updates in the roadmap.
* Cypress — no cross-origin domain handling

Record-n-Playback Tools:

Traditional Tools: Selenium IDE/Selenium Builder/Sahi
In this way, obviously, numerous organizations saw an open door here. Traditional record-and-playback tools tagged along, however, experienced a portion of ambiguity from Selenium IDE and other tools. Record and playback tools were as yet delicate and broke with minor application changes. These tests aren’t secluded, which implies each experiment with comparative streams in it must be adjusted in all cases. This age of record-and-play immediately got an awful reputation and they were as yet not versatile.

Trending Tools: Katalon Studio vs TestProject vs Testerum
Utilizing code to compose and keep up automated tests can be a cumbersome and time taken process. These tools come with amicable UI which everybody can utilize with no programming information or skills. In these testing tools, everything is outwardly spoken to in the business language, so every individual from the undertaking can normally comprehend and follow each progression of the testing stage.

This next-generation record-n-playback tools comes with recorder option and offer testing condition without restrictions by coordinating different advancements, for example, Web, REST API, Mobile, Desktop, Mock outsider API, Relational Databases and the sky is the limit from there. Blend and mix to make total testing work processes!

Katalon Studio: Katalon Studio enhances Selenium and Appium with a complete test automation framework that helps you start testing in no time.

Setup Project:
* Provides project templates for organizing test cases, object repository, and keywords
* Fully supports Web, Android, iOS and API testing on all operating systems
* Easy to integrate with Jenkins, GIT, JIRA, and qTest with native plugins

Create Tests:
* Records actions on Web & Mobile to generates scripts with hundreds of built-in keywords
* Builds advanced scripts with IDE or customize steps with tabular interface easily
* Useful built-in object spy, code completion, in context reference, refactoring helper to make scripting more enjoyable

TestProject:
TestProject is the world’s first cloud-based, community-controlled test automation stage. TestProject makes it simpler for testers to carry out their responsibilities rapidly, and to team up utilizing famous open source systems (e.g., Selenium and Appium) to guarantee quality with speed. By cultivating a cooperative network that can meet up — as people and in groups.

  • 100% cloud-based user interface
  • Free add-ons provided directly by the community
  • Open SDK compatible with Selenium and Appium
  • Turnkey collaboration, with built-in test repository
  • Simple, shareable reports and real-time dashboards
  • Less configuration for mobile apps testing when compared to popular tool Appium.

Testerum:

  • Easy to use UI
  • No programming is required
  • End-to-End testing
  • Up-to-date Project Documentation
  • Manual & Automated tests together
Credits to EA automation

If someone is looking for easy setup, code-less automation, no programming skills, and less maintenance then these tools are highly recommended.

Cons:
* Katalon is a Groovy-based language tool and partially licensed.
* Handling advanced projects & browser native events with these tools is a bit challenging one.

AI-Integrated Tools: Mabl vs Testim.io vs TestCraft
So another interest emerges: an answer that can outfit a greater amount of the intensity of Selenium that:

Doesn’t require coding

Runs steadily

Adjusts to code changes in the application

Be that as it may, this age of test automation tools has gone past above 3 necessities, and joined numerous delighters like cross-program testing, advanced highlights like an email confirmation, and automated visual testing.

If someone is looking for AI-based test automation tools then Mabl, Testim.io, and TestCraft come into the picture. For companies with no QA resources or require less maintenance tools then these are the right choice. These AI-tools comes with recorder option, code-less automation, auto-healing page objects, auto-scheduler, CI-CD integration, and advanced reports.

Mabl Sample:

Cons:
* These tools are Licensed but worthy to give a try.
* Handling dynamic scenarios is tricky. ex: React apps
* Modal popup, File uploads, DragnDrop handling, etc.,
* No detailed logs
* Few functionalities don’t work
* Sometimes runtime execution is slower

Summary:

Based on the experience & analysis:
1. If someone wants a customized robust framework, supports multiple language bindings, custom setup and handling browser native events with ease then Selenium would be recommended.

2. If someone wants a customized robust framework but other than Selenium then Protractor, Webdriverio or Nightwatch js are recommended.

3. If someone wants a easy to setup, readable syntax, robust framework, dev-tools realtime debugging, auto-waits & mainly not dependant on W3C Webdriver/Selenium-Webdriver then Cypress, Testcafe or Puppetter comes into the picture.

4. If someone wants to migrate to test automation from manual, easy to start with less setup, no scripting, record-n-playback feature, code-less automation tools and Web, Mobile, API, CI-CD, & Desktop all integrated in one tool then Katalon Studio, Testproject or Testerum comes into the picture.

5. Finally, if someone wants to try AI-based, code-less automation tools and integrated with Web, Mobile, auto-healing locators, auto-waits, auto-scheduler in one tool then Mabl, Testim.io & TestCraft are recommeded.

Key takeaway:
These days many discussions popping out on Manual or Automation testing, — Manual vs Automation testing, but in realtime projects both play a key role in daily work life while testing the Application Under Test(AUT) and share equal value of importance.

Every year number of tools emerging in the market and comes with advanced features and addons. Although many automation tools are designed, developed and released, we can’t skip or ignore the manual testing. The best practice and approach is the combination of manual and automation testing, skills and techniques that will help to find the bugs, ease of testing and reduce the repeated tasks of human effort.

Manual testing does Critical analysis.

Automation testing simplifies the process & does Extraordinary things.

Happy Testing! 🤖

--

--

VinayakTitti-Technical QA

Extensive international experience having worked in UK and Asia (India & Malaysia) in a wide variety of tools- Selenium, Appium, Protractor & Cypress.