Technical Project Lead @ Huawei Technologies

My photo
Bangalore/Hyderabad, Karnataka/Andhra Pradesh, India
Have an overall 13 + yrs of experience Currently working as an Senior Architect.Expertise in design,implementation of Automation frameworks for Opensource automation tools like Selenium,Jmeter, Webdriver,Appium, Robotium Expertise in integrating Test & ALM Management tools like Rally,Qmetry,JIRA-Zephyr with Automation frameworks Expertise in design and developmenet Mobile Automation frameworks for tools like Appium, Robotium Remote Control,Cucumber BDD,Manual Testing


Tuesday, June 11, 2019

Selenium Interview Questions

Friends below are some interview questions you might be asked . If you get familiar with these you can crack interview

Java basics for Freshers - Just try to understand Highlighted In red Selenium related question I will update in this blog. These are the question are asked when I take an interview . Remenber if you can crack basic Java question you interview will be easy

for experience All questions are relavent
Q6 what is the difference between List and Set?

Set allows only unique elements
List allows duplicate elements
Set is unordered while List is ordered
List maintains the order in which the objects are added

Q7 what is the difference between Map and Set?
Set contains unique keys but does not allow duplicate values
Map contains unique key but allows duplicate values

Q8 what are the classes implementing List and Set interface?
ArrayList, Vector, Linked List
HashSet, Tree Set

Q9 what is an iterator?
Iterator is an interface. It is found in java.util package. It provides methods to iterate over any Collection.

Q10 what is the difference between Iterator and Enumeration?
Iterator you can remove element(allows read/write operations)
Doesn’t support remove(supports readonly operations)

Q12 which methods you need to override to use any object as key in HashMap?

To use any object as key in HashMap, it needs to implement equals() and hashCode() method 

What it static key word : **this is important most interview this questions will be asked****

1. the variable or method declared as static can be directly called using call name
2. Any block of code that needs to executed before main method you put that code in static block

your code goes here, this block of code will be exe used before main method starts execution
static main ()
Q13 what is the difference between Queue and Stack?
First In First out
Last In First Out

Q14 How to reverse the List in Collections?

Q15 How to convert the array of strings into the list?

Q16 what is the difference between ArrayList and Vector?
Vector is Synchronized
Array List is not synchronized
Vector is slow
ArrayList is fast
Vector increases the capacity twice of its initial size
ArrayList increases its ArraySize by 50%
Vector supports both Enumeration and Iterator
Array List support only Iterator for traversing

Q17 what is the difference between HashMap and Hashtable? - This is must
Commenly asked interview question
HashMap allows null key value insertion 
Hashtable does not allow null keys and null values.
HashMap is not synchronized or thread-safe 
Hashtable is synchronized or thread-safe.

Q20 what is the difference between Array and ArrayList in Java? ** Very 
important for sure you will be asked
Array is static in size 
 ArrayList is dynamic in size.
Array can contain primitive data types 
ArrayList cannot contain primitive data types.
If declared primitive data type JVM through Auto boxing(converting primitives to equivalent objects internally) 
Fast performance
Slow performance
does not guarantee ordered  elements.
does not guarantee ordered  elements.

Hashing: How Hash Map Works In Java Or How Get() Method Works Internally

HashMap works on the principle of Hashing.  To understand Hashing, we should understand the three terms first   i.e  Hash Function , Hash Value and Bucket .
HashMap get(Key k) method calls hashCode method on the key object and applies returned hashValue to its own static hash function to find a bucket location(backing array) where keys and values are stored in form of a nested class called Entry (Map.Entry)

Linked list
Manipulation with ArrayList is slow
Manipulation with LinkedList is faster 
Ddataccess is faster.Better performance becaue of Index based search
Data access is slower. Performance is slower
As Linked list inherits Double Linked list which requires the traversal through all the elements for searching an element.
One should go for Arraylist implemententation when there are more get calls


Is an interface which is used for sorting objects in Java.
Compare to method

Comparable provides single sorting sequence. In other words, we can sort the collection on the basis of single element such as id or name or price etc.
Comparator provides multiple sorting sequence. In other words, we can sort the collection on the basis of multiple elements such as id, name and price etc.
Comparable affects the original class i.e. actual class is modified.
Comparator doesn't affect the original class i.e. actual class is not modified.
Comparable is found in java.lang package.
Comparator is found in java.util package.
We can sort the list elements of Comparable type byCollections.sort(List) method.
We can sort the list elements of Comparator type byCollections.sort(List,Comparator) method.

HashSet vs TreeSet

Removes duplicates
Removes duplicates
Don’t sort element
Sorts elements in Ascending order

Iterator vs List Iterator

List Iterator
Iterator is used for traversing List and Set both.
We can use List Iterator to traverse List only, we cannot traverse Set using ListIterator.
We can traverse in only forward direction using Iterator.
Using ListIterator, we can traverse a List in both the directions (forward and Backward)

HashMap vs TreeMap

Tree Map
Return elements as it on how they are added
Return Sorted in Ascending order of Keys

HashMap vs tree map
Binary tree
Hash map usage
  • Create an entry set
  • Create a iterator object over entry set
  • Then iterate
Same as HashMap just preserves the insertion order
What are concurrentCollectionClasses? 

In jdk1.5 , Java Api developers had introduced new package called java.util.concurrent that have thread-safe collection classes as they allow collections to be modified while iterating
Ex : Concurrent Hash Map class

How will you make Collections readOnly ?
Collections.unmodifiableMap(Map m)
Collections.unmodifiableList(List l)
Collections.unmodifiableSet(Set s)

Difference between Stack vs Heap in Java

Stack memory is used to store variables and functions
Heap memory is used to store Objects

What is reflection?
The ability to examine or modify the runtime behaviour of applications running in the Java virtual machine
  • Examine an object's class at runtime
  • Construct an object for a class at runtime
  • Examine a class's field and method at runtime
  • Invoke any method of an object at runtime
  • Change accessibility flag of Constructor, Method and Field

Binary Tree
A binary tree is a tree data structure in which each node has at most two children, which are referred to as the left child and the right child
PreOrder traversal - In PreOrder traversal, each node is processed before either of its sub-trees. In simpler words, Visit each node before its children.

InOrder traversal : In In-Order traversal, each node is processed between subtrees.In simpler words,Visit left subtree, node and then right subtree.

PostOrder traversal: In PostOrder traversal,each node is processed after subtrees traversal. In simpler words, Visit left subtree,  right subtree and then node.

Level order traversal : In Level order traversal, tree is traversed by each level. It is same as breadth first search.

Spiral/Zigzag order traversal : In spiral order traversal, tree is traversed in spiral shape. 

Binary Search
Binary search is a fast search algorithm. This search algorithm works on the principle of divide and conquer. For this algorithm to work properly the data collection should be in sorted form.
Binary search a particular item by comparing the middle most item of the collection. If match occurs then index of item is returned. If middle item is greater than item then item is searched in sub-array to the right of the middle.

What is immutable class in Java?
Immutable classes are those class, whose object cannot be modified once created. Immutable and mutable objects are, String and StringBuffer.
Class can be made immutable by making it Final.
  • Thread Safe
Stack is a subclass of Vector collection
Push pop
Bubble Sort
Comparing each pair of adjacent items and swapping them
Selection Sort
Tries to identify the smallest and the largest elements and swapping the positions
Insertion Sortd
Quick sort in java.
Quicksort or partition-exchange sort, is a fast sorting algorithm, which is using divide and algorithm. Quicksort first divides a large list into two smaller sub-lists: the low elements and the high elements. Quicksort can then recursively sort the sub-lists.

Merge sort in java.
Divided into unsorted n no of patterns and

What is difference between Singly Linked List and Doubly Linked List data structure?
Main difference between singly linked list and doubly linked list is ability to traverse. In a single linked list, node only points towards next node, and there is no pointer to previous node, which means you cannot traverse back on a singly linked list. On the other hand doubly linked list maintains two pointers, towards next and previous node, which allows you to navigate in both direction in any linked list.

Difference between ArrayList and LinkedList:

1) ArrayList internally uses dynamic array to store the elements.
LinkedList internally uses doubly linked list to store the elements.
2) Manipulation with ArrayList is slow because it internally uses array. If any element is removed from the array, all the bits are shifted in memory.
Manipulation with LinkedList is faster than ArrayList because it uses doubly linked list so no bit shifting is required in memory.
3) ArrayList class can act as a list only because it implements List only.
LinkedList class can act as a list and queue both because it implements List and Deque interfaces.
4) ArrayList is better for storing and accessing data.
LinkedList is better for manipulating data.

Thread.sleep vs  Thread.wait vs Thread.Yield
Thread.sleep cannot be revoked
Thread.wait can notify thread to continue
Thread.yieid will go to runnable/ ready state
Thread.Wait releases the monitor or lock it was holding on that object, but when a thread calls the sleep() method, it never releases the monitor even if it is holding. 

Thread.yield() method pauses the currently executing thread temporarily for giving a chance to the remaining waiting threads of the same priority to execute. If there is no waiting thread or all the waiting threads have a lower priority then the same thread will continue its execution

Any way the volatile keyword in Java is used as an indicator to Java compiler and Thread that do not cache value of this variable and always read it from main memory. ...Java volatile keyword cannot be used with method or class and it can only be used with variable.
So if you want to share any variable in which read and write operation is atomic by implementation e.g. read and write in an int or a boolean variable then  you can declare them as volatile variable.