profile-pic
Vetted Talent

JAGADEESHS

Vetted Talent
Experienced Automation Test Engineer skilled in creating and executing test scripts to ensure software quality and reliability using a range of testing and automation tools.
  • Role

    Senior Consultant

  • Years of Experience

    8.1 years

Skillsets

  • Java - 6.0 Years
  • SQL
  • Automation Testing - 6.0 Years
  • Spring Boot
  • API Testing
  • CI/CD - 5.0 Years
  • BDD Framework
  • Mobile testing
  • Selenium - 6.0 Years
  • TestNG - 6.0 Years
  • Cucumber - 4.0 Years
  • JavaScript - 2.0 Years
  • Manual Testing - 3.0 Years

Vetted For

4Skills
  • Roles & Skills
  • Results
  • Details
  • icon-skill_image
    Senior Test Automation EngineerAI Screening
  • 58%
    icon-arrow-down
  • Skills assessed :Manual Testing, Selenium, Automation Testing, Jenkins
  • Score: 52/90

Professional Summary

8.1Years
  • Aug, 2022 - Present3 yr 9 months

    Senior Test Engineer

    Luxoft Technology
  • Sep, 2021 - Aug, 2022 11 months

    Senior Test Engineer

    Wipro Technology
  • Mar, 2016 - Sep, 20215 yr 6 months

    IT Analyst

    Tata Consultancy Service

Applications & Tools Known

  • icon-tool

    Selenium WebDriver

  • icon-tool

    Eclipse

  • icon-tool

    IntelliJ

  • icon-tool

    Java

  • icon-tool

    Spring Framework

  • icon-tool

    Microsoft SQL

  • icon-tool

    Maven

  • icon-tool

    Cucumber

  • icon-tool

    Azure DevOps

  • icon-tool

    Appium

  • icon-tool

    Jenkins

  • icon-tool

    Testrail

Work History

8.1Years

Senior Test Engineer

Luxoft Technology
Aug, 2022 - Present3 yr 9 months
    • Working as a Test Lead and Automation test Developer.
    • Experience on Trading Application (ION) and automate big data validation.
    • Analyzing the User Stories, setting up, maintaining, and performing test automation frameworks on multiple application platforms.
    • Implementing automation test suite in Java selenium WebDriver with Eclipse/IntelliJ environment.
    • Involving Database testing, End-to-End Testing, Regression testing with Automation.
    • Built automation tool using Spring Framework with Rest API, JavaScript, Microsoft SQL.
    • Have been working on different environment Dev, Test and production. Deployed on prod server.
    • Experience in Junit, TestNG, TestNG annotation for getting customized result of continuous Integration.
    • Built complete automation framework from scratch, Implement and maintain.

Senior Test Engineer

Wipro Technology
Sep, 2021 - Aug, 2022 11 months
    • Have been worked Senior Automation Engineer.
    • Experience in preparing Automation test Scripts with Selenium WebDriver Using JAVA.
    • Experience in API Testing using REST-assured and validating the same.
    • Experience in Testing Techniques (Smoke Testing, Regression Testing, Performance Testing)
    • Experience in Maven builder, BDD framework (Cucumber) using eclipse IDE.
    • Experience in Junit, TestNG, TestNG annotation for getting customized result of continuous Integration.
    • Involved Azure DevOps tool for achieving CI/CD, Repos, Boards.

IT Analyst

Tata Consultancy Service
Mar, 2016 - Sep, 20215 yr 6 months
    • Worked as Manual Testing and Automation Testing using TestNG.
    • Very Good Exposure in Telecom domains
    • Experience SDLC and STLC, Testing methodology.
    • Strong Expertise in Agile-Scrum and Waterfall software testing methodologies.
    • Built 30+ feature and written 2000+ test cases have been automated using Java-Selenium with BDD Framework.

Education

  • Bachelor of Engineering

    Electrical and Electronics Engineering

AI-interview Questions & Answers

Yeah, hi, so this is my first experience on an interview and my name is Jagadish. I'm an automation engineer with eight years of experience. So, I started my career in TCS. I worked there for five years, gaining experience in manual testing, making test plans, test scenarios, and building automation frameworks from scratch. I also have experience in Jenkins and Maven projects. I worked as a test engineer in G and with Cucumber, and then I moved to Wipro, where I worked as a senior test engineer. There, I completely automated the framework, implemented it from the beginning, and did some maintenance of the tool. I have good experience in Microsoft Azure and built a CICD pipeline and continuous deployment process. Everything I implemented there. Currently, I'm working at Luxoft technology, where my client is ANZ, a completely banking sector. For that, I'm implementing trade-related automation, background testing, and web automation. I'm doing end-to-end automation. I have good exposure to different tools. I built a testing automation tool using the Spring Boot framework. I have a good understanding and knowledge of core Java, implementing HOOCS concepts, and automation metrics. My role and responsibility are that I'm the automation tester. I get features from stakeholders or developers, start doing automation metrics, and divide it into what we can automate, what we cannot automate, and the scope of automation. I also maintain manual testing and automation and how we divide this and compensate for the automation that's not in scope. I provide all the information I gather through automation metrics for each feature. I have technically implemented the framework with Cucumber and Jenkins, and I'm currently working on a Codefresh CICD pipeline and an automation tool. I did end-to-end automation for a development testing tool, and I deploy it in the production server. I have a good understanding of how the framework runs and executes on production servers. That's all about my introduction and experience here. Thank you. Thank you very much for giving me this opportunity. We can proceed with the interview. Thank you.

Yeah. Page object model in Selenium for enhancing maintainability, because, in page object model, we are using it for reusability purposes. So once we get a page object model, we start implementing it. We have two different annotations: one is find by and the other is none of these of find by. So if you are having find by, we can directly give the element in that value. For example, at find by in brackets, what element it is. Export is equal to in double quotes, we can maintain the web element, and we can use reusability on that. In page object model, we use page factory as a class. With this, we initialize the page factory class in Java, the constructor. So once we initiate that, we can use it directly without having the driver all the time. Just we are providing that at find by and brackets, we can provide the development, and we can start preparing the test automation. In each and every method, we can use that. We can reuse that annotation because in this find by, we should provide the variable name there itself. It will be mapping to that particular variable. So we can use this particular variable for each class. We can make it as a public element and the variable name, and we can provide this. We can call that class, and we can reuse that variable and web elements in every class. Whatever class we need, we can have that page object model. And in this page object model, we can do the reusability of the code. For example, if you are doing operations like click and send keys and mouse over, we have different types of operations with different types of functionality in Selenium. So we can write the functionality and object. And we can take this web element from that page object, and we can find by element. So with this operation, we can directly provide that functionality and then bracket web element or which one is working, we can implement. So in this, it will be helpful for having the code reusability and enhancing the maintainability and scalability. We can maintain this for automation testing needs. It will be helpful to understand and easily understand the flow of the code. And the page object model is very useful for understanding the code level as well as easy to implement this code and good reliability we can use, and we can use a robust way. So that's why we are using page object model, and I have implemented it in all this test framework. Yeah. That's all.

2 inches. Yes. In Selenium, headless mode, we can execute in Jenkins. So, in Jenkins, we maintain a particular server. It could be a unique server or a Windows server. But we can directly build the code, with the use of GitHub or else. We should build that code using the SureFire plug-in. We can invoke our testing methodology and the help of annotations. If we are using the Cucumber framework, we can have a test runner file. With the help of this test runner file, we can call our feature files and execute them one by one. This process, we can create as a JAR file with the help of Maven JAR, Maven building tool. So if we create a project or complete all the test automation scripts, we can deploy this on the Jenkins server normally. We should use GitHub for deploying our code version controller. In this GitHub, we should implement our process, and we are pushing our code frequently. So once we complete this, we just connect to the Jenkins and build our tool from the GitHub. It will automatically generate a new JAR file, and it will trigger at a particular time or with the help of Maven, using the command 'mvn install'. Once we get triggered at this time or particular pipeline, it will automatically execute on the Jenkins platform. So in the Jenkins platform, we should provide the remote web driver class for using to trigger the web driver. That is the main thing. If you are using it locally, you should provide the web driver. If you are going to run it on a remote site, the remote machine, you should provide that URL of the particular web driver. For example, we should configure a Selenium grid for implementing this. We can have cross-browser testing, or else if you are running it in the background with headless mode, we can use Selenium grid. For that, we should provide the remote web driver. That class name is equal to new RemoteWebDriver(). We should provide the URL of the Selenium WebDriver, and then come on for the Chrome options. We can provide which options mean and this Chrome options, we should provide headless mode. And with this, once we get triggered this automation, once we trigger this JAR file with the use of 'install' command, it will execute on that remote server. With the help of the remote web driver, it will connect to the Selenium web driver, and it will start working on the test automation one by one. So this will be completely executing on the headless mode. So that's why we can implement this automation on the Jenkins side also. And we can build, and it will be easy to understand. We can get the automation working.

Okay, what strategy would you do? For flickiness, test flickiness in Selenium Automation Suite, one second, I will check the meaning of flickiness, okay. In what strategy would you use to minimize the test flickiness in Selenium Automation Suite? Normally, in Selenium Automation Suite, it should not be reusable, it's kind of like okay, in Selenium Automation Tool for the flickiness, we can provide the timer delay, or we have four different timers handling, we are having WebDriver wait, we are having. So in the WebDriver wait class, we can manage implicit wait, that will be different, it is implicit wait we can use for waiting till that element get loaded, and then we can have explicit wait, we can handle this explicit wait with some condition, expected condition. So for that, we should use WebDriver wait class for this, with this wait class, we can provide wait that or which expected time and which expected condition, we should mention that, like that code will be wait dot until in bracket, we should provide expected condition dot which condition it is visibility of element or element found something in this bracket, we should mention that particular web element, so we can use this way for testing flickiness. And also we can have some wait, a time wait like thread, we can use thread dot sleep and we can use for making some delay of the execution for the next step. So this is a strategy we can use for this flickiness. So yeah, that's all.

Mention, describe one method OK, in this part, OK, for this part, actually, in one of my organizations, I have implemented an automation testing suite for a version, for example, version 1.1. So in this 1.1, I have implemented all the test automation and completed all the testing and implementation. Once they released 1.2, what happened was that it was affected by some process, and I got some regression issues. So in that part, if I'm checking this manual, it is working for this automation, but it is not working because of this: the elements get changed. These are the things we can have where manual testing and automation have some differences. Automation is running, but manually, it is not running. And also another scenario, I don't want to think about this sometimes, we can, OK, this question is a bit tricky, yeah, once we can, in case if the web element gets changed or the web element is not synchronized with the DOM page. So for example, in Selenium, sometimes if the wait time gets over and the synchronization does not happen. So because of network issues or server problems or execution issues may happen. But manually, the manual check will be checking locally. So we are connecting to that machine, it will be automatically connected to this, but your internet speed will start executing. But if you're running the automation script on a remote server at that time, if the server gets delayed or if the server is not connecting to any particular network, or sometimes, at that time, the automation testing gets failure. So this same testing will be paused, it may be paused during manual testing. So because of this, they are doing it locally. So that time we should check the connectivity of the internet or the connectivity of the remote server and what issues happen on that. And then once we resolve this connectivity problem, we can execute the automation, and it will be running. So this is a thing we can do. But frequently, I face the same issue if the server gets occupied with more memory, or that affects the speed at the disk space. It happened that the automation execution gets delayed or gets stuck based on that memory issues. So this will not happen in manual testing.

And for effectively managing test data, yes, describe a method for effectively managing test data with an automation Selenium test framework. For managing test data effectively, we can use Cucumber test framework, Selenium Cucumber framework. For this, maintaining test data, we can have it in any cloud-based servers like we can have it in AWS or else we can use any other like Microsoft Azure for maintaining the data because locally we are not maintaining the test report and test data. So for that, for overcoming this, we can go for server-side test data maintenance. So for this, effectively managing the test data is a bit different because for example, we should maintain the test evidence or test data for every release on the particular component or particular feature. So in that case, we should maintain it in JIRA. We can use JIRA for maintaining the test report on test data, test evidence, everything. That is one way we are doing. And also in cloud side or else in server side, for example, I am deploying some testing tool and it will provide the report and it will store on the particular server itself. I should provide the path of the server and it will be executed every day and it will store on the particular path. If a feature gets over and it is not affecting any problem for three months or six months, every quarter, automatically at that point after completing two quarters, all the reports will be closed before six months. So it will start from there, and the last six months of data will be erased. So the last six months of data will start creating the data for the next cycle. We can divide this type of management into quarters. So every quarter we can evaluate the data and we can delete the data from the previous quarter. For example, if we are in Q3, we can delete the Q1 data and maintain the Q2 data. If we are in Q4, we can delete the Q2 data and maintain the Q3 data. This type of management we can do for testing.

Example, this Selenium WebDriver Java code snippet Example, this Selenium WebDriver Java code snippet Example, this Selenium WebDriver Java code snippet Example, this Selenium WebDriver Java code snippet Example, this Selenium WebDriver Java code snippet Example, this Selenium WebDriver Java code snippet Example, this Selenium WebDriver Java code snippet Example, this Selenium WebDriver Java code snippet Example, this Selenium WebDriver Java code snippet Example, this Selenium WebDriver Java code snippet Example, this Selenium WebDriver Java code snippet Example, this Selenium WebDriver Java code snippet

I mean, the tickles, yeah, here we can improve a lot of things so for this response, we are capturing for this particular URL once we get a 200 OK and we are checking the assertion. But we can implement the framework like with the step definition. We can do so using the Cucumber framework. We can provide the feature files, and this feature file will be implemented in the step definition files. In the step definition, we can implement this particular code and check the assertion. And this assertion should be equal to 200. It will be captured that way. Or else, if it is not having 200, we can use try-catch to implement this because if it is getting a failure, it should not go for it. If you are not having a try-catch approach, this will close that entire test automation and it will come out from that. So, to overcome this, we can use try-catch. If the try-catch fails, the catch will be run in the catch, and we can do some re-run things or something. We can have it like for some seconds' options. For example, if it is not 200, it may be 202. So, we can have a partial run or partial get in that catch block and handle it. And also, we can capture it in logs. What is the failure log in here? So, if it is not 200, what will be the message we are getting? We should capture that log. That will be important for automation testing. So, for that analyzing this side, we can have it in the report as well as we can have it in logs also for easy to understand the flow or what will be the failures for this. So, everything we can understand it in logs. So, we can create a log for this or else we can go for try-catch blocks and we can improve with the assertion equals JUnit assert for asserting this process. And we can mention that message also, what will be the failures, in double quotes. We can capture that exception and we can easily understand the exceptions where it gets failures and we can easily understand.

Integrating security testing within Selenium, yeah, security testing, we can do that, we can go for some authentication process, for example, if it is, if you are having security testing, if you are going to security testing, definitely it should be, we can have some security reason, they have encrypted that page or they have encrypted that module, so in that case, what we can do for security testing, normally we can have it in, we can go for, we should, we can try to implement phishing or else we can do penetration testing for doing security testing, we have a lot of tools, we should check the vulnerability of the particular website, so in case if it has any open blocks or any options to enter the website or enter the server, so that should be identified with the help of security testing, that is the main focus of this security testing, so integrating within Selenium, that will be the most important thing here, for example, if security testing is done with Selenium, we should check some authentication or we can try to implement to find out the vulnerability of the particular application, so in case if the user is supporting, that server will support 10 or 100 number of users, so if Selenium is used, we can create 1000 more than a limited number of users, it should not affect security testing, mainly the focus is on that server should not crash, even though if the load gets increased, so that will be the main thing, if without knowledge, without interfering with anything, if the load gets able to increase with the help of any vulnerability or any open pod, it will be, we can check, we can find out with the help of Selenium automation suite, so we can handle this with some authentication and with the help of authentication, we enter and we create a new user and try to apply a wrong password and just change that password with a little fraction, the values and how it will react, so this type of test suite we can do and also we can create multiple users, more than that load, how we can check, how we, the server reacts, so we can evaluate with this security testing in using Selenium.

Yeah, so in leading a team, my team member and I strictly follow the framework we maintain for automation Selenium projects, which should be implemented with an OOPs concept, and we implement the page object model. We use page factory for implementing each locator. So mainly, Selenium is fully connected with web elements and web location locators. So first, we should have separate feature files, for example, if you're using the Cucumber framework or TestNG framework, whatever it is. If it's a feature file for a Cucumber framework, we should create separate feature files. For example, if you're using a feature file, you can create a lot of feature files that will be very encouraging. But within the feature file, it should have limited test scenarios. For example, it will be 10 within the 10 scenarios, we should test all those things and provide a report for that. Because within the feature file, it should not have more than 15 or 20 scenarios. So we should maintain that code standard. And if it's a big website, we should divide it into spots for single pieces of code. We can create each piece of code as a part of single, easy automation. First, we should understand the easy way to easy automation capability. So first, we implement those things with the feature files and implement all those in the page object model and OOPs concept. We should not make it again and again; we should use the code reusability concept here. That's why the memory process will be reduced, and the code execution speed will be increased, or the stability of the execution will be maintained. That's the main reason we should maintain the coding standard. And once we maintain the coding standard, we should have a robust way to maintain that. We can have each and every functionality in separate classes, and we can extend that class and call the object and implement the method, and use that method. So this is a coding approach we can use. Each and every functionality should be created in a separate class and separate features, separate scenarios, and positive and negative test cases should be covered. Everything should be in the test case, which should be ordered with the help of feature files, which should be like 01, 02, 03. We can ensure that the sequence is maintained, and the testing type should be maintained, which should be sanity, regression, and integration. We should divide the testing, maintain the tags, and in that scenario itself, iterate the scenario. These are the standards we should maintain, which is the concept of page factory.

Yes, for this agile development inflation, like, in the past 5 years I have worked in agile methodology. So each and every project, it will be different, but the agile process is very much interesting and easy to complete our tasks within the time frame. That is the main thing in the methodology. We have been following it. So we are normally working with a 2-week sprint. In this 2-week sprint, we should allocate the tasks accordingly. Every day, we have a discussion on the stand-up call about what we did, what issues we faced, and how the team members helped us get resolved, how communication is going, where it gets blocked, and how we can proceed. We discuss these things in the stand-up to avoid getting blocked like we did last time, and we can proceed further. This will be very important in Selenium testing because we can discuss the developer directly and get information about how the locators are defining, how the process will be. If it is getting affected, we can directly ask them and what element they have changed. Based on that, we can easily implement in the test suite for the next deployment. This will not affect the entire sprint. We keep discussing this in each and every stand-up. And before going for the release, we have a retrospective. In the retrospective, we'll discuss about the entire sprint, how it is going, how it was, whether it is facing issues, or if we are doing any other mandatory courses or else if we are learning something. If we learn something, we can discuss in this retrospective, and we can share our knowledge in the retrospective meeting. After completing this retrospective, we can go for test planning. If we are not completing the task in that particular sprint, it will be moved to a backlog, and it will be continued for the next sprint. This is a process, and we maintain it with the test management tool like Jira. It is easy to maintain. It is easy to track what each person is doing, and how the team is allocating the tasks, how the bandwidth of the team is. We should provide points for each and every task. Based on those points, we can check the bandwidth of each person during the sprint. In case if we complete any task during the sprint, we can easily allocate another task for implementation. And also, based on priority, we can implement and prioritize our tasks. In case if a production error is coming, we can prioritize the task and allocate it to the particular team member. This will be a good framework for implementing the test framework and everything. Yeah. Thanks for this opportunity.