
Senior Quality Engineer
US Technologies (UST Global)Quality Engineer
Persistent Systems Ltd
Selenium IDE

Selenium WebDriver

JMeter
Jira

Bugzilla

Maven
.png)
Jenkins

Postman

SoapUI

Eclipse

IntelliJ

Visual studio
Azure

Microsoft SQL Server

GitHub
So I have around 7 years of experience with more than 6.5 years of experience in software testing. So throughout my career, I have done both manual and automation testing. In automation, I have mostly worked with Selenium, Java, BDD as well as test engine framework, integrated with Maven and Jenkins. And for version control, I have used Git. For bug reporting, I have used Jira for manual testing. I also have experience in API testing for more than 3 years and database testing for around 2 years in MySQL. Other than that, I have also worked with JMeter for a year to do performance testing. And in cloud, I have worked with Azure. And for CICD, we have used Jenkins. So these are the most tools and technologies that I have worked with, and I have worked with a general team.
So, if we have a legacy product with manual test cases written for it, our first approach would be to automate the simpler test cases, such as the login scenarios, to cover the sanity test or smoke test through Selenium. After that, I will focus more on the module part, like a business requirement, to determine which modules or functionality are more important or where bugs can be more seen or reproduced. Those scenarios, I will focus on automating first, and then we'll cover the rest of the end-to-end scenarios and regression scenarios.
So, if we have any issues with JMeter in the performance testing, using automation, what I would do is, like, if I know that in performance testing, for a few users, I'm getting errors. So, I will use those users in my automation test and see if at exactly what point we are getting errors. Because using JMeter, it's not thorough enough to identify all issues that we get. The logs, we do not get. But using our automation testing, we can find the root cause of the errors.
Okay. So to automate some scenarios related to the database in CICD. So, even like using Selenium, we can configure the database and perform some database related scenarios. And since we can configure our Selenium code in Azure as a CICD process, we can just run the database related scenarios through Azure DevOps. So all we need to do is create a script for that, and those will be integrated in Azure DevOps. And there, we will be running our database related validations, and thus we can get the logs and the results through that.
In Selenium, like, we do get issues mostly related to the locators. And so what we can do is, we can add timers. So, we have implicit wait, explicit wait. We can add the waits in our scripts so that those kind of issues we do not get. And we also will be separating our locators from the test so that if there is any issue with the locators or any changes, we can directly make those changes there.
So, okay. So if we need to use data-driven for data-driven test in Selenium, so normally we get the data from outer files, like maybe an Excel file or a CSV file. We normally get those data and then we integrate it in Selenium using Apache POI. So if we want to validate dynamic content, there are a few things we can do. Like, first of all, we can write the locators in such a way using the XPath features. Maybe we can have something that is static. And using XPath, we can navigate to the parent and child node. So using XPath, we can write the locators for such kind of elements. And apart from that, we can also use the JavaScript Executor. So through that, also we can manage dynamic content.
So, here we are checking if an element is visible at a later stage. What it will do is, like, when we are assigning the web element by providing the ID, we should be able to check if the element is visible or not at that stage itself. Because at the first line itself, where we have given the locator, we will get the error and it will not move to the next line.
We have a logic for ages greater than 18 and less than 18. But, like, what if the age is 18? For that scenario, we have not covered anything in this code. So there should be one more case. Maybe an else statement or one more case when the age is 18, then what should happen?
So, using Selenium Grid, we can execute parallel automated test cases. We have stubs and it works like a client-server, and we can provide the configuration to run those tests in different browsers or different machines, like maybe we want to run it on Linux as well and Windows as well. All those can be configured using the Selenium Grid. Once we're done with that, in Azure DevOps, we just need to write a script, like since in Jenkins also we have those files. So, similarly, in Azure DevOps, we can have YAML files, and there we can write the scripts to integrate our automated scripts with Azure DevOps.
Software design pattern, which is normally not used. I think it could be the streams API. So, that is not commonly used, but it does reduce artwork using the streams API. That is one of the things that can be done.
To inject realistic data in Selenium, there are two ways. Like, if the APIs and everything is integrated, we can just call those APIs using Selenium, and we can get the results in a file. And from that file, using Apache POI, we can use those data in Selenium. So, like, that is one of the ways we can achieve this. Or else, whenever we are performing anything using our locators and all, there is also an option to download a file or we can get the data while running the script itself. So, using the get text method, you can use those methods and store it in variables, and then you can directly use those data in the Selenium scripts dynamically.