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?
-
Libraries in Java, Python, C#, JavaScript, Ruby.
-
Test scripts are written here.
-
Provides WebDriver API to interact with browsers.
-
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.
-
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.
-
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)
what is the structure of dependency in pom.xml?
how will you write api test cases?
################################################################################