org.openqa.selenium.By


com.pearson.adam.pages

--BaseClass.java

--LoginPage.java extends BaseClass

--HomePage.java 

--DashboardPage.java

--StudentSearchPage.java

--StudentDetailsPage.java


com.pearson.adam.testscripts

--Login_TC1.java extends LoginPag

--StudentSearch_TC2.java


TestData

TestReports

pom.xml

TestNG.xml


*********************************************************


attending grooming sessions, understanding user stories

identifying if there are any gaps in requirements and making them fixed

preparing test cases and parallelly preparing test scripts 

for previous sprint and also updating regression test scripts

if there are any changes in requiremnts then reviewing those test cases and scripts

executing test cases and running test scripts.. raising the bugs and tracking them until they got fixed.

Aprat from manual and automationi am having good experience in DB testing like validating table structure 

for data type, data width, primary keys ,foreign keys, constraints, null not null values comparing with UI 

Apart from that my day to day activities includes attending sprint planning, daily scrum call and sprint 

review meeting,demoing user stories.monitoring smoke suites and regression suites in CT pipleline.. 

if there are any failures fixing the issues.


DB Migration 


pre migration - data backup, data requirements in both db's, mapping the data in source and target db's

-coulum names(Data of Birth, DOB), column data(Male, M), null values in both source and target

consistency between UI and DB (extra columns, removed columns)


Migration - 


post migration - mapping between source and target


SQL with CASE


SELECT OrderID, Quantity,

CASE

    WHEN Quantity > 30 THEN 'The quantity is greater than 30'

    WHEN Quantity = 30 THEN 'The quantity is 30'

    ELSE 'The quantity is under 30'

END AS QuantityText

FROM OrderDetails;


Comparing all data in both tables and to find extra and redundant rows - using EXCEPT and MINUS


*********************************************************************

how to validate row by row from multiple tables

how to query if there are multiple values seperated by comma


*********************************************************************

     

Set<String> AllWindows = driver.getWindowHandles();

String parent = (String)AllWindows.toArray[0];

String child = (String)AllWindows.toArray[1];


driver.switchTo(child);


Iterator<String> Itr = allwindows.iterator();

While(Itr.hasNext())

{

string child_window=Itr.Next();

if(!parent.equals(child_window))

{

driver.switchTo().window(child_window);

System.out.println(driver.switchTo().window(child_window).getTitle();

driver.close();

}

************************************************

WinWaitActivate("Authentication Required");

send({"admin"}{TAB}{"admin"}{ENTER})

************************************************


public class DataProvider()

{

@DataProvider(name="login_data")

public Object[][] LoginData()

{

Object[][] logindata = new Object[2][2]

logindata[0][0]="username1";

loingdata[0][1]="pwd1";

---


return logindata;

}


@Test(dataProvider="login_data")

public void login(String username, String pwd)

{

System.setProperty

WebDriver driver = new ChromeDriver()


driver.fe(By.xapth("")).sendKeys(uname);

driver.fe(By.xapth("")).sendKeys(pwd);

}


********************************************


Parallel testing


<suite name = "Parallel Test Suite">

  <test name = "Parallel Tests" parallel = "tests" thread-count=5>

    <parameter = "browser" value = "firefox">

    <parameter = "version" value = "/">

    <parameter = "platform" value = ""/>

      <classes>

<class name = "Parallel Test"/>

      </classes>

     </test>

    </suite>


******************************************


executor.executeScript("window.scrollTo(0,document.body.scrollHeight)");


************************************************


FileInputStream fis=new FileInputStream(new File("C:\\demo\\student.xls"));  


XSSFWorkbook wb=new XSSFWorkbook(fis);  


XSSFSheet sheet=wb.getSheetAt(0);  


int lastRow = sheet1.getLastRowNum(); --poi


//int rows = sheet1.getRows(); -- jxl


----------writing


for(int i=0; i<=lastRow; i++){

Row row = sheet1.getRow(i);

Cell cell = row.createCell(2);

cell.setCellValue("WriteintoExcel");

}

FileOutputStream fos = new FileOutputStream(path);

wb.write(fos);

fos.close();

}


---------reading 


for(int i=0; i<=lastRow; i++){

Row row = sheet.getRow(i);

Cell cell = row.getCell(i);

String val = cell.getStringCellValue();

System.out.println(val);


//System.out.print(sheet.getRow(i).getCell(j).getStringCellValue() +",") -- poi

//System.out.println(sheet.getCell(i,j).getContents()) -- jxl


}

------------------------------------------------------


Checked Exception


IOException

ClassNotFoundException

FileNotFoundException

InterruptedException


Unchecked Exceptions


ArithmeticException

NullPointerException - when trying to use a variable or method that doesn't point to a object

ArrayIndexOutOfBoundException


Selenium Exceptions


NoSuchElementException

NoSuchFrameException

NoSuchWindowException

NoAlertPresentException

SessionNotFoundException

StaleElementReferenceException

ElementNotVisibleException

---------------------------------------------------------------------------------

Scanner in = new Scanner(System.in);

S.O.P.("Enter the String");

String s = in.NextLine();

----------------------------------------------------

System.out.println("enter the string");

Scanner in = new Scanner(System.in);

String s = in.nextLine();

chars[] Chars = s.toCharArray();

HashMap<Character,Integer> map = new HashMap<Character, Integer>();

for(char ch:Chars)

{

if(map.containKey(ch)

{

int val = map.get(ch);

map.put(ch, val+1);

}

else

map.put(ch,1);


//difference between hash map and hashtable

-----------------------------------------------------

select top 10 * from emp; -- SQL Server

select * from emp limit 10; -- MySQL

select * from emp fetch first 10 rows only; .. Oracle SQL Developer

******************************************************************

Celsiortech

String str = "Vijayendra sandeep"

HashMap<Character,Integer> = new HashMap<Character, Interger>()

Char[] chars = str.toCharArray();

for(char ch:chars)

{

if(ch='e')

{

if (map.containsKey(ch)

{

map.get(ch);

int val = val+1;

map.put(ch,val)

}

else

{

map.put(ch,1)

}

}

if(map.getValue()==1)

{


}

System.out.println(map);


String str = "S$@$3%";

str.replace([@,#,$,%&],'']

system.out.println(str)


name - empty password - value -> Submit

name - value password - emp-. Submit

name - empty password - empty -> submit

name - value password - value -> submit


session timeout

multiple sessions

number of times to accept wrong credentials

password reset

8 cases

Cross-Site Scripting (XSS)  - is a type of web security vulnerability that allows an attacker to inject malicious scripts (usually JavaScript) into web pages viewed by other users. To steal cookies, session tokens, user credentials, or perform actions on behalf of the user without their consent.

json path

indexing (clustered and unclustered)

how to hide sensitive data in code?

************************************************************

Value Momentum

How you will prepare KT plan

What are the challenges you faced? (Technical and People manaement)

How to handle a resource who not completed his daily task repeatedly

How to find the broken links and how to ensure all links are clickable

Automation framework

lambda expression (program to add some values to array and print them)

How docker(containers), kubernetes are used in selenium project?

How cloud tools (sauce labs, browser stack) are used in selenium project?

dependency vs plugin

dependency injection

***********************************************************

Tech Stars

How you will validate web table

How to ensure a drop down not containing any duplicate values

List<WebElement> options = dropdown.getOptions();

add all those values hashset and then compare the size of hash set with the size of array list

how to find number of elements in array (length property) and arraylist (size method), jsonarray - property method

Give example for dynamic web element and write xpath (ajax elements - loading of elements without page refresh) 

xpath axes

handling dynamic elements - diff waits, selectors, jse, page refresh

Different Exceptions

When you will get below exceptions

element not found - wrong locator, inside frame

element not visible - dependent fields

What are the DB validations - Top 4 th salaray using joins (emp id and sal in diff tables)

testng priority = -1, configuring priorities

how to execute only failed tests

what is the purpose of constructor


last used java (jdk) version - 11

latest version - 23

current stable version - 21


better to install jdk rather than jre

x64 msi or exe is capable than x86

latest selenium stable version - 4.28.1

latest testng stable version - 7.10.2

**********************************************************************

Experience flow

merge query - The MERGE statement in SQL is used to combine INSERT, UPDATE, and DELETE operations into a single query — depending on whether a match is found between two tables.

It's often used for synchronizing data between source and target tables.

MERGE INTO employees_target AS target

USING employees_source AS source

ON source.emp_id = target.emp_id


WHEN MATCHED THEN

    UPDATE SET target.emp_name = source.emp_name,

               target.salary = source.salary


WHEN NOT MATCHED THEN

    INSERT (emp_id, emp_name, salary)

    VALUES (new.emp_id, new.emp_name, new.salary);


recursive queries (Similar to self join)

mysql collation - Defines the rules for comparing characters within that character set

heap table - A Heap Table is a table that does not have a clustered index.

hash table - used internally by the database engine for performance optimization, especially during joins, aggregations, and index lookups.

--query to fetch transactions count and year by year growth

Date Transaction ID Application Area


Select Count(Transaction ID)

group by Year(Date) as Year

order by Year 

*********************************************************************

Infosys

how you will create api request?

what is json path parametre?

DOM shadow element

##############################################################################


Q. Can you provide an example of a complex automation test case you have designed and executed?

A.

Certainly! In my previous role as a Senior Technical Lead, I was responsible for designing and executing a complex automation test case for a critical software release. The test case involved testing the integration of multiple modules using Selenium automation, ensuring compatibility across different browsers and devices. I also incorporated database testing to validate data integrity and API testing to check communication between various components. By meticulously planning and executing this test case, we were able to identify and resolve potential issues before the release, ensuring a seamless user experience.


Q. How have your skills in Manual Testing, Selenium Automation, Database Testing, and API Testing contributed to your success in previous roles?

A.

My expertise in Manual Testing has allowed me to thoroughly understand the software requirements and create comprehensive test cases. With Selenium Automation, I have automated repetitive tasks, saving time and improving efficiency. Database Testing has enabled me to ensure data accuracy and integrity within the system. Additionally, my proficiency in API Testing has helped me validate the communication between different software components, ensuring seamless integration. By leveraging these skills effectively, I have consistently delivered high-quality software products in my previous roles.


Q. How do you stay updated with the latest trends and technologies in the software industry, and how do you apply them in your work?

A.

As a QA Automation Engineer, staying updated with the latest trends and technologies is crucial to delivering cutting-edge solutions. I regularly attend industry conferences, webinars, and workshops to stay informed about emerging tools and practices. I also actively participate in online forums and communities to exchange knowledge with industry experts. When it comes to applying these trends in my work, I conduct thorough research and feasibility studies before implementing any new technology. By staying proactive and adaptable, I ensure that my work remains at the forefront of industry standards.

##################################################################################

WinWire Technologies

max of average salary

select e.deptId, max(salInfo.asal) from

(select avg(e.sal) asal from emp e group by Dept Id) as salInfo

last 5 reocords

select top 5 * from

(select * from Dept order DeptId desc)

scd - Slowly changing dimension

give some examples of transformations

customer placed order in every month

select c.customer name from customer c inner join order o 

c.order id = o.order id and month(order date) in [1-12]

Bugs you found, Challenges you faced

browsers - data inconsistent between browsers

double clicks - same record created multiple times

data locking - different users are able to book the appointment using same slot

###################################################################################

LaunchCG


soft assert hard assert in selenium

how many ways we can create threads

-runnable interface and Thread class

garbage collection - finalize(), system.gc()

how many ways we can catch exception 

difference between error and exception


final, finally vs finalize

final - To declare constants(vairable), prevent inheritance (class), or stop method overriding(method)

finally - A block that always executes after a try block, regardless of whether an exception was thrown

finalize - Called by the Garbage Collector just before destroying the object.


What are the challenges in automation

how do you manage the resource for skipping the deliverables

character count program

xpath

changes in selenium4

selenium script to navigate 2nd tab and close it

git commands, how to remove a file from staging

how to run scripts in jenkins pipeline?

why conflicts will occur

mvn commands to execute the test scripts

mvn test

mvn surefire:test

mvn test -DsuiteXmlFile=testng.xml

###################################################################################

Wipro

Dry Run

A dry run in Selenium (or any testing framework) refers to executing test scripts without actually running the browser or interacting with the web application. It is mainly used to:

  • Check syntax errors

  • Verify test configuration

  • Ensure all test steps are properly defined

  • Validate test structure or test discovery

glue option in BDD

glue option is used to tell Cucumber where to find the step definitions — i.e., the Java methods that match the steps written in your .feature files.

It’s used in the @CucumberOptions annotation in the runner class.

@RunWith(Cucumber.class)

@CucumberOptions(

    features = "src/test/resources/features",

    glue = "com.project.stepdefinitions"

)

Invocation Count - In TestNG, the invocationCount attribute is used to run the same test method multiple times, automatically.

write xpath for non-english text

#################################################################################

Deloitte

How to create Jenkins job for multiple environments?

How to call an element from page class to test class

###############################################################################

TCS

which method used to find the shadow element?

// Step 1: Get shadow host element

        WebElement shadowHost = driver.findElement

                        (By.tagName("book-app"));


        // Step 2: Use JavaScript to access shadow root

        JavascriptExecutor js = (JavascriptExecutor) driver;

        WebElement shadowRoot = (WebElement) js.executeScript

                ("return arguments[0].shadowRoot", shadowHost);

        // Step 3: Access element inside shadow root

        WebElement searchInput = shadowRoot.findElement

                    (By.cssSelector("app-header app-toolbar input#input"));


what is the architecture of selenium 4?

1. Selenium Client (Bindings)
  • Libraries in Java, Python, C#, JavaScript, Ruby.

  • Test scripts are written here.

  • Provides WebDriver API to interact with browsers.

2. WebDriver (W3C-compliant)
  • In Selenium 4, all communication between Selenium and browsers follows the W3C WebDriver standard.

  • This eliminates the need for "JSON Wire Protocol" used in Selenium 3.

3. Browser-Specific Drivers
  • Translate Selenium commands into browser-native commands:

    • ChromeDriver (for Chrome)

    • GeckoDriver (for Firefox)

    • EdgeDriver (for Edge)

  • These drivers are responsible for browser communication via the WebDriver Protocol.

4. Browser

  • The real browser that performs actions like clicking, typing, navigating, etc.

How will you implement distributed testing using selenium?

1. Using Selenium Grid (Most Common)

2. Using Docker with Selenium Grid

3. Using Cloud-Based Platforms (e.g., BrowserStack, SauceLabs)

other than testNG reports, what other reports you used? - extent, allure

write a program to sort the digits of number?

write a program to handle slider element?

WebElement sliderHandle = driver.findElement(By.xpath("//div[@id='slider']/span"));

        // Create Actions object

        Actions actions = new Actions(driver);

        // Move the slider handle to the right by 100 pixels

        actions.clickAndHold(sliderHandle).moveByOffset(100, 0).release().perform();

How will you switch from one branch to another branch using git?

git switch feature/login-page

git switch -c <branch-name> origin/<branch-name>  

// If the branch doesn't exist locally but exists remotely:

git checkout <branch-name>

Before switching branches make sure

Make sure your working directory is clean (no uncommitted changes), or Git will prevent the switch

git status

git stash  -- to stash uncommitted changes temporarily

git switch <branch-name>

git stash pop

how will you access remote repository using git?

Check Existing Remotes --- git remote -v

Add a Remote Repository--- git remote add origin https://github.com/username

                               /repo.git   - origin is the default remote name.

Fetch Changes From Remote (Without Merging) --- git fetch origin

    Fetches changes from origin remote’s main branch and merges into local main.

Pull Changes (Fetch + Merge) --- git pull origin main

Push Local Changes to Remote --- git push origin main

how will you maintain parameters in pom.xml ?

Define Parameters Using <properties>

 <properties>

    <java.version>17</java.version>

    <selenium.version>4.20.0</selenium.version>

    <maven.compiler.source>${java.version}</maven.compiler.source>

    <maven.compiler.target>${java.version}</maven.compiler.target>

  </properties>

what are the elements available in pom.xml ?

<project> -  root element of the pom file

<modelVersion> - specifies version of the POM model (usually 4.0.0)

<groupId>,<artifactId>,<versionId> - to specify the dependencies

<packaging> - specifies packaging type

<name>, <description>, <url> - optional meta data about the project

what is the structure of dependency in pom.xml?

how will you write api test cases?

################################################################################