by admin | Oct 20, 2021 | Game Testing, Blog, Latest Post |
Preparing a checklist is always a great way to make sure you get maximum coverage in any process, even for testing. As one of the leading game QA companies, we always make sure to prepare well-thought-out checklists that will help us avoid any oversight errors along the way. So we have prepared this comprehensive checklist for mobile game testing that will make sure you don’t let any bug go untraced. We have split this Mobile Game Testing Checklist into various categories like UI, Gameplay, Functionality, and so on. So let’s get started.
Downloading and Installation
Downloading the application to install it on their phone is the very first action the user will do. So let’s start our list with that as well.
- Downloading the application from the store should be supported on both Wi-Fi and mobile networks (3G, 4G, or 5G).
- If at all the downloading process is interrupted, the user should be able to re-download it again without any issues.
- Once the download has been completed, the .apk file must get installed on the device seamlessly without any errors.
- The size of the apk file usually multiplies 3 or 4 times, so make sure it does not occupy too much space or exceed the internal memory of the device.
- Uninstallation is also as important as installation, it must remove the entire game and its data from the device successfully.
- Progress must be kept after reinstalling or updating by making it possible to save the game progress online or offline.
- Reinstalling the game (For example; after the deletion or when overwriting the previous installation) must not trigger any game data files issues.
- Check if the installation path is decided by the OS and if the app is installed in the right location.
User Interface
A clean UI is always mandatory for any application as it is in most cases responsible for giving the user the first impression of the application itself. So everything ranging from the language to the animations and design should be spot on.
- The AUT (Application Under Test) must install in the correct language, (i.e.) the current device language.
- Even if the game language and device language are different, there should not be any issues.
- Apart from that, the user must also be able to change the language from within the Options section.
- The grammar & orthographic rules specific to a language have to be respected.
- You have to make sure that the font is legible even for new users as it has to be easy to read and understand.
- Ensure that the text doesn’t spill out of the screen.
- Since it is a product for the global market, you have to ensure that the appropriate date & time formats are displayed based on the country it is used in.
- It’s not just the date & time, even the number format should be displayed correctly as per that country.
- If the game’s language is set to Arabic, the buttons must be displayed in the opposite part of the screen.
- UI must not depend on factors like the device’s theme or font.
- Not all users will be having the same screen resolutions. So the game should be tested on all the supported resolutions to ensure that the graphics do not get altered.
- Also, many users might connect to larger screens using the HDMI option, so you would have to test that as well.
- There should also not be any scaling issues when the game is launched in landscape or portrait mode.
- The game loading indicator and animations should be smooth.
- You need to test for clipping to ensure that two or more polygons do not overlap and cancel each other out and test that all required overlaps (semi-transparent objects placed over solid color objects/ backgrounds) are appropriate in size, placement, and purpose.
- Once the game launches successfully, we will not directly enter the gameplay. Rather, we would first come to the menu. So make sure it is easy to navigate and fully functional.
Gameplay & Functionalities
Next up in our Mobile Game Testing Checklist, we will be exploring the focus points when testing the core of the game, its gameplay.
- You have to test the different game modes and the various locations or levels in the game.
- You should check the game flow and see if it is progressive and if it correctly unlocks the elements as the levels increase.
- Check the gameplay rules as they should not be too difficult or too simple.
- Collectibles – There should be enough collectibles in the game and there should also be a good variety of collectibles.
- The Scoring mechanism – It should be accurate and simple.
- If there are any cheat codes, then you should get them from the development team and check if they are functional.
- Sound Effects – Check if all the sound effects play correctly at the right moment without any distortion.
- Check the single function mute button for all sounds in-game.
- There should also be two mute buttons that allow separate muting of game music or sound.
- You should also check whether the game is playable without music and sound effects (except for rhythm games).
- Pay close attention to all the collisions in the game and check if there are any incorrect or inappropriate collisions, so the gameplay looks realistic. For this, you will need to move the character through all objects to observe the consequences (collisions, event triggers, or object triggers).
- The high scores of the instant game with no progression should not be saved in the cache so that the high scores are reset to 0 upon the user refreshing the page or reloading the game.
- Test if the auto-save functions work and if the manual save happens correctly as well.
- It is also important to check what happens when multiple control inputs are given at the same time to see how well the game handles it. A perfect example here would be for a racing game where both acceleration and directional control are needed.
Multitasking
As we all know that mobile phones are capable of doing more actions than playing games and that many of us use them mainly for those purposes as well. So the user must be able to seamlessly switch between the game and some other app or functionality of the phone.
- Verify if the volume gets muted when the user switches to any other app.
- The Gameplay should pause when the user switches to another app as well.
- You must also check if the Gameplay resumed from where the user left off before switching away from the game.
- Make sure the Gameplay gets paused when the user receives a phone call.
- Check if the Gameplay resumes once the user ends the call or if the user rejects the call.
- Verify if the user is able to switch to the messaging app using the notification when the user receives a message.
Multiplayer game
Multiplayer games have always been a favorite for many gamers and with mobile gaming, people just took it to the next level. Here you would have to verify the different types of multiplayer games or rounds. For example, you could play as a team against the computer or play against each other as well.
- So start by checking out if the login and logout functionalities are working well. Login also includes the new user sign-up process.
- Verifying the account using a verification email is also important to ensure that there is no foul play.
- You should also check the player profile’s image, the naming capabilities, and so on.
- It doesn’t matter if you are up against the machine or man, you should be able to challenge, decline, and receive challenges.
- Check if the user statistics like winning, losing, or even draws are being recorded correctly. We should also check the score constantly.
- You should also check the performance of the multiplayer mode as lagging performance can be a big deal-breaker for many.
- Make sure to see if the time-out functionalities work and also if the forfeit or quit options work.
- With the rise of social media, social integrations should also be tested by checking the users can share results, achievements, and so on.
- The sharing feature should be checked across the major platforms.
- If at all there is a chat feature within the game, then make sure to check the vital functionalities like character type, limit, and notifications as well.
Application and Data Storage
The AUT should be tested for all such features listed in our Mobile Game Testing Checklist. But more importantly, we should also make sure that the game is usable across a wide range of mobiles. Here are a few key pointers to focus on.
- Power consumption is a big area of concern and we have to check how efficient the game is when it comes to power management.
- During the course of continuous gameplay, there could be high usage of memory and the game must notify the user when the memory goes dangerously low.
- Test the performance of the game across different mobile configurations like the RAM, processor, and so on.
- Safety is also a concern, so all games must encrypt their saved files.
- The AUT must not be present in Running Services once the device has been restarted.
- Make sure the AUT launches without much delay in the correct orientation for gameplay.
- Make sure it is not possible to transfer the offline saved files from one device to another.
Conclusion:
The checklist is the first step towards providing unparalleled game testing services, and we hope this Mobile Game Testing Checklist of ours has been informative. Getting a good checklist ready implies that you start your journey on the right track with the correct intent. But that alone is never enough. So make sure to employ the best professionals and use the top-of-the-line methods to test a game thoroughly without facing any hiccups.
by admin | Oct 19, 2021 | Automation Testing, Blog, Latest Post |
Automation testing is not your departmental goal. Period. So when software testers or automation testers create automated test scripts, they should focus on how the tests will add value to the business or product instead of focusing on increasing the script count. Since analyzing the goals and objectives of automation testing before starting any project is very important, let’s learn about it in this blog.
A Confidence Booster
Automation test executions boost the confidence of your team to release a product. Testing a system manually on multiple browsers & devices is a tiring effort for a tester. Moreover, it is very much prone to errors. Whereas, if rightly done, automation scripts can execute your tests without any deviation. So this ultimately frees up the testers and lets them focus on the problem-solving activities.
In DevOps, there is always a need to automate as much as possible so that the testers can concentrate on Exploratory Testing to unearth bugs, identify new features, and capture edge cases for automation testing. So if there are no application issues, robust and reliable automated tests will run without any hassle, and the passing automated tests will boost the confidence of your team.
Avoid False Positives & Negatives
An automation test script should fail only when there is an application issue. But if your scripts are flaky, you will not be able to reap the benefits of automation testing, and your team will eventually lose confidence in the automated test scripts. That is why we have it in our top 3 objectives of the automation testing list. As a leading automated software testing company, we have seen success in our test automation by following the points.
How to avoid false positives & negatives:
- Recruit talented test automation engineers.
- Train your team to follow the best practices and coding patterns.
- Strictly avoid boilerplate codes.
- Enable the peer-review process.
- Quarantine flaky tests and bring them back to the execution pipeline only if & when they are stable & robust.
- Park the adequate test data required for automated test execution to avoid failures due to invalid data.
You need a highly skilled team to develop robust automated test scripts. We have been providing automation testing services to many of our clients over the years. During this period, we have revived many of the projects that had failed to reap the benefits of effective automation testing. We achieved it by trying to reuse the existing scripts and libraries. But at times, we have thrown away the poorly written automation test scripts into bins. So it is important to keep in mind that if the best practices and coding designs patterns are not followed when creating automation test scripts, you will have to suffer from such scripts forever.
Scripts fail due to invalid test data as well. But feeding the test data before starting the execution is a cumbersome task. In DevOps, automated test executions are kicked off as soon as product changes are pushed into master. So you cannot hold the execution for feeding the test data. Moreover, you will not be able to feed the data a day before the execution if your team is part of the continuous delivery pipeline as they will deliver changes into production multiple times a day.
So make sure to use a test data management tool to upload adequate test data for script executions. Your test automation scripts should be able to pick up the required data from the test data management tool.
Maintenance
When there is a change in the application, you have to accommodate the change in your script as well. If an automated test suite is not changed for a longer period, then it is going to perform the same testing again and again. You should have a process to obtain the below details constantly to keep your scripts up-to-date.
- You should know when a change is introduced in existing functionality.
- Note when a new feature is getting adding to the product.
- Note when an existing feature is removed from the system.
Conclusion
Adding more automated tests to improve coverage is a primary goal of an automation tester. However, if you do it without thinking about the system, goals, and objectives of automation testing, you will be missing out on the many benefits. Automation testing is not an isolated activity and it is pivotal for you to know how your scripting efforts are adding value to the system.
Frequently Asked Questions
-
What are the objectives of Test Automation?
Test automation aims to optimize testing by increasing efficiency, speed, and accuracy, improving test coverage, and enhancing software quality. It achieves this by automating repetitive and time-consuming tasks, reducing time and effort, and ensuring comprehensive test coverage.
-
What are the major benefits of Test Automation?
Test automation allows you to run a vast number of complex and lengthy test cases and brings in the necessary agility to testing which helps it to respond faster and more effectively to changes that would be impractical to run manually. It can enhance software quality by increasing the thoroughness of testing and reducing the likelihood of errors, without manual intervention.
-
What are the Challenges in Automation Testing?
Some of the challenges faced in automation testing are
1. Finding the right tools and frameworks that fit the project's requirements and technology stack.
2. Creating and maintaining reliable and efficient test scripts that can keep up with the constantly evolving application can also be difficult.
3. Ensuring that automated tests are accurately mimicking user behavior and covering all edge cases can be a time-consuming and complex task.
-
What is the future of Automation Testing?
Automation testing is evolving rapidly and is expected to become more sophisticated and intelligent with the integration of artificial intelligence and machine learning. This can help create self-healing test scripts, improve test coverage, and increase the accuracy and reliability of test results. As companies increasingly adopt agile methodologies, cloud-based testing solutions, and continuous delivery, automation testing will remain a critical component of software development processes, ensuring high-quality releases and faster time-to-market.
by admin | Oct 18, 2021 | Selenium Testing, Blog, Latest Post |
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

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.

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.

Also, you will get the following message on your HUB system.
Registered a node http://192.168.1.5:25409

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.

You will get the following message in the node.

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.
by admin | Oct 15, 2021 | Mobile App Testing, Blog, Latest Post |
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.

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.
by admin | Oct 14, 2021 | Automation Testing, Blog, Latest Post |
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
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.
by admin | Oct 13, 2021 | Selenium Testing, Blog, Latest Post |
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.

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.

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

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.