Select Page

Category Selected: Latest Post

186 results Found


People also read

Accessibility Testing

ANDI Accessibility Testing Tool Tutorial

Accessibility Testing

Screen Reader Accessibility Testing Tools

AI Testing

AI Assistant in Chrome Devtools: Guide for Testers

Talk to our Experts

Amazing clients who
trust us


poloatto
ABB
polaris
ooredo
stryker
mobility
The Selenium Grid Setup to Execute Tests on a Remote Machine

The Selenium Grid Setup to Execute Tests on a Remote Machine

Selenium Grid is a concept that was introduced by the Selenium team to run Tests in remote machines by executing the tests across different Operating Systems, browsers, machines. As one of the best software QA companies, we always focus on ways to make our testing process more efficient. Selenium Grid is a great option to do just that as it helps to reduce the test execution time. So in this blog article, you will be learning about the Selenium Grid setup and tell you how you can use it.

Selenium Grid is an enhancement to the Selenium Web driver. The grid uses the Web driver’s code for executing the test scripts. The Grid contains a single Hub and one or more nodes.

We use Selenium Grid to run all the test scripts, present in the framework on a remote computer. In Selenium Grid, there are two types of systems, the first is HUB, and the other is a NODE.

Firstly, we will look into what a HUB is, and a few important points you should know.

Hub:
  • It is a centralized place to which all the other nodes are connected.
  • There will be only one Hub.
  • Tests will be loaded and executed in the Hub.

Now, let’s take a few important points about NODE.

NODE:
  • A node is a device that has been connected with the Hub. A node may be a Mobile, Tablet, Laptop, or Computer with different Operating Systems and browsers.
  • The number of nodes will vary depending upon the testing requirements.
  • Execution of tests will be displayed in the nodes.

Now that we have seen the basics, let’s explore the 3 main steps to use Selenium Grid, provided you have Selenium in your system. If you don’t, you can visit their official website to download the .jar file and place it in your desired drive before you proceed.

1) Start the Hub

2) Start the Node

3) Execute our Framework using remote WebDriver

1. Start the HUB

Open the command prompt on the exact location where you have kept the selenium-server jar file and type the following command:-

java -jar ./selenium-server-standalone-3.141.59.jar -role hub

It should show the following message-

Nodes should register to http://192.168.1.2:4444/grid/register/
Clients should connect to http://192.168.1.2:4444/wd/hub

Selenium Grid hub is up and running

Selenium Grid Running

The default port number for the HUB is 4444.

2. Start the NODE

Since the hub is up and running now, copy the Selenium-server jar file and paste it into the desired drive of the remote computer where you want to run the test script. Once again open the command prompt on the exact location where you have that selenium-server jar file and type the following command.

java -jar ./selenium-server-standalone-3.141.59.jar -role node –hub

http://192.168.1.2:4444/

Note: Copy the hub URL from your HUB system.

Selenium Jar file command

It should show the following message-

Registering the node to the hub: http://192.168.1.2:4444/grid/register

Now the node is registered to the hub and ready to use.

Registering Node into the hub

Also, you will get the following message on your HUB system.

Registered a node http://192.168.1.5:25409

Hub Register - Selenium Grid Setup

The default port no for a node is 25409.

3. Execute the Framework using the remote WebDriver

Now that both the main components of the Selenium Grid Setup are ready, it is time to execute the test scripts on a remote computer. We have to use the remote web driver class in order to specify which browser should be opened on the remote computer. We should use the desired capability class.

package Blog;
 import org.openqa.selenium.WebDriver;
 import org.openqa.selenium.remote.DesiredCapabilities;
 import org.openqa.selenium.remote.RemoteWebDriver;
 import org.testng.annotations.*;
 public class Blog_Demo
 {
     WebDriver driver;
     @BeforeMethod
     @Parameters("browser")
     public void Beforemethod(@Optional("chrome") String browserName)
     {
        
if(browserName.equalsIgnoreCase("firefox")) {
             System.setProperty("webdriver.gecko.driver","C:\\Users\\HP\\Desktop\\office\\geckodriver.exe");
             driver= new RemoteWebDriver(DesiredCapabilities.firefox()); }
         else if(browserName.equalsIgnoreCase("chrome")) {
             System.setProperty("webdriver.chrome.driver","C:\\Users\\HP\\Desktop\\office\\chromedriver.exe");
             driver= new RemoteWebDriver(DesiredCapabilities.chrome()); }
       
driver.manage().window().maximize();
        
driver.get("https://codoid.com/"); }
     @Test
     public void Sample1()
     {
         System.out.println(driver.getTitle());
     }
     @AfterMethod
     public void Aftermethod()
     {
         driver.close();
     }
 }

For executing test scripts in the NODE system, simply execute the test script from the HUB system.

Once you run the script in the Hub System, you will get the following message in the hub system.

Hub System message - Selenium Grid Setup

You will get the following message in the node.

Selenium Node register - Selenium Grid setup

If at all you want to check whether the server is running or not, you can type the following command in the browser.

http://localhost:4444/grid/console

Conclusion

We hope you have found this Selenium Grid Setup blog of ours informative. Selenium Grid is a very resourceful tool that every tester has to know about. This is a very basic blog that introduces you to Selenium Grid. Explore our other blogs to learn more about it as it can be instrumental in reducing a lot of batch execution time. Its cross-platform capabilities have always come in handy to deliver the best agile test automation services.

A Fundamental iOS App Testing Tutorial to Get Started with

A Fundamental iOS App Testing Tutorial to Get Started with

Millions of people in India, and billions of people all over the world use iPhones. Apple is very stringent in the way they make their products. They have been great at building quality state-of-the-art hardware that is complemented well by their software. Privacy and security are the other features that set Apple products apart. Apple’s computers are powered by macOS, and their iPhones and iPads are powered by iOS. In this iOS App Testing Tutorial, we will be taking an overview of the testing process for an iOS app.

The Necessity:

Let’s start this iOS App Testing Tutorial by reviewing the specific necessities for testing. iOS was released on June 29, 2007, and unlike Android, Apple does not allow iOS to be installed on non-Apple devices. Basically, iOS and iOS apps may only be loaded on Apple devices. Apart from that, the approval process to get your app on the App Store is no easy task. Even the smallest error can get your app rejected. So there is absolutely no room for errors and as a leading mobile app testing services provider, we have been able to ensure that the apps we tested get released without any issues. So if you are developing an iOS app, then it must work with all iOS versions and devices. Now, let us see a sample diagrammatic representation of the features that need to be tested in iOS.

iOS Testing Tutorial

The Focus Points

The diagram is pretty much self-explanatory and we can clearly see the aspects we have to test under each section like UI, Functionality, and so on. Now let’s take a look at a few aspects you should primarily focus on.

Application crash:

As stated earlier, even the smallest of errors can make it hard to get your app approved for the app store. So make sure to avoid one of the most aggravating issues a user might face, application crashes. Flaws and memory leaks in the software are some of the major reasons why an application might crash when it comes to iOS.

Memory leaks:

As the name suggests, there will be a leak in the memory that causes the application to crash. But how does this happen? The memory leak here refers to the data reserved in the system which are no longer used by the software. This might make the application crash abruptly. So memory leaks should be considered as bugs that should be fixed immediately.

Security vulnerabilities:

Security and privacy are a few of the hallmark features of Apple. So you can expect Apple to strictly review your application for such vulnerabilities. Even the smallest of deviations anywhere can drastically impact the chances of your app getting approved. So make sure that you develop your app in a way that the app doesn’t ask for any unnecessary permissions. If the demand is unavoidable, then you have to clearly establish the reason behind your request.

A Finished App:

Apart from the core functionalities, we have to check for broken links and either remove or fix them as needed. There should also be no placeholder content when you send your app for review. Everything should be finalized and tested before you send it through. For example, if your app requires the user to sign in, provide a valid demo account for them to use. Likewise, if at all your app requires any special configurations to function, include all the specifics. If any of the features require an environment that is not easy to replicate, then you should provide a demo video to guide them. Your app might even require a specific accessory or hardware for it to function well. So it is mandatory to send that hardware or accessory. Last, but not least, ensure that your contact information is complete and up-to-date.

The Brand Image:

We are all aware of the quality of Apple’s UI. They will not approve any app that has a poorly designed UI as it will not sit well with the brand image that they have created. So if your app is not properly formatted to match iOS, then you can kiss your chances of getting goodbye. So make sure you have attached screenshots that are accurate and not just edited versions that are misleading. If Apple finds your app to be misleading or very minimal lasting value, then they will not approve your app.

Application incompatibilities:

The features might be running perfectly in the current iOS version, but once the version gets upgraded, the features may take extra computing time or execution time. Or it might work well on one iOS device or version and not work on another. So compatibility is also an area of concern provided by the high standards set by Apple.

There are two ways to go about when it comes to testing software, manual testing, and automation testing. Now in this iOS App Testing Tutorial, let us explore the various types of manual tests you can use and the automation tools that will come in handy during the process.

 

MANUAL TESTING:

There might be an ongoing uncertainty among many as to why we still opt to test a feature manually when automation is possible. Though manual software testing is the most basic of all testing methods, it aids in the discovery of critical problems in software applications.

Apart from that, before any new application can be automated, it must first be manually tested. Though manual software testing takes more time and effort, it is required to determine whether automation is possible or not. Manual testing concepts do not necessitate familiarity with any testing tool. One of the common software fundamentals says that “100% of automation is not possible”. So this mandates manual testing.

Some of the Manual testing types that are vigorously used for testing are:

Exploratory testing:

Exploratory testing is executed without any test script or formal test plan. So exploratory testing is usually carried out during the early stages of development. It is used to report bugs, but usually, it will be used to identify potential bugs, (i.e.), the specific behavior of a feature might not be identified. Since it doesn’t include any formal test plan, the requirement for a particular feature can be missed, and that might lead to a serious issue.

Concept testing:

Concept testing is more like a research done by the team. It involves asking questions to the customers about the concepts and ideas of the product or service before launching it. To put it in simple words, the reaction of the user is taken into account before launching the application.

Usability testing:

Usability testing is the process of evaluating a product or service by putting it through its paces with real-world consumers. During the test, participants will often attempt to accomplish standard activities while observers observe, listen, and take notes. The purpose of this test is to discover any usability issues. Following this, we will be able to collect qualitative and quantitative data to establish the level of satisfaction with the product among the participants.

Beta testing:

Beta testing is a type of user acceptance testing in which a product team distributes a nearly finished product to a set of target users in order to assess its performance in the real world.

A/B testing:

A/B testing, also known as split testing, is a randomly selected experimentation process in which two or more versions of a variable (web page, page element, etc.) are shown to different segments of website visitors at the same time to see which version has the greatest impact and drives the most business metrics.

 

AUTOMATED TESTING:

Next up in our iOS App Testing Tutorial, we will be looking at the automation tools you can use to make your testing better. But before getting into the details of it, we must understand why we use automated testing. Automated testing for iOS applications has numerous advantages. For starters, automated test scripts save time and effort by allowing one test to run tests simultaneously on several devices. It allows you to quickly identify bugs and performance issues.

Other advantages of automated testing:

  • Automated testing may be done on a variety of devices, which saves time.
  • SDKs (Software development Kit) can be targeted via automated testing. You can test on several SDK versions.
  • Automated testing increases testing productivity while lowering software development costs.
  • Many open-source testing frameworks for iOS offer automated testing.

There are many automation tools in the market. Some of the automation testing tools that we have commonly used are,

Appium:

Appium is popular because of its adaptability and usability on both Android and iOS devices. Appium uses the JSONWireProtocol to interact with iOS devices.

XCTest/XCUITest:

Two important test automation frameworks for iOS app testing are XCTest and XCUITest. XCTest provides a framework for UI testing as well as the ability to construct tests for components at any level. XCUITest is typically used for functional testing, automation tests of common processes, demo sequences, or customer view behavior.

Detox:

Detox is an automation framework that is used for testing mobile apps. The biggest advantage here is that it is cross-platform for both Android and iOS devices. But the biggest disadvantage is that it can’t be used to test it on real iOS devices.

Calabash:

It is another framework that works perfectly for both Android and iOS devices. The major difference that sets Calabash apart from the other frameworks is that tests are written in Cucumber, which makes the features and the test case easy to read.

Earlgrey:

EarlGrey 2.0(Latest version) combines EarlGrey 1.0 and XCUITest to create a native iOS UI automation test framework. It allows the user to write a clear, concise test that enables the process interaction with the XCUITest.

 

CONCLUSION:

The ultimate aim for us as a leading QA company or any tester for that matter is to reduce the bugs as much as possible when it is delivered to the customer. The important decision for a tester to make is which testing should be made and which framework to be used at each level of development so that the potential bugs can be fixed at the earliest stages possible. So if we were to keep these aspects along with what we have discussed in this iOS App Testing Tutorial in mind, then getting your app approved by the App Store will become a walk in the park.

An Overview of Gecko Driver & Marionette Driver

An Overview of Gecko Driver & Marionette Driver

Gecko is a browser engine for Firefox that has been in usage since the year 1998. But Gecko was initially developed and maintained by a company called ‘America Online’. In the year 2003, Mozilla Corporation took control of Gecko development. Since then, the Firefox browser has improved a lot over the years. Firefox Quantum was released back in October of 2016 with multiple performance and rendering-related improvements. Quantum is an improvement project for the Gecko engine. Being a leading software testing company, we maintain automated test suites for multiple web products. You should be familiar with how Selenium WebDriver works for different browsers in order to achieve multi-browser execution. So in this blog article, you will learn a few important details about the Gecko Driver. (A proxy between WebDriver & Marionette Driver)

Marionette Driver

Marionette allows you to automate Gecko-based browsers. Marionette has namely two components, they are the Client and the Server. The server is bundled in the Firefox browser, and the client is your test code. The Marionette client driver is available in Python. Now, let’s take a look at the codes you will need to use the Marionette Driver.

How to use Marionette Driver

1. Install the Marionette client driver by using the below code

pip install marionette_driver

2. Use the below code to Run the Marionette enabled Firefox build

./mach run -marionette

3. Once you execute the below test code, it will launch Firefox browser

from marionette_driver.marionette import Marionette
 
client = Marionette('127.0.0.1', port=2828)
 
client.start_session()

Gecko Driver

The Gecko Driver is written in Rust programming language. Here, the Gecko driver is responsible to translate WebDriver commands and redirect them to the Marionette driver.

System.setProperty("webdriver.gecko.driver", "drivers/geckodriver");
    	
WebDriver driver = new FirefoxDriver();
    	
driver.get("https://google.com");

By default, Marionette is enabled when you launch Firefox using WebDriver. You can even see Marionette-related logs during the execution.

You do have the option to turn off Marionette using the System property. However, it is not supported with the latest version of Firefox.

System.setProperty("webdriver.firefox.marionette", "false");

It is worth mentioning that Selenium has started supporting the Gecko driver from v3.0.0.

Conclusion

We, as an automation testing company, run automation test scripts across multiple browsers. As stated earlier, Selenium WebDriver is an important tool that will help you achieve multi-browser testing. To achieve that, you should know how each implementation of the WebDriver works on different browsers. When you know the enhancement details of a browser and its driver, you will be in a position to plan and accommodate the changes in the test automation framework well ahead of time without any hassle.

The Must-Know Basics of Selenium for Automation Testing

The Must-Know Basics of Selenium for Automation Testing

Selenium is a web browser automation testing library that has evolved to become one of the most popular automation testing tools over the years all thanks to the various tools and libraries associated with it. If you are an experienced automation tester, you will be very familiar with Selenium and you can refer to our more advanced blog articles around Selenium. On the other hand, if you are a novice automation tester who isn’t very familiar with Selenium, we highly recommend you to read this blog and get to know the basics of Selenium. It is not a how-to guide, rather, it will help you understand how Selenium works. To become a master of any tool, it is always pivotal to understand how it works first. Let’s begin from Selenium RC and move forward to where we are now and help you understand how much Selenium has evolved.

Selenium RC

Selenium remote control (RC) was the first version of Selenium that is no longer in use. It had all the features we have in Selenium WebDriver except for the way it interacts with the browser & the webpage.

How did the Selenium RC work?

  • The Client code (Test Code) sends a Selenese command to the Selenium server using an HTTP request.
  • The server receives and finds the suitable Selenium-Core JavaScript command for the request.
  • Then the server interprets and injects a JavaScript snippet into the browser’s built-in JavaScript interpreter.

Selenium Remote Control

There were a few major downsides to Selenium remote control as well,

Disadvantages
  • It cannot mimic how a user performs actions on a browser since the server injects JavaScripts and manipulates the DOM. Let’s take the Chrome browser as an example. Chrome browser has pointer-events to listen to the user inputs from a touch screen, pen, or mouse. Here, the pointer-events are APIs of Chrome. Selenium RC will only manipulate the DOM using JavaScript and not access the browser API to execute the commands. That’s why Selenium RC does not have the capacity to emulate user actions.
  • The full strength of the Object-Oriented Programming was not adopted to Selenium RC.

Selenium WebDriver

WebDriver was developed by Simon Stewart at ThoughtWorks. WebDriver uses the Browser API instead of injecting JavaScript to perform the required actions. So Selenium and WebDriver were merged and released as Selenium 2.0. Local and Remote are two methods that are also few basics of Selenium that one must know. So let’s take a look at that now.

Local

Selenium WebDriver has drivers for each browser as every browser has its own engine. So the API implementation differs. When you want to automate a browser in the same machine where the test code is located, you wouldn’t need the Selenium Remote Server. Instead, your test code has to know where the browser driver is located. Once the driver location has been identified, it will start sending commands to the driver and the driver will begin interacting with the browser.

Selenium Webdriver local- Basics of Selenium

Remote

But at the same time, if you want to execute your test code on a Windows machine and launch Safari browser in Mac. You can start the Selenium Remote server in Mac and start the script execution from Windows. In this scenario, the test code and the browser are not in the same location. That’s why the remote server is coming into the picture.

Selenium Webdriver Remote

Selenium IDE

Selenium IDE is widely used to record test scripts. The Selenium IDE Legacy version is supported only on Firefox. The newer version of Selenium IDE does have plugins for Chrome & Firefox. Now let’s take a look at a few use cases and understand where Selenium IDE can be used.

Usage

  • If you are a beginner, you can use Selenium IDE to learn the Selenium commands.
  • You can also use it to quickly check whether you are able to automate a webpage or not without writing any snippets.

Selenium Grid

If you have multiple machines for test execution, you would have to start the remote server on all the machines. In addition to that, your test code needs to take the overhead to orchestrate IPs and Port numbers of all remote machines. This is where Selenium Grid comes into play and becomes one of the must-know basics of Selenium as it allows you to have a hub to which the nodes can be attached. Now your test code has to just send the commands to the hub and the hub will redirect the command to the appropriate nodes.

Basically, Hub takes the overhead of managing nodes and routing the command requests. So the Selenium Grid makes it easy to achieve parallel execution.

Selenium 4

If you have been following the topic, you will know that Selenium 4 has brought some notable features to the table. Selenium WebDriver has 60 plus endpoints to send and receive commands using the HTTP Protocol. So the Selenium client and server communicate with each other using the HTTP Protocol. But in order to implement the Chrome DevTools Protocol, Selenium 4 needs the Bi-directional protocol.

We, as one of the leading software test automation services providers, have used the browser console listener for a project. We wanted to capture all the JavaScript errors which are triggered on the browser. Yes, the Selenium 3 server does have the capability to receive the requests and send the responses. But when the browser sends a series of messages to the client via the server, the HTTP protocol isn’t enough to handle it. If you’re interested in finding out how we handled the bidirectional protocol, read our blog where to explain everything step-by-step.

Selenium 4 - Basics of Selenium

Conclusion

As stated earlier, this is not a how-to guide, and we hope that our approach of covering the basics of Selenium helped you get a crystal clear understanding of Selenium works. If you like what you have read, make sure to follow us on social media to get all the latest blog updates that happen over the week. QA Automation Testing Services is our core and in order to deliver the best service to our clients, we are on a path of continuous development. We have an R&D team to explore the new tool features, techniques, and so on. So it goes without saying that more informative articles are on the way.

The 7 Best Open Source Test Automation Frameworks

The 7 Best Open Source Test Automation Frameworks

Nowadays, we have many open-source test automation frameworks to choose from that we have created this list of the top 7 open-source test automation frameworks to use. But back in the day, test automation frameworks had to be developed using commercial test automation tools. Before the emergence of such open-source automation testing tools, many proprietary tools had the below-listed limitations.

  • Only a few limited programming/scripting languages were supported.
  • The scripts could be executed only on IE browsers.
  • Separate licenses had to be purchased for script executions.
  • Only limited Reporting Features were available.
  • Third-party test management tools integration was not possible.
  • There was a lack of documentation.
  • The annual tool support fee was huge.

Even now, some of the commercial’s test automation tools have these limitations. In the earlier days, the Excel-driven test automation framework was very popular. The claim was that testers didn’t have to open the tool to write the automated test scripts. Stakeholders thought that filling the excel sheet to create an automated script was simple and a game-changer. So if any change was required in the framework, it would be done by the test automation architect. That is when the open-source automation frameworks slowly started to emerge in the market.

Selenium brought the capability to automate both Firefox and IE. This was in a time period when even many of the popular commercials automation testing tools didn’t have the feature to automate any other browser apart from IE. It is important to remember that Selenium is a browser automation library; it is not a test automation framework. You have to use Selenium to build the framework.

Why do we need a test automation framework?

With the help of a test automation framework, we will be able to

  • Organize automated test scripts
  • Avoid duplication of scripts
  • Reduce the effort required for maintenance
  • Troubleshoot failures quickly with the help of test reports
  • Integrate with test management tools
  • Manage test data that are required for test execution
  • Follow common scripting guidelines
  • Ease portability & adaptability

Now that we have seen why we need an automation framework, let’s move over to our top 7 list of open-source test automation frameworks which can be used right away instead of having to build an in-house framework. As a leading QA company, we get projects requests from our clients to work with ready to use framework. Given our expertise in the domain, we believe that this blog article will help you to choose a suitable open-source automation testing framework to kick start script development from day one.

Serenity

First up, we have Serenity BDD which is a ready-made automation testing framework. It has many built-in methods for both Selenium and API automation which will ease the script development process. The Serenity test reporting feature will be very helpful in understanding what tests have been executed, and what requirements have been tested.

We know for a fact that Serenity is a popular open-source test automation framework. Let’s take a look at what makes it so popular.

  • Serenity introduces one more layer between the Step Definitions and page objects. ‘Steps’ is the new layer that represents actors or personas who interact with the application. This layer makes your test scripts more readable and maintainable.
  • You can mention environment-specific configurations in serenity.conf file.
  • Built-in methods and test reporting system for REST API automation testing using REST Assured is a great value-add.
  • Serenity supports the Screenplay pattern which helps to produce readable test code.
  • It introduces a new Ensure class to write readable assertions.
  • You can also run Serenity tests on a Zalenium server to achieve parallel execution.

Robot Framework

Robot Framework is an open-source automation testing framework that has many built-in keywords and libraries. The robot framework’s core is developed using Python. It was developed by Nokia Networks and open-sourced in 2008.

The various standout Robot framework features are:

  • It is a keyword-driven framework.
  • You can write test scenarios in the Gherkin format.
  • It produces both HTML and XML reports.
  • You can tag tests to categorize them.
  • Robot Framework has standard and external libraries. Standard libraries come along with the installation. Whereas, you can install the external libraries which are required for the project.
  • It has plugins for all popular IDEs like (Eclipse, Intellij, PyCharm, SubLime, TextMate, Vim, Emacs, Brackets, Atom, etc…).
  • Execution can be scheduled in Jenkins.
  • You can use Robot Framework for Acceptance Test-Driven Development (ATDD).
  • Desktop App test cases can be automated using WhiteLibrary.
  • You can also automate JavaSwing GUI.
  • Video recording and screenshots can be captured during execution.
  • It supports IBM Mainframe automation testing.

Robot Framework is very vast, and so you will be able to automate any application or API. So even if you don’t find any library for your requirements, you won’t be in trouble as Robot Framework lets you write your own library.

Gauge

Gauge is an open-source test automation framework developed by the Thoughtworks team that eases automated acceptance tests. You can write the test scenarios in the .spec or .md file format. The implementation codes can be written in JavaScript, TypeScript, Java, C#, & Python languages. Gauge allows you to focus only on tests instead of spending time on utilities & keywords development.

If you want to share data from one test scenario to another, you can use the Gauge data store factory. There are three types of data stores (ScenarioStore, SpecStore, & SuiteStore).

If a test execution has any failures, you will be able to rerun only the failed scripts using the below command.

gauge run --failed

You can run these specs in parallel, but you must be able to write the thread-safe test code. Gauge is a simple and flexible test automation framework that avoids complex test code layers.

Atata

Atata is an open-source C# based Web App Automation Testing framework. It provides a rich set of libraries to automate web-related test cases and uses Page Object Pattern to define the UI elements & actions to be performed on web pages. Atata is supported in all major C# based unit & BDD testing frameworks (NUnit, Xunit, MSTest, & Specflow). Atata even integrates ExtentReports for test report generation.

Carina

Carina is a Java-based open-source automation testing framework that can be used to automate Web Apps, Mobile Apps, REST Services, Windows apps, and even DB-related test cases. Carina has one very unique and resourceful feature for mobile app automation testing. It allows you to have common automated snippets for both iOS and Android platforms.

WebDriver.IO

WebDriver.io uses the Selenium, Appium, and DevTools protocol to automate Web apps, mobile apps, and Electron-based Desktop Apps. The DevTools capability was introduced in Selenium 4. However, the WebDriver.io framework has already implemented DevTools without relying on the WebDriver protocol.

Some notable features of WebDriver.io are:

  • It is suitable for automating all modern web, mobile, and desktop apps.
  • It supports all major reporting libraries (Allure, Concise, Dot, Junit, Spec, Sumologic, etc).
  • You can embed video recording in test reports.
  • Execution can be triggered based on GitHub actions.
  • WebDriver.io has built-in commands. You can also add custom methods if you need any.
  • You can schedule executions in Jenkins and Bamboo CI tools.
  • You can also migrate the existing Protractor automated scripts to WebDriver.io.

Citrus

Citrus is an open-source test automation framework best suited for integration testing. You can send, receive messages, and also specify control messages for validation. Citrus allows you to test complex messaging scenarios with a step-by-step sequence of operations.

Conclusion

You need experts such as us by your side to provide the best automation testing services. Yes, choosing the right framework is a critical choice. But your team should be capable to create a custom test automation framework, explore, and even suggest the ready-to-use framework for a project.

Measuring the Value of Automation Testing : How to Get it Right?

Measuring the Value of Automation Testing : How to Get it Right?

DevOps and Agile primarily focus on how to add value to both the product and the business, and test automation is considered an important activity in the delivery pipeline. In the past, test automation metrics and ROI were used to determine the benefits of automation testing. Let’s say an automated test suite runs perfectly for 6 months without any changes and refer to the metrics from the executions, it will show positive outcomes. But the underlying problem here is that the automated test scripts which are untouched and not improved don’t provide any value at all. So in this blog, we will be going through how to effectively measure the value of automation testing.

Measuring the value of test automation in DevOps & Agile is totally different. Let’s take a look at some of the more traditional value measuring techniques and explore why they are no longer effective.

Total Duration

Let’s start off with one of the most basic metrics, the time is taken to perform the tests using automated test suites. In most cases, automation test execution will be faster than manual test execution. But isn’t it more important to see what is being tested instead of how quickly it is tested in the initial phase? We understand that providing quick QA feedbacks to a team is a paramount task, and are not denying it. You can employ multiple Docker containers and run the scripts in parallel to achieve speed. But make sure you don’t compare the execution time between manual and automation testing for each test case. It does not help you to measure the value of your automation tests.

Percentage of Pass & Fail

False Positives & Negatives is one of the major productivity killers for automation testing that requires you to script well to avoid them. Just because all your tests have passed, you cannot assume that your scripts are doing well. You need to ensure that your automated test suites are constantly improved by adding new test scenarios, updating the existing scenarios when functionalities change, and also fixing the false positives & negatives. There is no doubt that the percentage of pass & fail is a good metric, but you need additional supporting data to measure the value of your automation testing more precisely.

In DevOps, you need to improve your automated test suites continuously. Only stable test scripts are qualified to fit in the delivery pipeline. As a leading QA Company, we use automated testing reporting dashboards to view all the collected metrics to measure their value. So based on our vast experience, we recommend you collect the below metrics to measure the value of automation testing.

Scalability

  • Keep track of the number of scripts that are up and running in the pipeline.
  • Collect data on the number of scripts that are getting added.
  • Monitor how many scripts are updated & removed.
  • Check how many new test cases are identified for automation testing from your Exploratory Testing Sessions.

Stability

  • We know that unstable scripts have to be quarantined, so find out how many scripts have been quarantined. Make sure that you bring them into the delivery pipeline only after stabilizing them.
  • Keep track of the frequently failing tests.
  • Your tests don’t just have to work, they have to be fast as well. So, collect data on the slowest tests as this metric will expose if any page is loading slowly or if it has any scripting issues.
  • Monitor common exception messages. Since Selenium and Appium have an exception list, you can improve your automated tests by fixing the common exceptions.
  • Track the Success Rate when you retry. Sometimes, running the failures again might get them to pass. But if you notice any script which is passing only after retry, it needs your attention.

Number of defects and other issues

  • Keep track of the number of defects you find in testing
  • Monitor the number of script issues
  • Check the number of issues in the test data
  • Collect data on the number of infrastructure-related issues

Conclusion

Being the best company for automation testing, we at Codoid have switched our test automation value measuring strategy from the traditional approach. We have seen great results and you will also be to witness the same when you try our approach. You will be able to capture the above-mentioned metrics during test execution, and from the framework & the test management tool to measure test automation value.