Prepare for Aon Hewitt interviews with 18 curated questions. The answer examples below explain key concepts; personalize project and experience responses truthfully. These are independent study resources, not official company interview materials.
Interview Questions with Answer Explanations
These study answers summarize the associated PDF material. Adapt personal, project and experience details to your own background.
Explain about your project
Use a 1–2 minute structure: project/business purpose, users and key workflows, technology stack, your role, testing approach, framework, and impact. Avoid confidential customer data. Adapt this sample to the project you actually work on: “My project supports a business workflow where users submit and process applications/appointments. The QA team validates end-to-end flows, business rules, integrations, and regression scenarios.
Roles and responsibilities in your project
Organise your answer into planning, execution, automation, defect management, and coordination. For a QA Lead/Project Lead profile, possible responsibilities include: • Review requirements and clarify acceptance criteria with product/business analysts. • Prepare test strategy, estimates, test scenarios, test data, and execution plans. • Perform or coordinate functional, integration, regression, and exploratory testing. • Develop and maintain Selenium automation using Java, reusable page objects, and test utilities. • Review automation failures, investigate whether they are product defects, test-data problems, or environment issues, and log defects with evidence. • Track test progress.
What is "this" in Java?
this is a reference to the current object. It is commonly used to distinguish instance variables from method/constructor parameters with the same name, call another constructor in the same class using this(...), or pass the current object to another method. A this(...) constructor call must be the first statement in a constructor.
Difference between == and equals()
For primitive values, == compares values. For object references, == checks whether both references point to the same object. equals() checks logical/content equality when the class implements it appropriately. String overrides equals() to compare character content. Use Objects.equals(a, b) for null-safe equality when appropriate.
How good are you in XPath? Rate yourself out of 5
Choose a rating you can defend with examples. A sample answer, if it reflects your skills: “I would rate myself 4 out of 5. I am comfortable with relative XPath, attributes, text matching, contains(), starts-with(), parent/child relationships, and axes such as following-sibling and preceding-sibling. I use browser DevTools to validate locators and prefer stable, unique locators.
XPath preceding, following, and sibling axes
following-sibling:: selects later siblings with the same parent. preceding-sibling:: selects earlier siblings with the same parent. following:: selects later nodes in document order, not only siblings. preceding:: selects earlier nodes in document order, excluding ancestors. These axes help when an element has no unique ID but has a stable nearby label or heading. Example DOM idea: a label “Username” followed by an input as its sibling.
PageFactory: purpose, where used, advantages
PageFactory is a Selenium support mechanism that initialises page-object fields annotated with @FindBy. It is used inside page classes to declare element locators in a readable way. It can make page objects concise, but it does not automatically make tests faster or eliminate stale-element problems; modern teams may prefer By locators and explicit waits for clearer control. Use the approach already standardised in your framework and avoid mixing styles without a reason.
Web table: from cell 1 fetch cell 2 value
Find the row containing the key in cell 1, then read cell 2 from that same row. This is safer than assuming the required row will always be at a fixed index. Add waits if the table is loaded dynamically, and check that the row has enough cells.
Window handling: move to child and back to parent
Capture the parent window handle before triggering the new window. Wait until a second handle appears, switch to the handle that is not the parent, and then switch back to the stored parent handle. Do not assume that the child is always the second item in a list; identify it by title or URL when multiple windows may open.
Take a screenshot: code and line-by-line explanation
TakesScreenshot captures the current browser viewport. OutputType.FILE returns a temporary image file; Files.copy saves it to a chosen path. Ensure the destination folder exists and use a unique file name in repeated or parallel runs. In remote execution, screenshot support depends on the driver/grid configuration.
DataProvider, why use it, Apache POI vs JXL
TestNG @DataProvider supplies multiple sets of input data to the same test method. It supports data-driven testing without duplicating test methods. Apache POI is commonly used to read/write modern Excel .xlsx and older .xls workbooks. JXL (JExcelAPI) is an older library mainly associated with .xls and does not support the modern .xlsx format.
What is HashMap? Where can it be used in a project?
HashMap stores key-value pairs and uses a key to retrieve the associated value. Keys are unique; inserting the same key again replaces its previous value. HashMap permits one null key and null values, does not guarantee iteration order, and is not thread-safe for concurrent mutation. In a test framework, it can hold named test data, map column headers to cell values, or associate expected values with field names.
What is TestNG? Why use it and advantages
TestNG is a Java testing framework commonly used with Selenium. It provides annotations, assertions, test grouping, prioritisation, data providers, dependencies, suite XML, listeners, and configurable parallel execution. It organises and runs tests; Selenium performs browser automation. Benefits include reusable setup/teardown, data-driven tests, flexible suite selection, and integration with Maven/CI/reporting.
Have you tested parallel execution?
Answer truthfully. If you have used it, explain how your suite was configured, what ran in parallel, how browser instances and test data were isolated, and how you verified that results were reliable. Parallel execution can reduce runtime but introduces race conditions if tests share a driver, users, files, or mutable state. A common design uses one WebDriver per test thread (for example ThreadLocal in a framework), unique test data, and thread-safe reporting.
What is Maven? Purpose of pom.xml
Maven is a build and dependency-management tool. It downloads dependencies, compiles code, runs tests, packages artifacts, and supports repeatable lifecycle phases. pom.xml (Project Object Model) declares project coordinates, dependencies, plugins, Java/compiler settings, profiles, and build configuration. In a Selenium project it can manage Selenium, TestNG, Apache POI, reporting libraries, and test plugins with explicit versions. <!-- Illustrative pom.xml dependencies --> <dependencies>.
Have you used Jenkins? Why use it?
Jenkins is an automation server used to run build and test jobs automatically. A UI automation pipeline can check out code from Git, resolve Maven dependencies, compile, run TestNG/Cucumber tests, archive reports/screenshots, and notify the team. It gives repeatable execution and quicker feedback; it does not guarantee test quality, so stable tests and good failure triage are still necessary. Describe only the parts you have personally used.
Secure credentials, control access, and maintain the pipeline.
Sample Jenkinsfile below is illustrative; report plugin and browser setup may need project-specific configuration. pipeline { agent any stages { stage('Checkout') { steps { checkout scm }.
Two Submit buttons: click the second one
First locate all matching buttons and check the count. If both buttons are genuinely the same type and the second in DOM order is the required one, use .get(1) or .nth(1) conceptually (Java Selenium uses get(1)). Indexing is zero-based: first = 0, second = 1. If possible, scope the locator to the bottom section/container because that is more robust than relying on DOM order.