Automation Testing Interview Question
Automation Testing Interview Question
com
+918130877931
Automation
Testing Real Time
Interview
Questions
hr@kasperanalytics.com
kasper-analytics
kasperanalytics.com
+918130877931
Hi, my name is Pankaj. I started my career as a Testing Executive 4.5 years back
with Infosys currently I am working as Test Engineer.
For defect management & test case management we have used JIRA, TEST RAIL &
HP ALM. I have worked on tools like BrowseStack, DeviceAnywhere, Toadsql,
First thing I do after login in my system. I check the active sprint in Jira for our
project code. There I can see my assigned open tasks. After that I will check my
mail if there is any important mail I need to take action on. Then we have our daily
scrum meeting where we used to tell our previous day actions what we did, what
we are planning for today and if we have any blocker to discuss. Product owner
and scrum master help us to resolve that blocker. After that I need to take the
pending task and do needed action whether creating test case, Execution, Defect
retesting if any.
hr@kasperanalytics.com
kasper-analytics
kasperanalytics.com
+918130877931
3. Do you have created framework from scratch, or you have maintained that?
I have not created Framework from scratch by myself but yes, I was part of
framework creation and created some part of it.
5. Can you tell me Oops concepts and relate it with your Framework?
hr@kasperanalytics.com
kasper-analytics
kasperanalytics.com
+918130877931
Method Overloading: When there are multiple methods with same name but
different parameters then these methods are said to be overloaded. Methods can
be overloaded by change in number of arguments or/and change in type of
arguments. In Selenium Automation, Implicit wait is an example of Method
Overloading. In Implicit wait we use different time stamps such as SECONDS,
MINUTES, HOURS etc. –
Method Overriding: It occurs when a derived class has a definition for one of the
member functions of the base class. That base function is said to be overridden.
In Selenium Automation, Method Overriding can be achieved by overriding any
WebDriver method. For example, we can override the findElement method In
assertion we have used overload because in assertion we used to like
asset.true(actual, expected) and second time we can use same
assert.true(actual, expected, message).
hr@kasperanalytics.com
kasper-analytics
kasperanalytics.com
+918130877931
6. How can you use interface and how it is different from Abstract class?
Abstract class may have Abstract and concrete methods, and there is not any
compulsion in adding abstract method in abstract class. But in Interface, we do
have only abstract methods and we don’t need to write abstract keyword in
Interface this is by default public and abstract.
Static means it is at class level not at instance level, we have static method, static
variable & static inner class. When we have any variable as static so it will remain
same for all the instance of our classes, and static/Private/Final methods can’t be
over-ridden like if we have initialized any method as Static so we cannot override
it in any child class.
Yes we can, but we got one warning that you need to access it via Direct or By
class name.
11. What do you mean by wrapper class and how will you do data conversion?
Wrapper class in java are used for data conversion. In data conversion if user
wants to convert Int to string, String to int, Boolean, double then we use Wrapper
class.
hr@kasperanalytics.com
kasper-analytics
kasperanalytics.com
+918130877931
13. What do you mean by Call by Value & Call by Reference in Java?
Call by value means suppose we have created one sum method with input
parameter int a, int b. So while calling the creating the object and running we
provide values that is know as call by value.
Exception is like any interruption in our normal flow. Like if we are running anything
and we got issues in our script this is we called exception,
we have 2 types of exception Run Time & Compile Time.(checked & Unchecked
exceptions)
15. Can you tell me about difference between Throw and Throws keyword?
Throw is a keyword used inside a body of function. And Throws used while
initializing any method. By using Throw we can throw only one exception while for
Throws we can declare multiple exceptions which might occur in that particular
function.
Java throw keyword is used to explicitly throw an exception. Java throws keyword
is used to declare an exception..
hr@kasperanalytics.com
kasper-analytics
kasperanalytics.com
+918130877931
17. Which locator you are using in your framework and why?
Mostly we used ID and Xpath because Id is the fastest and unique one and after
that we prefer Xpath. Anyways we have other locators as well like css, class name,
tag name, Link text, Partial Link text.
findelement will give the first appearance of that element which matches our
locator, whereas findelements will give us list of all the elements which is present
over the webpage and matching our locator.
19. Can you tell me how you will handle multiple window in selenium?
For More :
https://www.browserstack.com/guide/handle-multiple-win dows-in-selenium
First we will check what all windows are open by using driver.getwindowhandles,
to get set of opened windows , then I use iterator to iterate over each of the pages
and inside for loop will check like Current URL matches with the excepted page, if
match then switch to that window by using driver.switchTo(Destination window) -
> to return back to main parent window use driver.defaultwindow
hr@kasperanalytics.com
kasper-analytics
kasperanalytics.com
+918130877931
Implicit wait applies for all the elements and all the tests like if we give 10 sec of
implicit wait it will wait for 10 sec for each element before giving nosuchelement
exceptions.
While Explicit wait can be applied for any particular step for which you want extra
wait time so we can use explicit wait.
We can use mix of both waits to depend on the situation of the step
Link : https://www.guru99.com/implicit-explicit-waits-selenium.html
NoSuchElementException
NoSuchWindowException
NoSuchframeException
StaleElementReferenceException
TimeoutException.
Link :
https://www.guru99.com/exception-handling-seleniu m.html
User Defined Exception or custom exception is creating your own exception class
and throws that exception using 'throw' keyword.
... The keyword “throw” is used to create a new Exception and throw it to the catch
block
hr@kasperanalytics.com
kasper-analytics
kasperanalytics.com
+918130877931
Assert is like verification where we check like expected thing and actual thing are
same or not.
We have used Hard assert and Soft assert, while applying Hard assert if we found
any glitch in expected and actual then it will through exception and move to next
@test
while Soft assert it won’t give exception and move to next step of that test. And to
get all the exceptions in console we need to write at the end assert.all().
@BeforeSuite
@BeforeTest
@BeforeClass
@BeforeMethod
@Test
@AfterMethod
@AfterClass
@AfterTest
@AfterSuite
hr@kasperanalytics.com
kasper-analytics
kasperanalytics.com
+918130877931
27. Do you heard about Priority in TestNg can we set -ve priority?
then 1.
And if we have any @test which is not having any priority set, then in that case it
will search via alphabetic order whichever comes first and execute test
respectively.
TestNG is advanced version of Junit only. It is mainly used by Dev/QA for maintain
the code easily and for unit testing.
It provides lots of benefits to us like we can create a suite and we can write all the
required Tc in one go only using that suite. We can group our Tc we can set
priority we can run our tc in parallel mode, We can generate good reports via
TestNG.
Links :
https://www.inviul.com/run-same-test-multiple-times/
hr@kasperanalytics.com
kasper-analytics
kasperanalytics.com
+918130877931
30. Do you work in cucumber, can you tell me what all files required in
cucumber?
In cucumber we have Feature file, Step Definition file and Test Runner file.
In feature file we used to write scenario in gherkin language which is most like in
plain English language. Here we use some of the keywords like feature, scenario,
scenario outline, given, when, then, and, example, background keywords for
writing our test scenarios steps. In Step Definition file we write mapping code for
all the scenario of feature file. In test Runner file we provide the address of the
feature file, step definition file, and all-important Tags, Plugin, Listeners in that.
31. Have you used GIT in your project can you explain about it?
Yes I have used GIT, It is a version control tool. Where we can maintain our central
repo. we used to manage our code via GIT only.
We use Git to maintain our project in our local system. So, if someone like to work
on that project I need to send complete update copy to him and after that he can
work on that.
There are chances that single project is handled by multiple teams across the
globe. So, it will be difficult if we won’t use GIT.
32. Can you give me some GIT commands which you used on daily basis?
Git status- which shows status of all the files,if we have some files which is not yet
added to our repo so it will give us untracked file.
After that we can use GIT add command after adding it will added to particular
index and we can commit this file using Git Commit -m(Message) we can
commit this untracked file. Also we have Git Merge, Git Push, Git Pull, Git checkout
in etc
hr@kasperanalytics.com
kasper-analytics
kasperanalytics.com
+918130877931
As we are only 2 tester working on this project, if we have any merge conflict I
used to pull all the latest file/scripts to my local system.
Then I will analyze the difference between that particular file and merge file. After
that I will check with my team member whether all his imp things are covered
then I will add my steps and push the script to the central repo.
34. You have worked in Jenkins can you tell me how you have created jobs in
Jenkins?
We have separate Dev-Ops Team to create Jenkins jobs at broad level but we
also have access to jenkins, so we have created jobs for our internal purpose.
For creating any job we have click on create new job->inside that give name of
your job->select freestyle project->then add. Beside that we can provide
description of our project and in source code management we can choose Git->
provide repo url ->after that provide some schedule if you want to run the job on
any specific schedule time.-> select window batch command-file location-save-
click on build now for running. After triggering we can check log in console
Smoke and Sanity we can think like a same thing because both are checking
important functionality.
Smoke testing is done on first stable build from developer to check like whether it
is stable enough to move further or not.
While Sanity testing is subset of regression test which we perform on stable build
and here also we used to check all the imp functionality.
hr@kasperanalytics.com
kasper-analytics
kasperanalytics.com
+918130877931
• Sprint planning
• Sprint review
• Sprint Retrospective
• Daily scrum meeting.
Java main() method is always static, so that compiler can call it without the
creation of an object or before the creation of an object of the class.
Static method of a class can be called by using the class name only without
creating an object of a class.
The main difference between List and Set is that Set is unordered and contains
different elements, whereas the list is ordered and can contain the same
elements in it.
For more :
https://www.geeksforgeeks.org/difference-between-list-a nd-set-in-java/
hr@kasperanalytics.com
kasper-analytics
kasperanalytics.com
+918130877931
Method overriding occurs in two classes that have IS-A (inheritance) relationship.
Link :
https://www.javatpoint.com/method-overloading-vs-method-ove rriding-in-
java
The purpose of constructor is to initialize the object of a class while the purpose of
a method is to perform a task by executing java code.
Links :
https://www.geeksforgeeks.org/difference-between-static-and- non-static-
method-in-java/
hr@kasperanalytics.com
kasper-analytics
kasperanalytics.com
+918130877931
The most common use of the super keyword is to eliminate the confusion
between superclasses and subclasses that have methods with the same name.
Break statement resumes the control of the program to the end of loop and made
executional flow outside that loop.
Continue statement resumes the control of the program to the next iteration of
that loop enclosing 'continue' and made executional flow inside the loop again
On other hand super keyword represents the current instance of a parent class.
array.length: length is a final variable applicable for arrays. With the help of the
length variable, we can obtain the size of the array.
hr@kasperanalytics.com
kasper-analytics
kasperanalytics.com
+918130877931
When an “assert” fails, the test is aborted. When a “verify” fails, the test will
continue execution, logging the failure. A “waitFor” command waits for some
condition to become true.
48. Have you used the action class and where it is used?
Actions class is an ability provided by Selenium for handling keyboard and mouse
events.
The perform() method is used to perform the series of actions that are defined.
Link : https://www.browserstack.com/guide/action-class-in-selenium
There are two types of exceptions: checked exception and unchecked exception.
The main difference between checked and unchecked exception is that the
checked exceptions are checked at compile-time while unchecked exceptions
are checked at runtime.
checked exceptions –
SQLException,IOException,ClassNotFoundException,InvocationTargetException
unchecked exceptions –
NullPointerException,ArrayIndexOutOfBoundsException,ArithmeticException,IllegalA
rgumentException NumberFormatException
hr@kasperanalytics.com
kasper-analytics
kasperanalytics.com
+918130877931
50. Apart from sendkeys, are there any different ways, to type content onto the
editable field?
executor.executeScript("document.getElementBy Id("textbox_id").value='new
value';);
Total 11 Annotations - Feature, Scenario, Background, given, when , then, and, but,
example, scenario outline, scenario template.
HashMap and HashSet both are one of the most important classes of Java
Collection framework. ... HashMap Stores elements in form of key-value pair i.e
each element has its corresponding key which is required for its retrieval during
iteration. HashSet stores only objects no such key value pairs maintained.
Links :
https://www.geeksforgeeks.org/difference-between-hashmap-and-hashset/
https://www.javatpoint.com/difference-between-hashset-and-hashmap
Maps are used for when you want to associate a key with a value and Lists are an
ordered collection. Map is an interface in the Java Collection Framework and a
HashMap is one implementation of the Map interface.
HashMap are efficient for locating a value based on a key and inserting and
deleting values based on a key. HashMap map = new HashMap<>();.
hr@kasperanalytics.com
kasper-analytics
kasperanalytics.com
+918130877931
Example :
map.put("vishal", 10);
map.put("sachin", 30);
map.put("vaibhav", 20);
Option 1: Look for any other attribute which Is not changing every time In that div
node like name, class etc. So If this div node has class attribute then we can write
xpath as bellow.
//div[@class='post-body entry-content']/div[1]/form[1]/input[1]
Option 2: We can use absolute xpath (full xpath) where you do not need to give
any attribute names In xpath.
/html/body/div[3]/div[2]/div[2]/div[2]/div[2]/div[2]/div[2]/div/div[4]/div[1]/div/
div/div/div[1]/div/div/div/div [1]/div[2]/div[1]/form[1]/input[1]
Option 4: We can use contains function. Same way you can use contains function
as Above
//div[contains(@id,'post-body-')]/div[1]/form[1]/input[1]
hr@kasperanalytics.com
kasper-analytics
kasperanalytics.com
+918130877931
The finally block always executes when the try block exits. This ensures that the
finally block is executed even if an unexpected exception occurs.
is executed at a time.
POM is an acronym for Project Object Model. The pom.xml file contains
information of project and configuration information for the maven to build the
project such as dependencies, build directory, source directory, test source
directory, plugin, goals etc. Maven reads the pom.
hr@kasperanalytics.com
kasper-analytics
kasperanalytics.com
+918130877931
Alert a= driver.switchTo().alert();
• a.getText();
• a.accept();
• a.dismiss();
• a.sendKeys(“name”);
• Chrome
• Geko
• Chromium
• Edge
• Html
• android
62. What are the different exception you faced in selenium webdriver?
hr@kasperanalytics.com
kasper-analytics
kasperanalytics.com
+918130877931
Link:
https://www.guru99.com/scroll-up-down-selenium-webdriver.html
js.executeScript("arguments[0].scrollIntoView();", Element);
65. Which all files can be used as a data source for different frameworks?
As the name suggests Listeners "listen" to the event defined in the selenium script
and behave accordingly.
WebDriver Listeners
TestNG Listeners
Link: https://www.guru99.com/listeners-selenium-webdriver.html
https://www.guru99.com/take-screenshot-selenium-webdriver. html
hr@kasperanalytics.com
kasper-analytics
kasperanalytics.com
+918130877931
JavascriptExecuter js = (JavascriptExecutor)driver;
js.excuteScript(“document.getElementById(“<>”).val ue=’Hiddentext);
Static- modifier
Main-class name
72. What are the open source frameworks supported by selenium webdriver?
hr@kasperanalytics.com
kasper-analytics
kasperanalytics.com
+918130877931
It will give you RGB codes , you need to convert them into back color using HEX
function.
num = num/10;
Sysout (rev)
String rev = ” ”;
Sysout(rev);
76. How will you print length of string without using length method.
1. int i = 0;
hr@kasperanalytics.com
kasper-analytics
kasperanalytics.com
+918130877931
OR
2. Sysout(str.toCharArray().length); Sysout(str.lastIndexOf(“”));
Link: https://java2blog.com/find-length-of-string-without-using/
a = b - a;
b = b - a;
}}
hr@kasperanalytics.com
kasper-analytics
kasperanalytics.com
+918130877931
L1.removeAll(l2);
hr@kasperanalytics.com
kasper-analytics
kasperanalytics.com
+918130877931
STRING Post-mortem
String str=”Jaikishan”;
String.valueOf(ch);
hr@kasperanalytics.com
kasper-analytics
kasperanalytics.com
+918130877931
System.out.println(555+str);
System.out.println(555+str);
hr@kasperanalytics.com
kasper-analytics
kasperanalytics.com
+918130877931
Selenium Commands
• driver.findElement(By.linkText(“jaikishan”)).click();
• driver.findElement(By.partialLinkText(“jai”)).click();
hr@kasperanalytics.com
kasper-analytics
kasperanalytics.com
+918130877931
)));
• select.selectByValue("greenvalue"); - By Value
• select.selectByVisibleText("Red"); - By Visible Text
• select.selectByIndex(2); - By Index
driver.findElement(By.<em>id</em>("submit")).submit();
driver.get("https://www.facebook.com/");
driver.findElement(By.id("email")).sendKeys("abc@gmail.com");
driver.findElement(By.id("pass")).sendKeys("123456");
driver.findElement(By.id("pass")).submit(); // submitting form with submit()
OR
hr@kasperanalytics.com
kasper-analytics
kasperanalytics.com
+918130877931
Exceptions are the conditions or situations that halt the program execution
unexpectedly.
try{ if(saveButton.isDisplayed()){
saveButton.click();} }
catch(NoSuchElementException e)
{ e.printStackTrace(); }
boolean textBox =
driver.findElement(By.xpath("//input[@name='textbox1']")).isEnabled();
driver.manage().timeouts().pageLoadTimeout(500, SECONDS);
hr@kasperanalytics.com
kasper-analytics
kasperanalytics.com
+918130877931
driver.manage().timeouts().implicitlyWait(1000, TimeUnit.SECONDS);.
WebElement element =
wait.until(ExpectedConditions.visibilityOfElementLocated
(By.xpath("//input[@id=’name’]")));
#8) Select
• dropdown.selectByVisibleText("Jaikishan");
• dropdown.selectByValue("Fav_course");
• dropdown.selectByIndex(1);
• dropdown.deselectByVisibleText(“Jaikishan");
• dropdown.deselectByValue("Fav_course");
• dropdown.deselectByIndex(1);
hr@kasperanalytics.com
kasper-analytics
kasperanalytics.com
+918130877931
➢ driver.navigate().to("https://www.mohantyacadem y.com");
➢ driver.navigate().back();
➢ driver.navigate().forward();
➢ driver.navigate().refresh();
• moveToElement()
driver.findElement(By.xpath("//div[@id='bestTutor']/div"));
actions.moveToElement(mouseHover);
actions.perform();
• dragAndDrop()
actions.dragAndDrop(sourceLocator, destinationLocator).build().perform();
alert.accept();
hr@kasperanalytics.com
kasper-analytics
kasperanalytics.com
+918130877931
Assert.assertTrue(result<0);
Assert.assertFalse(result<0);
hr@kasperanalytics.com
kasper-analytics