Skip to content

NTT DATA Automation Testing Interview Questions & Answers

Curated interview practice questions with answers. These are practice scenarios, not a verified list of past interview questions.

About NTT DATA hiring for Automation Testing roles

NTT DATA is a global IT services company and part of the NTT Group of Japan. It provides consulting, application services, cloud, infrastructure, data and testing services for clients in many industries. Its India delivery centres hire for software engineers, test engineers, data engineers, data analysts and infrastructure professionals.

For Automation Testing roles, this NTT DATA practice set focuses most on Core Java for Testers (6), Selenium WebDriver (6), TestNG Framework (5), API Testing and CI/CD (5). It has 15 easy, 23 medium, 2 hard questions, so you can start easy and work up to the harder ones.

Company type
IT services
Headquarters
Tokyo, Japan
Main India offices
Bengaluru, Pune, Noida, Hyderabad, Chennai

NTT DATA Automation Testing interview process

  1. Online assessment (aptitude + technical)
  2. Technical interview
  3. Managerial round
  4. HR round

Typical pattern based on public candidate experiences. Rounds vary by role, team and year.

Solved for NTT DATAStart practicing
3 QUESTIONS FREESign up to unlock the full question bank and track your progress.Unlock every question and answer, then continue practising company-wise and package-wise.
3 questions free Unlock the rest in seconds
01

What is data-driven testing?

Save to ▾
Show answer
Running the same test logic with multiple data sets from Excel, CSV, JSON or a database, so coverage increases without duplicating code.
02

How do you run Selenium tests in Docker containers in CI?

Save to ▾
Show answer
Use official Selenium images, either standalone-chrome for simple runs or a Grid with hub and node containers via Docker Compose. The test container or Jenkins agent points RemoteWebDriver to http://selenium-hub:4444. Containers give the same browser version everywhere and are cleaned after each run. Add shm_size for Chrome stability and record videos for failed tests if needed.
03

What is the difference between path params and query params in REST Assured?

Save to ▾
Show answer
Path params are part of the URL path and identify a resource, such as /users/{id}; you set them with pathParam("id", 5). Query params come after ? and filter or modify the result, such as /users?page=2; you set them with queryParam("page", 2). REST Assured URL-encodes both. Using named params instead of string concatenation makes tests cleaner and safer.
04

How do you test API security basics as an automation tester?

Save to ▾
Show answer
Check that endpoints reject missing or invalid tokens with 401, block users from other users' data with 403 or 404, validate input to prevent injection, do not leak stack traces or sensitive fields, enforce HTTPS and set security headers. Automate these as negative tests in the regression suite and work with the security team for deeper penetration testing.
05

What is the difference between == and equals() in Java?

Save to ▾
Show answer
== compares references (or primitive values); equals() compares content when overridden, as in String.
06

What is correlation in JMeter and why is it needed?

Save to ▾
Show answer
Correlation means capturing dynamic values from one response and passing them into later requests. Session ids, CSRF tokens, auth tokens and order ids change every run, so a recorded script with hard-coded values fails on replay. In JMeter you use post-processors such as JSON Extractor, Regular Expression Extractor or CSS Selector Extractor to save the value into a variable, then reference it as ${token} in later headers or bodies.
07

What is the Transaction Controller in JMeter used for?

Save to ▾
Show answer
A Transaction Controller groups several samplers into one logical business transaction, such as Login, which may include loading the page, posting credentials and fetching the dashboard. JMeter reports an extra sample with the total time of the group, so reports show user-level timings instead of only individual requests. With generate parent sample enabled the children appear nested. It makes SLA reporting easier for business stakeholders.
08

What are the different types of waits in Selenium?

Save to ▾
Show answer
Implicit, explicit (WebDriverWait with ExpectedConditions) and fluent waits; avoid mixing implicit and explicit waits and never rely on Thread.sleep.
09

What is a DataTable in Cucumber and how do you use it?

Save to ▾
Show answer
A DataTable passes a table written under a step into the step definition. You can read it as List<String>, List<Map<String,String>>, Map<String,String> or convert rows into objects with a @DataTableType method. For example a step that creates several users can take a table of name, role and email. Unlike Scenario Outline, a DataTable feeds data into one step and the scenario runs once.
10

What is polymorphism and how does it show up in Selenium?

Save to ▾
Show answer
One interface, many forms. WebDriver driver = new ChromeDriver() lets the same test code run on any browser class that implements WebDriver.
11

What is REST Assured?

Save to ▾
Show answer
A Java library that makes API tests readable using given-when-then, with easy request building, response validation and JSON path support.
12

Explain the given-when-then structure in REST Assured.

Save to ▾
Show answer
given() sets up the request: headers, params, body, auth. when() performs the HTTP call such as get(), post(), put() or delete(). then() validates the response: status code, headers, body using Hamcrest matchers, and response time. You can call extract() after then() to pull values for later steps. The fluent structure reads like a test specification and keeps setup, action and checks clearly separate.
13

findElement vs findElements?

Save to ▾
Show answer
findElement returns the first match and throws NoSuchElementException if nothing is found. findElements returns a List (empty if nothing is found) — handy to check whether an element exists.
14

What is the difference between @BeforeTest and @BeforeMethod?

Save to ▾
Show answer
@BeforeTest runs once before all methods in a test tag of testng.xml; @BeforeMethod runs before every test method.
15

What is Selenium and what are its components?

Save to ▾
Show answer
An open-source suite for browser automation: WebDriver, IDE, Grid and the older RC. WebDriver controls browsers through their native drivers.
16

How do you get reports, screenshots and downloaded files out of a Docker container?

Save to ▾
Show answer
Use volumes. A bind mount maps a host folder into the container, for example -v $(pwd)/target:/app/target, so reports written in the container appear on the CI agent for archiving. Named volumes are managed by Docker and suit data that should survive restarts. For browser downloads, mount the node's download folder or enable the Grid's managed downloads with the se:downloadsEnabled capability to fetch files through the Grid API.
17

Write a REST Assured test that deserializes a response into a POJO.

Save to ▾
Show answer
@Test public void getUserAsPojo() { User user = given() .pathParam("id", 2) .when() .get("/users/{id}") .then() .statusCode(200) .extract().as(User.class); Assert.assertEquals(user.getId(), 2); Assert.assertNotNull(user.getEmail()); }
18

Why should JMeter load tests be run in non-GUI mode?

Save to ▾
Show answer
The GUI is meant for building and debugging scripts. During a run it consumes significant memory and CPU to render the tree and listeners, which limits how many threads one machine can generate and can distort response times. Non-GUI mode, started with jmeter -n, uses far fewer resources, is scriptable in CI and writes results to a file. The JMeter GUI itself shows a warning recommending this.
19

How do you measure and assert API response time in REST Assured?

Save to ▾
Show answer
Use then().time(lessThan(2000L)) for a quick check or response.getTimeIn(TimeUnit.MILLISECONDS) to log the value. This measures client-side time, including network, so set generous thresholds and treat it as a smoke signal, not a performance test. For real load and latency percentiles, use tools such as JMeter, Gatling or k6.
20

What is the use of the this and super keywords?

Save to ▾
Show answer
this refers to the current object; super refers to the parent class, used to call parent constructors and methods.
21

Write Selenium code to wait for a loader to disappear and then click a button.

Save to ▾
Show answer
WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(15)); wait.until(ExpectedConditions.invisibilityOfElementLocated( By.cssSelector(".spinner"))); wait.until(ExpectedConditions.elementToBeClickable( By.id("placeOrder"))).click();
22

How do you verify that an element is displayed, enabled or selected?

Save to ▾
Show answer
Use isDisplayed(), isEnabled() and isSelected() on the WebElement before interacting or asserting.
23

How do you make WebDriver thread-safe for parallel runs?

Save to ▾
Show answer
Store each driver in a ThreadLocal so every thread gets its own instance and tests do not interfere.
24

What is Docker Compose and why is it useful for Selenium Grid?

Save to ▾
Show answer
Docker Compose lets you define several containers, their images, ports, environment variables and networks in one docker-compose.yml file and start them together with docker compose up. For Selenium it means a hub plus Chrome, Firefox and Edge nodes, and even the application under test, start with one command on any laptop or CI agent. The file is version-controlled, so every tester and pipeline uses the same Grid setup.
25

How do you read data from Excel or properties files in Java?

Save to ▾
Show answer
Use Apache POI for Excel and the Properties class for config files, loaded in a utility class so tests read data instead of hard-coding it.
26

What is git stash and when would you use it?

Save to ▾
Show answer
git stash saves uncommitted changes and cleans the working directory so you can switch branches. Later, git stash pop reapplies them. Use it when you are halfway through a change and must quickly fix something on another branch. git stash list shows saved stashes, and git stash push -m "msg" names them. For longer work, a temporary commit on a branch is clearer.
27

How do you record a JMeter script with the HTTP(S) Test Script Recorder?

Save to ▾
Show answer
Add the recorder from Templates using the Recording template, which also creates a Thread Group and Recording Controller. Start the recorder on port 8888, set your browser or system proxy to localhost:8888 and import the ApacheJMeterTemporaryRootCA certificate so HTTPS works. Perform the user journey, then stop. Afterwards remove static resources and third-party calls, add correlation for dynamic values, parameterize data and add think time.
28

What are Cucumber Expressions and how do they differ from regular expressions?

Save to ▾
Show answer
Cucumber Expressions are the default, simpler way to match steps, using parameter types like {int}, {string}, {word} and {float}. For example "I add {int} items" captures a number and converts it to an Integer automatically. Regular expressions are still supported and offer more control, but are harder to read. Teams usually prefer Cucumber Expressions and define custom parameter types for domain values.
29

Describe a time you received critical feedback on your test code.

Save to ▾
Show answer
Situation: in my first code review, a senior said my tests were hard to read and used Thread.sleep everywhere. Task: improve without getting defensive. Action: I asked for examples, replaced sleeps with explicit waits, extracted helpers and followed the team's naming conventions. Result: my next pull requests were approved faster, and I later used the same checklist to review a junior's code.
30

What is a webhook and how do you test it?

Save to ▾
Show answer
A callback where one system sends an HTTP request to another when an event occurs. Test with a mock receiver or tools such as webhook.site and verify the payload.
31

Common HTTP status codes?

Save to ▾
Show answer
200 OK, 201 Created, 204 No Content, 400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found, 500 Internal Server Error.
32

How do you increase the number of Chrome nodes with Docker Compose?

Save to ▾
Show answer
Use the scale option: docker compose up -d --scale chrome=4 starts four Chrome node containers from the same service definition, and each registers with the hub. Do not fix container names or host ports on a scaled service, or the extra containers will clash. Check the Grid UI on port 4444 to confirm the slots. Make sure the host has enough CPU and memory, roughly one CPU core and 1 to 2 GB per browser.
33

How does Selenium Grid decide which node gets a new session?

Save to ▾
Show answer
Each node advertises slots with stereotypes, which are capability sets like browserName chrome, a browser version and platformName linux. The distributor compares the requested capabilities with those stereotypes and picks a free matching slot, preferring nodes with lower load. If nothing matches, the request stays in the queue until timeout. Custom capabilities in the stereotype let you route tests to special nodes, such as nodes with a particular extension.
34

What are listeners in TestNG?

Save to ▾
Show answer
Classes like ITestListener that react to events such as test start, success or failure, commonly used for screenshots and reporting.
35

What is the difference between throw and throws?

Save to ▾
Show answer
throw actually raises an exception object inside a method; throws declares in the method signature that it may pass an exception to the caller.
36

What does dependsOnMethods do?

Save to ▾
Show answer
It makes a test run only after specified tests pass, otherwise it is skipped. Use sparingly as it creates coupled tests.
37

Write a TestNG listener that logs test start and failure.

Save to ▾
Show answer
public class LogListener implements ITestListener { @Override public void onTestStart(ITestResult r) { System.out.println("START: " + r.getMethod().getMethodName()); } @Override public void onTestFailure(ITestResult r) { System.out.println("FAIL: " + r.getName() + " - " + r.getThrowable()); } } // register with @Listeners(LogListener.class) or <listeners> in testng.xml
38

An assertion on element text fails even though the text looks identical on screen. What could be the reason?

Save to ▾
Show answer
The text may contain extra whitespace, a line break or a non-breaking space that looks normal visually. getText() also returns only visible text and applies CSS text-transform, so uppercase styling changes the value. Print the string with its length or character codes to spot hidden characters. Fix it by trimming and normalising whitespace before comparing, or compare with the expected case-insensitively when the UI uses text-transform.
39

What is idempotency in REST APIs and why does it matter for testing?

Save to ▾
Show answer
An idempotent operation gives the same result no matter how many times it is called. GET, PUT and DELETE should be idempotent; POST usually is not. Testers verify that repeating a PUT does not create duplicates and that a second DELETE returns a sensible status like 404 or 204. Retries in networks and CI make idempotency important to verify.
40

How do you pass the WebDriver to page objects in a parallel framework?

Save to ▾
Show answer
Use a DriverManager with a ThreadLocal<WebDriver>, created in @BeforeMethod and removed in @AfterMethod. Page objects receive the driver through the constructor or get it from DriverManager.getDriver(). Constructor injection is cleaner and easier to test. Never store the driver in a static field shared by all threads, or parallel tests will control each other's browsers.

Tips to crack the NTT DATA Automation Testing interview

  • Revise SQL, testing and programming fundamentals for both the online assessment and technical interview.
  • Learn about NTT DATA's Japanese parent and its global integration of companies such as Dimension Data.
  • Be ready to discuss working with clients across time zones, as many teams support global accounts.
  • Keep a one-minute story ready for every project on your CV: problem, your part, tools, result.
  • Practise the hard questions on this page aloud; NTT DATA interviewers usually ask follow-ups on your first answer.

Frequently asked questions

How many rounds are there in the NTT DATA Automation Testing interview?

Candidates usually go through 4 stages: Online assessment (aptitude + technical); Technical interview; Managerial round; HR round. The exact rounds change with the role, team, location and your experience, so confirm the process with the recruiter.

Which topics should I prepare for the NTT DATA Automation Testing interview?

This practice set leans on Core Java for Testers (6), Selenium WebDriver (6), TestNG Framework (5), API Testing and CI/CD (5). Revise those first, then practise explaining one or two of your own projects end to end, because most NTT DATA interviewers ask you to walk through real work.

Are these the exact questions asked at NTT DATA?

No. These are curated practice questions that match the skills and difficulty usually tested in it services interviews like NTT DATA's. They are not a leaked or verified list of past questions.

Where does NTT DATA hire Automation Testing professionals in India?

NTT DATA has large teams in Bengaluru, Pune, Noida, Hyderabad, Chennai. Openings and locations change often, so check the NTT DATA careers page and filter by city and experience.

Automation Testing questions for similar companies