Curated interview practice questions with answers. These are practice scenarios, not a verified list of past interview questions.
About Sprinklr hiring for Automation Testing roles
Sprinklr is an enterprise software company that offers a unified customer experience management platform covering social media, customer service, marketing and research. Large brands use it to manage customer conversations across many digital channels. It was founded by Ragy Thomas and has a large engineering presence in India, where it hires software engineers, product analysts, support engineers and implementation consultants.
For Automation Testing roles, this Sprinklr practice set focuses most on TestNG Framework (6), Core Java for Testers (5), Selenium WebDriver (5), Appium Mobile Automation (5). It has 22 medium, 18 hard questions, so you can start easy and work up to the harder ones.
Company type
Product
Headquarters
New York, USA
Main India offices
Gurugram, Bengaluru
Sprinklr Automation Testing interview process
Online coding assessment
Technical round 1 (DSA)
Technical round 2 (design or CS fundamentals)
Hiring manager round
HR round
Typical pattern based on public candidate experiences. Rounds vary by role, team and year.
Solved for SprinklrStart 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.
RequestSpecification holds common request settings such as base URI, base path, headers, content type, authentication and filters. You build it once with RequestSpecBuilder and reuse it with given().spec(reqSpec). This removes repetition, keeps environment settings in one place and makes switching between QA and staging easy. ResponseSpecification does the same for common assertions like status code and content type.
03
What is the difference between static and non-static members?
Situation: a developer said a rounding difference in invoice totals was expected. Task: resolve it without friction. Action: I checked the requirement, found it specified rounding per line, and brought the document and a test case with expected values to a quick call with the BA. Result: the BA confirmed it was a bug, it was fixed, and we added the rule to the acceptance criteria.
05
How do you prioritise when the release is tomorrow and many automated tests are failing?
Situation: 60 tests failed the evening before a release. Task: give a clear go or no-go input. Action: I grouped failures by root cause, found most came from one changed locator and one test data issue, fixed those first, and manually checked the three failures that pointed to real bugs. Result: I gave the lead a short report in two hours and one real defect was fixed before release.
06
How do you assert on an array in a JSON response using Hamcrest?
Use collection matchers inside body(). For example body("data.id", hasItems(1, 2)), body("data", hasSize(6)), body("data.email", everyItem(containsString("@"))) and body("data.find { it.id == 3 }.name", equalTo("Neha")). These check the whole collection in one line. For complex rules, extract a List with jsonPath().getList() and assert with Java or AssertJ.
Code pushed to Git → Jenkins job triggers (webhook or schedule) → mvn clean test with the suite XML → reports and screenshots published → notifications on Slack/email → failures triaged before release.
08
How would you design a framework that supports both web and mobile using POM?
Define page interfaces for business actions, such as LoginScreen.loginAs(). Provide web and mobile implementations using Selenium and Appium, chosen by a factory from configuration. Tests depend only on the interfaces. Share test data, config, reporting and API helpers. Accept that some flows differ by platform and keep those in platform-specific tests rather than forcing one abstraction.
09
How do you capture a screen recording of a mobile test and attach it on failure?
// Start before the test, stop and save only if it fails
driver.startRecordingScreen();
// ... test steps ...
String base64 = driver.stopRecordingScreen();
if (result.getStatus() == ITestResult.FAILURE) {
byte[] video = Base64.getDecoder().decode(base64);
Files.write(Paths.get("target/videos/" + result.getName() + ".mp4"), video);
}
Run devices in parallel with one thread per device, each with its own udid, systemPort or wdaLocalPort. Use deep links or API calls to reach the screen under test instead of navigating through the UI every time. Prefer noReset with explicit data cleanup over reinstalling the app. Replace XPath with accessibility ids. Split the suite so pull requests run a small smoke set on emulators while the full device matrix runs nightly.
12
Your UI regression suite has 15 percent flaky failures. How would you bring it under control?
Measure flakiness per test over many runs and fix the worst first. Typical fixes are replacing sleeps with explicit waits, creating independent test data via API, avoiding shared logins, using stable locators, isolating parallel drivers and stubbing unstable third parties. Quarantine known flaky tests into a separate job so they do not block releases, and set a target like under 2 percent.
13
Write a Java stream that extracts and sorts product prices from a list of WebElements.
First learn how versions are selected: URL path like /v1 and /v2, a header, or a query parameter. Keep a request specification per version and run the shared contract tests against each supported version, plus version-specific tests for new fields or changed behaviour. Check that old versions still return their original response shape so existing clients do not break, and that deprecated versions send the agreed deprecation headers or errors.
15
Your UI tests run noticeably slower on the Grid than on your laptop. How do you find the cause?
Every command now travels over the network, so chatty code with many findElement calls or getText in loops suffers most. Check latency between test runner and Grid, ideally keeping them in the same network or region. Check node resources: overloaded CPU or many sessions per container slow browsers. Video recording and VNC add overhead. Reduce round trips by batching checks, using JavaScript for bulk reads and avoiding implicit waits combined with explicit ones.
16
How do you handle environment-specific configuration?
Inside a container, localhost means the container itself, not the host machine. On Docker Desktop use host.docker.internal as the host name. On Linux add extra_hosts with host.docker.internal:host-gateway, or use the host's IP. A cleaner option is running the application in the same Compose network and calling it by its service name, such as http://web:8080. Make sure the app listens on 0.0.0.0, not only 127.0.0.1.
Use TestNG parallel="methods | classes | tests" with thread-count, keep WebDriver in a ThreadLocal, and use Selenium Grid or a cloud grid for multiple browsers.
Do not load everything as one giant DataProvider; that creates thousands of UI tests. First question whether all rows need UI runs; most can be validated at API level. Read the file with BufferedReader or Files.lines() as a stream, filter to the rows you need, and use a lazy Iterator<Object[]> DataProvider so rows load as tests run, keeping memory low.
24
What is correlation in JMeter and why is it needed?
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.
25
Write Appium Java code to perform a vertical swipe using W3C Actions.
First run a report of step usage to find duplicate and unused steps. Agree a step vocabulary per domain, merge near-identical steps using parameters, and delete unused ones. Move logic out of steps into page objects and service helpers. Add a review checklist and a dryRun gate in CI. Do this incrementally by feature area so the suite keeps running while you clean up.
27
Write a docker-compose.yml that runs a Selenium hub with Chrome and Firefox nodes.
On Android use the mobile: deepLink command with the URL and package, for example driver.executeScript("mobile: deepLink", Map.of("url", "shop://product/42", "package", "com.example.shop")). On iOS simulators driver.get with the custom URL opens it, though Safari may show a confirm dialog to handle. Then assert that the correct screen and data are shown. Deep links are also a great shortcut to reach deep screens quickly in other tests.
29
Write a step definition that reads a DataTable as a list of maps.
In Dynamic Grid the node does not run browsers itself. It is configured with a Docker socket and a list of browser images, and for each new session it starts a fresh browser container, runs the test and then removes the container. Every test gets a clean browser, and capacity grows without pre-starting many nodes. It can also record video per session. The trade-off is container start-up time for each session.
Compare effort saved by running automated tests repeatedly against the cost of building and maintaining scripts, counting execution time, defects found earlier and release speed.
Retries are hiding real intermittent defects, such as race conditions, by treating them as flaky tests. Limit retries to one, report retried tests separately as flaky in the dashboard, and require a ticket for each one. Review retried tests weekly to find whether the cause is the test or the product. Retries should buy time to fix, not replace fixing.
35
How do you handle a dropdown that is not a <select> tag?
A cloud farm gives hundreds of device and OS combinations, parallel capacity and no hardware maintenance, but costs per minute, adds network latency and may raise data privacy concerns. An in-house lab is cheaper over time for a small fixed set of devices and gives full control, but needs USB hubs, OS updates, battery care and someone to maintain it. Many teams keep a few local devices for debugging and use the cloud for wide coverage.
37
What is a Maven multi-module project and when would you use it for automation?
A parent pom lists modules that share dependency versions through dependencyManagement and plugins through pluginManagement. In automation you might have core-framework, ui-tests, api-tests and performance modules. Teams can run or release modules separately, and shared code lives in one place. It is worth it when several teams or test types share the same framework.
GraphQL usually has one endpoint and you send a POST with a query and variables. Tests check the data returned matches the requested fields, that errors appear in the errors array, often with status 200, and that authorization applies per field. Also test query depth limits and nested queries for performance. REST Assured works fine by sending the query as JSON body.
39
What are TestNG and JUnit 5 differences that matter in automation?
TestNG has built-in groups, dependencies, suite XML, DataProvider and flexible parallel options, which suit large Selenium suites. JUnit 5 has a modular platform, tags, parameterized tests, extensions and strong IDE and tool support, and is the default for Spring and Cucumber's JUnit Platform engine. Both are capable; the choice usually follows team standards and existing frameworks.
40
How do you automate a two-factor authentication step in a test environment?
Do not try to read SMS from a real phone. Ask developers for a test-only approach: a fixed OTP for test users, a bypass flag in non-production, or an API to fetch the latest OTP. For authenticator apps, store the test account's TOTP secret and generate codes in Java with a TOTP library. Keep production 2FA untouched and secrets in the CI credential store.
Tips to crack the Sprinklr Automation Testing interview
Practise medium-level DSA problems on arrays, trees, graphs and dynamic programming, as coding rounds can be fairly demanding.
Revise operating systems, DBMS and basic system design, and explain trade-offs clearly when discussing your project architecture.
Learn about customer experience management and social media tools to explain how Sprinklr's platform helps large enterprises.
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; Sprinklr interviewers usually ask follow-ups on your first answer.
Frequently asked questions
How many rounds are there in the Sprinklr Automation Testing interview?
Candidates usually go through 5 stages: Online coding assessment; Technical round 1 (DSA); Technical round 2 (design or CS fundamentals); Hiring manager 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 Sprinklr Automation Testing interview?
This practice set leans on TestNG Framework (6), Core Java for Testers (5), Selenium WebDriver (5), Appium Mobile Automation (5). Revise those first, then practise explaining one or two of your own projects end to end, because most Sprinklr interviewers ask you to walk through real work.
Are these the exact questions asked at Sprinklr?
No. These are curated practice questions that match the skills and difficulty usually tested in product interviews like Sprinklr's. They are not a leaked or verified list of past questions.
Where does Sprinklr hire Automation Testing professionals in India?
Sprinklr has large teams in Gurugram, Bengaluru. Openings and locations change often, so check the Sprinklr careers page and filter by city and experience.
Automation Testing questions for similar companies