Senior Quality Engineer
US Technologies (UST Global)Quality Engineer
Persistent Systems LtdSelenium IDE
Selenium WebDriver
JMeter
Jira
Bugzilla
Maven
Jenkins
Postman
SoapUI
Eclipse
IntelliJ
Visual studio
Azure
Microsoft SQL Server
GitHub
Yeah. So I have around, uh, 7 years of experience with more than 6.5 years of experience in, uh, software testing. So, uh, throughout my career, I have done both manual as well as automation testing. Uh, in automation, I have mostly worked with Selenium, with Java, with BDD as well as, uh, test engine framework, uh, integrated with Maven and Jenkins. And for version control, I have used Git. For bug reco or, uh, reporting, I have used, uh, Jira, uh, for manual testing. Uh, 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, uh, JMeter for, uh, a year to do the performance testing. And, uh, in cloud, I have worked with, uh, Azure. And, uh, for CICD, uh, like, uh, we have used Jenkins. So these are the mostly tools and technologies that I have worked with, and I have worked with the general team.
So, uh, so if we have a legacy product and there are manual test cases and all written for those, so first approach would be, uh, to automate with the simpler test cases, like the login scenarios and all to cover, uh, the sanity test or the smoke test, uh, in, uh, through, uh, Selenium. And after that, I will be focusing more on the, uh, module part, like, uh, as a, uh, business requirement to which modules or which functionality is more important or, like, where the bugs can be more, uh, seen or the bug bugs are more, uh, reproduced. So those, uh, scenarios, I will be focusing on automating first, and then, uh, we'll be covering the rest of the end to end scenarios and the regression scenarios. So yeah.
So, uh, if we have any issues, uh, with JMeter in the performance testing, uh, so using automation, what I will do is, like, uh, if I know that, uh, in performance testing, say, for few users, uh, I'm getting errors and all. So I will, uh, use those users, uh, in from my automation test and see, like, if at exactly what point, uh, like, we are getting errors. Because using g meter, uh, it's not that thorough issues that we get. The logs, we do not, uh, get. But, uh, using our automation testing, we, uh, can, uh, find the root cause of the errors.
Uh, okay. So to automate, uh, some scenarios related to the database, uh, in CICD. So, uh, so, uh, even, like, uh, using, uh, Selenium, we can configure the database and perform some of the database related scenarios. And since we can, uh, configure our, uh, uh, uh, Selenium code in Azure, uh, as a CICD process, we can just run the databases related, uh, scenarios through, uh, through Azure DevOps. So all we need to, uh, do is, like, create a script for that, and, uh, those will be integrated in the Azure DevOps. And there, uh, we will be, uh, running our database related, uh, validations, and, uh, thus, we can get the logs and the results through that.
Okay. So, uh, so in selenium, like, uh, we do, uh, uh, get issues related mostly related to the locators. And, uh, so what we can do is, like, we can, uh, add, uh, timers. So, like, we have implicit wait, explicit wait. So we can add the waits in our scripts so that, uh, those kind of issues, we, uh, we do not get. And uh, we also will be separating our, uh, locators from the test so that if there is any issues with the locators or any changes, we can direct make those changes there.
Okay. So, uh, okay. So if we need to use, uh, data driven for data driven test, uh, in Selenium, so, normally, like, we get the date data from, uh, out outer files, like, maybe Excel file or CSV file. So, uh, we normally get those data, and then we integrate it, uh, in Selenium using, uh, Apache POI. So if we want to validate, uh, dynamic content, so what we can do is there are few things. Like, first of all, uh, we can, uh, write the locators in such a way, like, uh, using the XPath features. Like, uh, maybe we can have, uh, something that is static. And, uh, using XPath, we can navigate, uh, to the parent and child node. So using XPath, we can, uh, write the locators for such kind of elements. And apart from that, we can also use JavaScript Executor. So through that, also, we can manage, uh, dynamic content.
Okay. So, uh, uh, here, we are checking that if element is visible at the later stage. So what it will do is, uh, like, when we are assigning the web element, uh, by providing the ID, so at that stage itself, we should be able to check that the element is visible or not. Uh, because at the, uh, first line itself, like, where we have, uh, given, uh, the locator, so there itself, we will get the error, and it will not move, uh, to the next line.
Okay. So, uh, we have a logic for greater than 18 and less than 18. But, uh, like, what if the age is 18? For those for that scenario, we have not covered, uh, anything in this code. So there should be one more case. Maybe uh, a else statement or one more case when the age is 18, then what should happen?
So, uh, using Selenium Grid, we can, uh, execute, uh, parallel automated test cases. Uh, so we have, uh, stubs and, uh, so, basically, it works like client server, and we can just provide, like, if we want to run those tests in different browsers or different machines, like, maybe, uh, we want to run it Linux as well and Windows as well. So all those can be configured using the Selenium grid. And, uh, once we are done with that, uh, so, um, in Azure DevOps, we just need to write a script, like, uh, since, uh, in Jenkins also, we have those files. So, um, similarly, in Azure DevOps, uh, we can have YAML files, and there, we can write the scripts, um, to, integrate our automated scripts with Azure DevOps.
So, um, software design pattern, which is like, normally, it's not used. I think, uh, it could be streams API. So, like, uh, so that is, like, not much commonly used, but it, uh, does, uh, like, artwork can be reduced, uh, using, uh, streams API. So that is, like, one of the things that can be done.
So, uh, uh, to inject the realistic data in Selenium, what we can do is, uh, there are 2 ways. Like, if the APIs and everything is integrated, we can just call those APIs, uh, using Selenium, and, uh, we can get the results in a file. And from that file, using Apache POI, we can uh, use those data in Selenium. So, like, that is one of the way we can achieve this. Or else, whenever we are, uh, like, uh, performing anything using our locators and all, So there also, we do get option to download a file or, uh, we can, uh, get the data, uh, like, while running the, uh, script itself. So using get text method. So, uh, you we can use those methods and, uh, store it in variables, and then we can directly use those data in the Selenium scripts, uh, dynamically.