by admin | Oct 29, 2021 | Selenium Testing, Blog, Latest Post |
When you are testing a web-based application, it is pivotal to ensure that they work without any issues in the browsers that are predominantly used by the world. Selenium WebDriver is a great tool that allows QA professionals to automate their test cases in their desired browser by using its library and a language-specific framework. As a leading QA company, we believe the ability to run Selenium WebDriver in different browsers is a basic skill every automation tester must possess. So we have written this blog to provide a comprehensive guide to the ones looking to learn how to run Selenium WebDriver in browsers like Chrome, Firefox, Safari, Opera, and Edge. So let’s get started with a few basics of Selenium and move forward from there.
Selenium
Selenium is a popular test automation tool that was developed by Jason Huggins in 2004 at Thought Works. It is an open-source automated testing framework for web applications that works with different languages such as JavaScript (Node.js), Python, Ruby, Java, or C#.
Different Types of Selenium:
- Selenium IDE
- Selenium RC
- Selenium WebDriver
- Selenium Grid
Selenium WebDriver:
We have already established how Selenium WebDriver can be instrumental in testing a web application across different browsers. But before you can get started with your browser automation, you should make sure to download the browser-specific drivers. Also ensure that the driver is compatible with your OS (Windows, Mac, or Linux).
Though we will be guiding you to run Selenium WebDriver in Safari that runs only on macOS, we will be focusing on how you can run Selenium WebDriver in the other browsers on Windows.
Different types of WebDriver:
1. Firefox
2. Opera
3. Chrome
4. Edge
5. Safari
Both developers and QAs have the liberty to choose the programming language of their choice all thanks to the wide range of language bindings that the Selenium developers have developed.
Now, let’s see a list of software that you will have to download onto your system to successfully automate your browsers. Make sure you download the most recent and stable releases.
1. Selenium Java Stable 4.0.0
2. JDK
3. IntelliJ IDEA
Environment setup:
Setting up an environment for testing is one of the very first actions we would be doing. So let’s see how to do that in Java.
- Open ‘Edit the System Environment Variables’ options by searching for it in the Search Box.
- Click on ‘Environment Variables’ -> Click the ‘New’ Button
- Enter the variable name as ‘CLASSPATH’, and enter the following variable value ‘C:\ProgramFiles\Java\jdk-17.0.1\lib\*.jar’.
- Click the ‘New’ button again.
- Enter Variable name ‘JAVA_HOME’ and Variable value ‘C:\Program Files\Java\jdk-17.0.1’.
Once it has been downloaded, verify it in your system without fail. You can do that by opening command prompt and typing java–version and clicking Enter. If there are no issues, you will see the details of the Java & JDK versions.
IntelliJ IDEA
- Open IntelliJ. Click File -> New -> Project -> Click Java -> Select Project SDK -> Next -> Select the “Checkbox” to Create project from template, Click ‘Next’ -> Give a name for the Project, and click on Finish.
- Click on ‘File’ -> Project Structure -> Platform Settings ->SDKs to Add Classpath ‘+’.
- Open the Selenium file and navigate to the Lib folder, select ‘All Jar Files’ and click on ‘Apply’.
- Make you sure downloading Selenium Webdriver in any compatible browser on your windows . Click the URL and go to navigate the Platforms Supported by Selenium and click the browser then you can the webdriver then download the documentation.
- Must you verify the browser version of the webdriver is here , then you can download and use it .
The syntax for the WebDriver
//System.setProperty ("webdriver.chrome.driver"," Enter the driver path with driver name.exe "); //
Keywords for Selenium:
In order to understand the sample codes that we have written, you have to know a few basic keywords that are used to perform certain actions in the automation process. We have just mentioned a few basic keywords, if you are looking to get a better understanding, make sure to check out our blog that will help you with it.
Action:
We can use these keywords to open a particular website, reload it, close it, and such other actions.
driver.get ("URL");
driver.navigate ().to ("URL");
driver.navigate ().refresh ();
driver.navigate ().forward ();
driver.navigate ().back ();
driver. Close ();
Locators:
These keywords are used to locate the elements using Selenium. Each keyword uses a different method and it can be easily understood by their names.
driver.findElement(By.id(""));
driver.findElement(By.name(""));
driver.findElement(By.xpath(""));
driver.findElement(By.cssSelector(""));
driver.findElement(By.linkText(""));
driver.findElement(By.partialLinkText(""));
Code to Run Selenium WebDriver in Multiple Browsers:
We have written sample programs that will help you understand the changes you’ll have to make when using each browser. So let’s take a look at each of them one by one.
Sample Program for Chrome:
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.interactions.Actions;
public class Main {
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver","D:\\Webdriver\\chromedriver_win32 (2)\\chromedriver.exe");
WebDriver driver=new ChromeDriver();
driver.get("https://www.snapdeal.com/");
driver.manage().window().maximize();
WebElement element =driver.findElement(By.cssSelector("ul[class='nav smallNav']>li[navindex='4']"));
Actions action = new Actions(driver);
action.click(element).perform();
WebElement element2 =driver.findElement(By.xpath("//span[text()='Keyboards']"));
Actions actions = new Actions(driver);
actions.doubleClick(element2).perform();
driver.findElement(By.id("searchWithinSearch")).sendKeys("logitech");
driver.findElement(By.id("swsIco")).click();
driver.navigate().to("https://www.snapdeal.com/product/logitech-k120-black-usb-wired/636481286288");
driver.findElement(By.id("buy-button-id")).click();
driver.close();
}
}
Sample Program for Firefox:
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.Select;
import java.util.concurrent.TimeUnit;
public class Main {
public static void main(String[] args) {
System.setProperty("webdriver.gecko.driver","D:\\Webdriver\\geckodriver-v0.29.1-win64\\geckodriver.exe");
WebDriver driver=new FirefoxDriver();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.MICROSECONDS);
driver.manage().window().maximize();
driver.get("http://www.leafground.com/pages/Dropdown.html");
Select Select_training_program_using_Index1 = new Select( driver.findElement(By.xpath("//select[@id='dropdown1']")));
Select_training_program_using_Index1.selectByIndex(1);
Select Select_training_program_using_Index2 = new Select( driver.findElement(By.xpath("//select[@name='dropdown2']")));
Select_training_program_using_Index2.selectByValue("2");
Select Select_training_program_using_Index3 = new Select( driver.findElement(By.xpath("//select[@id='dropdown3']")));
Select_training_program_using_Index3.selectByVisibleText("UFT/QTP");
Select Get_the_number_of_dropdown_options = new Select( driver.findElement(By.xpath("//select[@class='dropdown']")));
Get_the_number_of_dropdown_options.getWrappedElement().sendKeys("Loadrunner");
}
}
Sample Program for Microsoft Edge:
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.edge.EdgeDriver;
public class Main{
public static void main(String[] args) {
System.setProperty("webdriver.edge.driver","C:\\Users\\Admin\\Downloads\\edgedriver_win32\\msedgedriver.exe");
WebDriver driver= new EdgeDriver();
driver.manage ().window().maximize();
driver.manage().deleteAllCookies();
driver.get("https://facebook.com ");
driver.findElement(By.id("email")).sendKeys("7418894451");
driver.findElement(By.name("pass")).sendKeys("99664475");
driver.findElement(By.xpath("//button[@name='login']")).click();
driver.close();
}
}
Sample Program for Opera:
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.opera.OperaDriver;
import java.util.concurrent.TimeUnit;
class Main{
public static void main(String[] args) {
System.setProperty("webdriver.opera.driver","C:\\Users\\Admin\\Downloads\\operadriver_win64 (1)\\operadriver_win64\\operadriver.exe");
WebDriver driver=new OperaDriver();
driver.manage().window().maximize();
driver.manage().deleteAllCookies();
driver.get("https://www.google.co.in");
driver.manage().deleteAllCookies();
driver.navigate().to("https://codoid.com");
driver.manage().window().fullscreen();
driver.navigate().back();
driver.navigate().refresh();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.MICROSECONDS);
driver.navigate().forward();
driver.manage().window().fullscreen();
driver.close();
}}
Run the WebDriver in the Safari browser
So as promised, now we are going to explore the two processes you’ll need to do to run Selenium WebDriver in Safari. Following this, we have a test script for the Safari driver to run. It is worth noting that we’d have to run an automation test in the Safari browser to enable this option.
Process 1
Step 1: Open the Safari browser and navigate to the Preferences.
Step 2: Enable the ‘Show Develop Menu’ on the Menu bar.
Step 3: Now you’ll see the new Develop option popup on your safari menu bar.
Step 4: Click on ‘Allow remote automation’.
Step 5: Once that is done, you’ll be able to run the web driver successfully.
Syntax:
Webdriver driver = new Safari Webdriver ();
//Since this Safari WebDriver there is no need to set the path of the driver for the respective browser, instead you would have to do it for the system.
For example,
System.setProperty("webdriver.safari.driver","C:\\Admin\\safaridriver(1)\\safaridriver.exe");
//Apple developed a Safari WebDriver that is compatible with all the safari browsers.
//If you can’t run a Safari WebDriver, you can activate the WebDriver by following Process 1.
Sample program for Safari:
package com.company;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.safari.SafariDriver;
public class Main{
public static void main(String[] args) {
WebDriver driver=new SafariDriver();
driver.get("https://codoid.com/ ");
driver.close();
}}
Conclusion
We hope you found this blog informative as a majority of software testers use Selenium WebDriver to automate their tests in different browsers. As one of the prominent automation testing service providers in the arena, we ourselves have been ardent users of Selenium WebDriver to automate our tests.
by admin | Oct 28, 2021 | Web Service Testing, Blog, Latest Post |
Long gone are the days where websites were predominantly accessed from desktops as people have started accessing websites from laptops, tablets, smartphones, and even smartwatches. There are countless models that have different screen resolutions and sizes under these categories as well. So you will be in deep trouble if you’re website doesn’t have a responsive design, as you will be driving away a massive chunk of your audience due to the poor design. It is not just about the aesthetic feel your design has to offer, functionality is also a crucial part of being responsive. Though bounce rate is an aspect to worry about, your website will not even be able to rank and reach people if your website isn’t mobile-friendly. Now that we have established why we need to test your website at different screen resolutions, let’s find out how.
There are various solutions that will enable you to test your website at different screen resolutions. As a leading QA company, we have shortlisted the best options for this blog.
Dev Tools
Understanding the growing need for websites to be responsive, many prominent browsers have made it easier for testers or developers to check it using Dev Tools. According to reports, the 4 most popular browsers are Google Chrome, Safari, Microsoft Edge, and Mozilla Firefox.
- In most cases, a regular right-click on any part of the website you want to test will show an option called ‘Inspect’ in the dropdown list. You can click on it to launch the Dev tools and the emulator along with it.
- Once Dev tools has been launched you can define the screen resolution as you choose or even choose from the list of predefined screen resolutions that come along with it.
- If you are testing a new device, then you can even add the custom resolution and save it by giving a name to reuse it whenever needed. You can refer to the below visual to see how it can be done in a few easy steps.

Unlike Google Chrome and Microsoft Edge Mozilla Firefox will not launch the emulator directly. Once the Dev tools window has been launched, you have to look for an icon that denotes a mobile and a tablet together and click it, or press ctrl+shift+M to launch the emulator.
When it comes to Safari, you first have to follow this series of actions.
- Click on ‘Preferences’ -> Advanced.
- In the menu that appears, you have to enable the ‘Show Develop menu in menu bar’ checkbox.
- Now, you will be able to view the ‘Develop’ menu in the menu bar. Click on that and select the ‘Enter Responsive Design Mode’ option.
The conventional way to launch Dev Tools for the other 3 browsers would be opening the ‘Menu’, navigating to ‘More Tools’, and then opening Developer tools.
BrowserStack
The first option we saw makes use of emulators to help test your website at different screen resolutions. But if you are looking to take it a notch higher and perform the test on real devices, then definitely buying all the devices in the market will not be a viable option. Here is where a tool like BrowserStack will come in handy as it is a cloud-based platform that will let us use real devices to test. Apart from using real devices for better assurance, BrowserStack will be instrumental in testing cross-browser functionalities. As one of the best mobile testing companies, we have used BrowserStack to great success in many of our projects. Though there are other similar tools, we believe BrowserStack to be the best.
Testing on Foldable Devices
Foldable devices introduce innovative screen configurations that require a thorough testing strategy to ensure your website remains responsive and user-friendly. Here’s a detailed guide:
1. Dual-Screen and Single-Screen Modes
- Scenario Testing: Test how your website appears in both folded (single screen) and unfolded (dual screen) states. For example:
- A gallery might span across two screens when unfolded but compress into a single scrollable column when folded.
- Content Flow: Check if content flows seamlessly between screens without truncation or misalignment.
2. Viewport and Screen Ratios
- Foldable devices often have non-standard aspect ratios, like square or ultra-tall screens. Ensure your website:
- Adapts dynamically to screen size changes.
3. Multi-Window and App Continuity
- Test how your website behaves in multi-window setups:
- Split-screen: Ensure UI components resize correctly when your site shares the screen with another app.
- Drag-and-drop interactions: Test any cross-window functionalities for seamless operation.
- App continuity testing ensures the site state persists during transitions between folded and unfolded modes.
4. Interaction Zones
- Foldable hinges may introduce non-interactive zones:
- Verify that essential buttons or links aren’t placed over these areas.
- Test gestures like swiping across the hinge or tapping near it.
5. Testing Tools
- Browser DevTools:
- Chrome DevTools: Offers presets for foldable devices like Samsung Galaxy Fold.
- Microsoft Edge: Includes dual-screen testing tools for Surface Duo.
- Real Devices:
- Physical testing on devices like Galaxy Z Fold or Surface Duo helps uncover hardware-specific quirks.
- Emulators and Simulators:
- Tools like Android Studio can emulate foldable scenarios for testing without physical devices.
Look beyond the norm
The conventional screen sizes we can see on a laptop or desktop are 1920×1080 and 1366×768. But many users are beginning to transition to desktop monitors and laptop displays with 2K & 4K resolutions. Also keep in mind that beyond the 16:9 aspect ratios that we are used with, there is also a rise in the usage of 16:10 aspect ratio displays that have different screen resolutions. These kinds of screen resolutions are mainly used by creators and it is sure to catch on as Apple has also been using this aspect ratio with their new range of laptops. The mobile devices we use nowadays are all touch screens, and many laptop displays are also getting touch displays. So make sure to design your websites for touch input to stay future-proof.
by admin | Oct 27, 2021 | API Testing, Blog, Latest Post |
Postman is one of the most popular software testing tools which is used for API testing. Postman is widely used by both software testers and developers for testing as it is easy to integrate with Continuous Integration (CI) & Continuous Development Pipelines. Postman sends an API request to the webserver and receives the response. As one of the leading QA companies, we have been doing our manual Rest API testing using Postman whenever it was deemed necessary. So if you are someone who is looking for a complete guide that explains everything from what is REST API to how it works to how it can be manually tested using Postman, you will definitely find this blog useful.
API (Application Programming Interface)
An API is a set of defined rules that enables computers or applications to communicate with one another. APIs sit between an application and the webserver and acts as an intermediary that processes data transfer between systems.
What is REST API?
- REST API (Representational State Transfer Application Program Interface) is an architectural style that allows the software to communicate with other software on the same device or over a network.
- REST APIs communicate via HTTP requests to perform standard database functions like creating, reading, updating, and even deleting records (also known as CRUD) within a resource.
Why REST API?
These are the major reasons as to why we choose REST API over the other options. REST API is
1. Easy to Learn & Implement
2. Easy to Build & Maintain
3. Scalable
4. Cacheable
5. Flexible and Portable
How does REST APIs work?
As stated earlier, REST APIs use HTTP requests for their communication. HTTP works as a request-response protocol between a client and server and enables client-to-server communication. For example, your web browser can be considered as the client, and the application on the computer that hosts the website can be termed as the server. So if your browser (client) submits an HTTP request to the server, the server will return a response that contains the status information of the request and the requested content if any were requested.
Common HTTP methods (CRUD commands) used in REST API:
Most of these commands have very straightforward names that make them self-explanatory. So once you have been introduced to them, it will be very easy for you to remember.
- GET – The GET method can be used to extract information from the given server using a given URI. It is worth noting that when you use the GET request, it should only extract the data and not have any other effect on the data. So no Payload/Body is required.
- POST – As the name suggests, a POST request is used to send data to the server. Data like customer information, files, and so on can be sent using HTML forms.
- PUT – Using PUT, you will be able to replace all the current representations of the target resource with the uploaded content.
- DELETE – It can be used to remove all the current representations of the target resource given by a URI.
There are other CRUD commands like patch, copy, and so on as well. So once you are thorough with these basics, you can explore them.
API Contract
We have seen the basics of REST API that you will need to know. There are also a few basics of Postman that you should be familiar with. But before we can move forward, we have to explore a few aspects of the API contract as you’d have to know the following information to perform manual REST API testing using Postman.
Endpoint:
It is the address where the API is hosted on the Server. An End Point Request URL can be constructed as below
Base URL/resource/(Query/Path)Parameters
Resources:
They represent the API/Collection that can be accessed from the Server. We have listed a few common examples below to help you understand better.
- Google.com/maps
- google.com/search
- google.com/images
Here maps, search and images are the resources of Google.com which is the Base URL.
Path Parameters:
Path parameters are the variable parts of a URL path. They are generally used to point to a specific resource within a collection in the same way how a user is identified by ID.
Example for Path Parameters:
- https://www.google.com/Images/1123343
- https://www.google.com/docs/1123343
- https://amazon.com/orders/112
Here 1123343, and 112 are the parameters
Query Parameters:
Query Parameters are primarily used to sort or filter the resources. They can be identified with ”?” (A Question Mark). You’ll be able to identify them once you see a few examples.
- https://amazon.com/orders?sort_by=07/09/2021
- https://www.google.com/search?q=newyork&oq=newyork&aqs=chrome..69i57j0l7.2501j0j7&sourceid=chrome&ie=UTF-8
Here orders and search are your resources and they are sorted and filtered by the query parameter that is followed by the “?”.
Headers/Cookies:
Headers represent the meta-data associated with the API request and its response. In layman’s terms, it will be used to send additional details to the API for processing our request. An example of it would be the authorization details.
Sample API Contract for Basic CRUD commands:
Apart from these values, we would also have to know about the HTTP method in use, the body, content types of the parameter and response (either Application or JSON), and also the response value. You will get a clear idea of these aspects when we see a few examples.
1. Request to Log in – Successful
Parameters
Base URL: https://reqres.in
Request : /api/login
Request Type: POST
Body :
Parameter Content Type: application/json
Responses:
Response Content Type: application/json
Response Code : 200
Description : OK
Response Value :
{
"token": "QpwL5tke4Pnpja7X4"
}
2. Request to Get a List of Users
Parameters
Base URL: https://reqres.in
Request: /api/users
Request Type: GET
Responses:
Response Content Type: application/json
Response Code : 200
Description : OK
Response Value :
{
"page": 1,
"per_page": 6,
"total": 12,
"total_pages": 2,
"data": [
{
"id": 1,
"email": "[email protected]",
"first_name": "George",
"last_name": "Bluth",
"avatar": "https://reqres.in/img/faces/1-image.jpg"
},
{
"id": 2,
"email": "[email protected]",
"first_name": "Janet",
"last_name": "Weaver",
"avatar": "https://reqres.in/img/faces/2-image.jpg"
},
{
"id": 3,
"email": "[email protected]",
"first_name": "Emma",
"last_name": "Wong",
"avatar": "https://reqres.in/img/faces/3-image.jpg"
},
{
"id": 4,
"email": "[email protected]",
"first_name": "Eve",
"last_name": "Holt",
"avatar": "https://reqres.in/img/faces/4-image.jpg"
},
{
"id": 5,
"email": "[email protected]",
"first_name": "Charles",
"last_name": "Morris",
"avatar": "https://reqres.in/img/faces/5-image.jpg"
},
{
"id": 6,
"email": "[email protected]",
"first_name": "Tracey",
"last_name": "Ramos",
"avatar": "https://reqres.in/img/faces/6-image.jpg"
}
],
"support": {
"url": "https://reqres.in/#support-heading",
"text": "To keep ReqRes free, contributions towards server costs are appreciated!"
}
}
3. Request to update user Information
Parameters
Base URL: https://reqres.in
Request : /api/users/{{User_ID}}
User_ID=2
Request Type: PUT
Body :
{
"name": "morpheus",
"job": "zion resident"
}
Parameter Content Type: application/json
Responses:
Response Content Type: application/json
Response Code : 200
Description : OK
Response Value :
{
"name": "morpheus",
"job": "zion resident",
"updatedAt": "2021-10-05T19:20:33.979Z"
}
4. Request to Get a List of Users
Parameters
Base URL: https://reqres.in
Request : /api/users/{{User_ID}}
User_ID=2
Request Type: DELETE
Responses:
Response Content Type: application/json
Response Code : 204
Description : OK
Response Value :[]
Now that we have fully covered all the prerequisites when it comes to REST API, let’s see why we use test REST APIs and explore a few other prerequisites that will be required to perform Rest API testing using Postman.
Why Postman tool?
Postman is a simple GUI for sending HTTP requests and viewing its responses. It is built upon an extensive set of power tools, which are incredibly easy to use. Postman helps you perform a variety of functions and has a lot of useful functionalities as well.
- Since Postman is accessible from anywhere, you have to just install it into the device and access it by logging into the account.
- Your test suites will be more organized as Postman allows users to build collections for their API calls. Every set can create multiple requests and subfolders.
- Using Postman, you’ll be able to test checkpoints with the verification of the successful HTTP response status that will be added to every API call.
- Automation Testing becomes easier as several iterations of the tests can be performed by using the Collection Runner or Newman. So you can save a lot of time when performing repetitive tests.
- As Postman makes it easy to create environments, you can design multiple environments and reduce the replication of tests as you’ll be able to use the same collection for a different setting.
- The postman console helps to track what data is being retrieved makes it possible to effectively debug the tests.
- The scope for collaboration is also high as you can import or export your collections & environments and share those files. You can also use a direct connection to share the collections.
- Postman supports continuous integration as well.
- You can use Postman by either downloading & installing their application or use their web version. It is a good option to have as both offer great performance.
How to create API requests in Postman
Learning how to create API requests is an integral part of learning how to perform manual REST API Testing using Postman. You will need to know more about the following 2 features to create an API request.
Workspace in Postman:
Postman Workspaces acts as a common working area where you can group your API projects together and use API builder to define APIs or generate API elements. So they are helpful in organizing your API work better and collaborating with your teammates as well. Now let’s see how to create one.
Creating a Workspace in Postman:
Click on the Workspace dropdown in the header -> New Workspace -> WorkSpaceName (Type any workspace name you wish) -> Create Workspace.

Collections in Postman:
- Postman Collections are Executable API Descriptions Postman’s collection folders make it easy to keep your API requests and elements organized.
- Generate Collections from API schemas Generate a collection from an API schema to view and edit each request.
Creating Collections in Postman:
Click on File -> New -> Collection -> CollectionName (Assign a Collection Name as you wish)
OR
Click Collection -> Create Collection Icon (+) -> CollectionName (Enter a Collection Name of your wish)

For testing the CRUD commands, we are going to use the information which is present in the above mention API contract.
Testing POST Request to Log in – Successful:
To make a POST request, click on the More option icon (…) -> Add Request -> Login User

1. From the Dropdown select POST
2. In the “Enter request URL” text box, type the following (URL): https://reqres.in/api/login
3. Click on Body Tab, select the ‘Raw’ radio button, and then the JSON format from the dropdown list.
4. In the text box, paste the Login Credentials:
5. Click on the Send button
6. You should be able to see the below response:

7. Also, make sure to check for the correct status code here. In this case, you should get: ‘Status: 200’ as shown in the image below.

Testing GET Request to Get the List of Users:
To make a GET request, you have to click on the More options icon (…) -> Add Request -> Request to Get List of Users (Assign any requested name you wish)
1. From the Dropdown list, select GET
2. Type the mentioned URL (https://reqres.in/api/users) in the “Enter request URL” text box.
3. Click on the Send button.
4. You’ll be able to see the below response:

5. Once again, check for the status code and see if it is ‘Status: 200’.

Testing PUT Request to update user Information:
Same as above, you have to click on the More option Icon(…) ->Add Request -> Request to Update user Information (Enter any request name of your choice)
1. Click on ‘PUT’ from the dropdown list.
2. In the “Enter request URL” text box that appears, type this URL: https://reqres.in/api/users/2
3. Click on the ‘Body’ Tab, select the ‘Raw’ radio button, and then choose the JSON format from the dropdown.
4. Paste the Login Credentials in the text box:
{
"name": "morpheus",
"job": "zion resident"
}
5. Click on the ‘Send’ button
6. You will see the below response:

7. Check if the status is shown as ‘200 OK’.

Testing DELETE Request to Remove Users from Database
Click on the More option Icon (…) -> Add Request -> Request to Get the list of Users (Enter any request name you wish)
1. From the Dropdown list of options, select ‘DELETE’.
2. Type this URL https://reqres.in/api/users in the “Enter request URL” text box.
3. Click on the ‘Send’ button
4. Check is you see the below response:

5. Check if ‘Status: 200 OK’ is visible as shown in the image below.

Conclusion:
It is evident that the steps we saw for each request were almost identical to each other. So by now, you should have no trouble in performing Rest API testing using Postman in an effective way to ensure high quality. As a leading manual testing services provider, we have often used Postman for our manual testing projects. But Postman can also be used for automation testing with the help of Test scripts.
by admin | Oct 26, 2021 | Automation Testing, Blog, Latest Post |
Releasing software multiple times into production in a day to deploy the new features/fixes with high quality will need an automation testing setup in all the stages of your delivery pipeline. In DevOps, you have to automate as much as possible to enable continuous testing. So when a product is getting deployed into production more frequently, you have to test the product continuously. For you to proactively search for quality issues, continuous testing has to be enabled across all stages of your delivery pipeline. Since software Test Automation is the key enabler of Continuous Testing, we will be taking a look at the 6 steps that can help you achieve Continuous Testing.
Treating Test Code as Production Code
Whenever a change happens in the product, you have to update your test code to accommodate the change. Let’s say you have to make a change on a common page/screen, your test automation framework should enable you to update the change in that one place instead of updating all the scripts.
Implementing the best practices and design patterns in test automation ease script maintenance. So you have to design your framework in such a way that any script change can be added to the test suite quickly without any hassle.
Kick-off Test Execution for Every Code Commit
Every code commit to version control should kick off automated unit & acceptance tests. When you deliver fast, you will also be in need of quick feedback for the changes or fixes that you have made. Lack of code commit validations will lead to eventual quality issues and regression defects.
Test Automation Framework
You can’t just build the entire framework and immediately start the script creation for Continuous Testing. We have to use the Acceptance Test-Driven Automation (ATDA) approach to develop an automation testing framework. ATDA enables you to write automated test scripts from the very first day instead of waiting for the framework development phase to be completed.
In the past, automation testers used to spend at least two weeks, or even a month in certain cases to develop the test automation framework. The script development itself would begin only after that. So in order to achieve Continuous Testing, you have to start the script development from day one, and then go forward with the product development.
How can we develop scripts without a framework?
Let’s say your team is comfortable with Java. You can use JVM-Cucumber, Selenium, Maven, Appium, and IntelliJ Community edition to start writing automated test scripts from day one. If a script needs a new framework feature, you first have to develop the feature and complete the script. That is how you can evolve the framework and not hold up the script development during the framework development.
Avoid & remove Flaky Tests from CI
If an issue messes with the DevOps pipeline, the entire team should focus on the issue and fix it immediately. Similarly, if a script is flaky, it will make the pipeline unstable. Automation Testing Services is our core service, and we know for a fact that you’ll need a highly skilled team that follows the best practices and uses proper object locators to avoid flaky tests and achieve Continuous Testing.
So if some of your tests are flaky, you must quarantine, schedule, and run them separately, and bring them into the delivery pipeline only when it is fixed and stable.
Test Data Generation
Test data plays an important role in UI, Functional, Non-functional, and Integration Testing. So you have to park adequate test data for test execution. Make sure to avoid failures that can be caused by invalid or missing test data. You should also have an automated system that allocates the required test data and cleans up the consumed data during execution.
Setup the Tests for all the phases
Continuous Testing should be set up in all phases of your delivery pipeline starting from development to production. For example, if a feature is being actively used by the end-users on a daily basis for a particular period of time. You can write an automated test script to check the feature’s usage from the production monitoring data to proactively check for any quality issues. So make sure you don’t just focus on smoke and regression testing as you have to set up tests for different stages in the pipeline.
Conclusion
Being one of the best automation testing service providers, we, at Codoid, follow strict scripting practices and design patterns to avoid flaky tests and have helped many clients to enable Continuous Testing in their DevOps pipeline. Fast feedback is critical for DevOps. You also shouldn’t delay test code development. You have to add the test code as and when new features are deployed into the pipeline.
by admin | Oct 25, 2021 | Exploratory Testing, Blog, Latest Post |
Exploratory testing is one of the types of testing that will highly benefit from the QA’s or tester’s experience, expertise, instinct, and intuition. Unlike many other types of testing, there will be no scripted and defined steps one would have to follow. The implication here is that the person performing the tests will either make or break the results as they will be flying blind without any guidelines to adhere to. So if you are a QA professional looking to make a mark, then we recommend you to master these exploratory testing techniques we have listed in this blog. It will help you become better equipped to perform effective exploratory testing. We will start out with the basic techniques and then explore the more high-level techniques as well.
To be clear, exploratory testing may not need a prescribed method, but it definitely will require a goal or objective based on which we can use our own skills to get the job done. We will not be creating a fully defined script, but we should create charters. Charters are guiding statements that will help us avoid any kind of confusion. For example, the charters will be used to define aspects like what function has to be tested, who it has to be tested by, and what type of approach has to be used. If you are fairly new to exploratory testing, you could read our quick guide about it.
User Stories
User stories also known as user scenarios can be termed as a description of a user’s workflow when using one of the application’s functions. To put it in simple words, it’s putting yourself in the shoes of the end-user to think of the possible steps the user would have to go through to use the intended feature. The more and more you familiarize yourself with creating such user stories, the better your critical thinking will become and help you in assessing the diverse workflows of various users.
You also have to make sure not to mix app functionalities with the user’s needs. For example, if you are testing an app that can be used to sell used products, you should test it from the perspective of a person listing the product and from the perspective of a person trying to buy that product. Make sure you don’t mix both perspectives just because the app’s features allow you to. Stay focused on each user’s story and not deviate away.
Test New Waters
Testing with the same type of approach you would use doing regression testing will not help you perform good exploratory testing. You would have already tested if the expected results are achieved in a logical way. So make sure you explore new unorthodox ways of doing the same process. By doing so, you will go beyond just confirming the functions. For example, let’s assume yourself to be a user who is trying to book a flight ticket in a hurry. In the heat of the moment, such a user could make a lot of mistakes a regular user may not. So those possibilities could be explored to unearth new bugs.
But it is also crucial to not indulge in highly unlikely scenarios and waste your time. This is where your experience and expertise will come into play. You should be able to assess where possible flaws could be when testing the application. But how can you do that? Let’s find out in our next Exploratory Testing Technique
Mind Maps
Visually represented data will always help you analyze your options better to take better decisions, or even understand the process more easily. So when you use mind maps during exploratory testing, you will be able to identify functionality gaps. Though you will not be able to reap the full benefits overnight, you will be on the right path towards growth. Once you become well worse at using mind maps to find functionality gaps, you would have the potential of identifying issues even before they become bugs. As a leading manual QA testing services provider, we always try to incorporate mind maps and visual aids wherever possible to make our testing more organized and effective.
Improve Your Integration Testing Skills
One skill that will come in very handy when you expand your coverage with exploratory testing is your integration testing skill. Let’s say you are testing an application that maintains inventory and you have used your mind map to find out that there might be an error with the price adjustment in existing stock. So you would have to see if that impacts your billing or just the valuation of the stock. Since you would have to test both the inventory functionality and billing functionality, it can be understood that integration testing is very important.
An End-to-End Approach
You should go beyond just the front-end and bring the back-end processes into the picture as well. There might be third-party integrations that are key to certain functionalities. In that case, check how and where the application saves the data to its database and calls it whenever necessary. APIs are widely used for data feed purposes and since data feeds happen at fixed intervals, target those times and check them for failures. Though this approach requires a lot of knowledge, it is something that you can’t simply afford to miss. So you should enhance your understanding of how an application works by making analyzing it from its core.
Conclusion
Exploratory testing without any doubt does require time for one to master. As one of the best manual testing companies, we believe that these exploratory testing techniques can boost the rate of growth. You shouldn’t just be focused on obtaining experience, you should be focused on learning as much as possible during that time to get a deeper understanding of the entire process. So you have to be on top of your game to prevail as an exploratory tester over time.
by admin | Oct 21, 2021 | Software Testing, Blog, Latest Post |
User Acceptance Testing is one of the last phases of testing in the software development lifecycle that involves the product being used by the end-user to see if it meets the business requirements and if it can handle real-world scenarios. So it goes without saying that intricate planning and disciplined execution are required as it assures the stakeholders that the software is ready for rollout. As one of the best software testing companies in India, we have vast experience when it comes to performing user acceptance testing. So in this User Acceptance Testing Tutorial, we will be explaining the important factors to consider when performing User Acceptance Tests.
Prerequisites
There are various reasons why user acceptance testing happens at the very end. For starters, we can start only when the application code has been fully developed without any major errors. To ensure that there are no major errors, we should have completed unit testing, system testing, integrated testing, and regression testing as well. The only acceptable errors are cosmetic errors as they don’t affect further processing of the application. The business requirements should also be available to design the test cases accurately. Apart from that, the environment for performing UAT should also be ready. Now that we have covered all the prerequisites, let’s explore how to get the job done.
The Stages of User Acceptance Testing
For an easier understanding of how to efficiently execute UAT, we have split the main process into different stages to indicate the purpose.
Strategic Planning
As in every process, we should start by coming up with a plan to perform UAT. To develop the most effective plan for your project, you should analyze the business requirements and define the main objectives of UAT. This is when you will also be defining the exit criteria for UAT. An exit criterion is nothing but the minimum goals that should be achieved when performing the planned User Acceptance Tests. Exit criteria can be defined by combining the system requirements along with user stories.
Designing effective Test Cases
Once the plan is ready, you will have a clear vision as to what has to be achieved for the business. So we will be using that to design test cases that cover all the functions that needed to be tested in real-world scenarios. You also have to be crystal clear about the expected result of each test and define the steps that have to be followed to get that result. This step doesn’t end here as you will also be needed to prepare the required test data required to perform such tests.
Choosing the right team
There are primarily two ways to go about UAT. Either you can have end-users sign up to beta test your application by making it available to them or you can create your own team. You can either execute it using an in-house team or you can also employ outsourcing software testing options. Irrespective of which way you choose, you have to make sure the right people are on the task. If you are choosing people for your beta program, then make sure they are people from the same demographic as the targeted users of the application. Make sure to check their knowledge of the business and ability to detect bugs as well.
User Acceptance Testing
All the groundwork has been laid for you to start with the tests. So in this part of the User Acceptance Testing Tutorial, we will be focusing on how to perform UAT. Make sure to follow all the steps from your test cases without any deviation. If you wish to test something else in a random manner, do it separately and not while performing a particular test case. Once you start, you will also have to create meticulous records of the results, remarks, and so on from each test. Then only it will be possible for the development team to fix all the bugs and issues that were discovered during the process. Once the bugs are fixed, you can rerun those tests to see if the changes have been made without any issues.
Sign-Off
This step is the final step and the name makes it self-explanatory as well. So once you have verified that the application meets all the business requirements, you can indicate to the team that the software is ready for rollout by sending a sign-off email.
General Tip: Using the right pools is also pivotal in yielding the best results. As a leading software testing services company, we use the best tools to make the process more efficient. Test data management can become a nightmare if you don’t monitor and feed the test data in a frequent manner. We use data management tools to feed all the required test data and remove the hassle from this process. Similarly, we also use bug reporting systems to keep track of all the bugs that were discovered and make sure everything is resolved in the most efficient manner.
Conclusion
We hope that our User Acceptance Testing Tutorial has helped you get a clear picture of the UAT process. Based on your specific project demands, you could make some tweaks to this process. Also, make sure to choose the appropriate tools to get the best results.