Curated interview practice questions with answers. These are practice scenarios, not a verified list of past interview questions.
About AMD hiring for Automation Testing roles
AMD is an American semiconductor company that designs CPUs, GPUs, adaptive chips and data centre accelerators, including Ryzen, EPYC, Radeon and Instinct products. It acquired Xilinx, adding FPGA and adaptive computing products. In India it has large design centres that hire chip design, verification, physical design, software and firmware engineers.
For Automation Testing roles, this AMD practice set focuses most on TestNG Framework (7), REST Assured (6), Selenium WebDriver (5), Page Object Model (5). It has 1 easy, 35 medium, 4 hard questions, so you can start easy and work up to the harder ones.
Company type
Hardware & semiconductors
Headquarters
Santa Clara, California, USA
Main India offices
Bengaluru, Hyderabad
AMD Automation Testing interview process
Online assessment or resume screening
Technical round 1 (digital design or programming)
Technical round 2 (domain depth)
Hiring manager round
Typical pattern based on public candidate experiences. Rounds vary by role, team and year.
Solved for AMDStart 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.
Re-locate the element after the DOM refreshes, use explicit waits for the refreshed element, don't keep element references for long, or wrap the action in retry logic.
02
How do you handle a test that is flaky only in headless mode?
Split pages into components for repeated or complex areas, keep only user actions as public methods, move generic helpers to BasePage or utilities, and avoid one method per element. If a page has distinct modes like view and edit, use separate classes. Review page classes during code review and refactor when they cross a few hundred lines.
04
File upload tests pass locally but fail when they run on a remote Grid. Why?
sendKeys with a file path sends a path that exists on your test machine, but the browser runs on the remote node where that path does not exist. Set a LocalFileDetector on the RemoteWebDriver, using ((RemoteWebDriver) driver).setFileDetector(new LocalFileDetector()), so Selenium zips and transfers the file to the node first. Alternatively mount the test data folder into the node container. Always use absolute paths.
Grid 4 is split into the Router, which receives all requests, the Distributor, which assigns new sessions to nodes, the Session Map, which records which node owns each session, the New Session Queue, which holds requests waiting for a free slot, the Event Bus, which lets components communicate, and Nodes, which run the browsers. In standalone or hub mode these run in one process, but they can also be deployed separately to scale.
Add the rerun plugin, for example rerun:target/failed.txt, to the main runner. It writes the location of each failed scenario. Create a second runner whose features point to @target/failed.txt and run it after the main run in Maven or Jenkins. Use reruns to separate real failures from flaky ones, but track flaky scenarios and fix them instead of hiding them.
07
What is the difference between Comparable and Comparator in Java?
Comparable defines the natural order inside the class (compareTo); Comparator defines custom orders externally (compare), useful for sorting test data in several ways.
08
What is the difference between hard and soft assertions?
Put explicit waits in page methods or BasePage helpers, not in tests. For example click() waits for elementToBeClickable before clicking, and a page's isLoaded() waits for a key element. Avoid Thread.sleep and avoid mixing implicit and explicit waits. Keep the timeout configurable so CI can use a slightly longer value than local runs.
12
What are pre-processors and post-processors in JMeter?
Pre-processors run before a sampler, for example a JSR223 PreProcessor that builds a signature or timestamp, or User Parameters that set values per thread. Post-processors run after a sampler and usually extract data from the response, such as JSON Extractor, Regular Expression Extractor or Boundary Extractor, storing it as a variable for later requests. Their scope depends on where they sit in the tree, so place them as children of the right sampler.
13
How do you take a screenshot on failure in TestNG?
Wait for a stable end state instead of sleeping, for example wait until the target element is visible and enabled or until a spinner disappears. On test devices and emulators you can disable animations with adb shell settings put global window_animation_scale 0, along with the transition and animator scales. Ask developers for an idle indicator if needed. Disabling animations makes tests faster and more stable, but keep one manual check of the real animations.
On a configuration method like @AfterMethod(alwaysRun = true), it makes the method run even when tests fail or are skipped, or when groups filter would exclude it. It is essential for cleanup such as driver.quit(). On a test with dependsOnMethods, alwaysRun = true runs it even if the dependency failed. Missing alwaysRun on teardown is a common cause of leftover browsers in CI.
20
How do you handle an element inside a shadow DOM in Selenium 4?
Find the shadow host element, then call getShadowRoot() to get a SearchContext, and search inside it with CSS selectors: driver.findElement(By.cssSelector("my-app")).getShadowRoot().findElement(By.cssSelector("#submit")). XPath does not work inside shadow roots. For nested shadow roots, repeat the step for each host. Closed shadow roots cannot be accessed this way.
Continuous Integration builds and tests every commit, and Continuous Delivery ships automatically. Automated tests give fast feedback and gate releases.
22
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.
23
Your Jenkins test stage marks the build green even though tests failed. Why?
Possibly testFailureIgnore is set to true in Surefire, the shell step uses || true, or the script swallows Maven's exit code. Sometimes tests catch exceptions and never fail. Check the console log for Maven's BUILD result and Surefire summary. Fix the configuration so failures produce a non-zero exit, or use junit publishing to mark the build unstable when tests fail.
24
What is the LoadableComponent pattern in Selenium?
LoadableComponent is a Selenium support class that standardises how a page object ensures it is loaded. You extend it and implement load(), which navigates to the page, and isLoaded(), which throws an Error if the page is not ready. Calling get() checks isLoaded and calls load only if needed, then checks again. It gives a consistent, self-verifying way to open pages and fails fast with a clear message.
25
Your test framework leaks memory during long runs and Jenkins agents crash. How do you investigate?
Check whether drivers are always quit, ThreadLocal values are removed, and static lists or maps keep growing, such as collecting screenshots or response objects. Enable heap dumps with -XX:+HeapDumpOnOutOfMemoryError and analyse with a tool like VisualVM or Eclipse MAT to see which objects hold memory. Fix the leak and tune Surefire's forked JVM memory with argLine if needed.
First confirm the server uses a self-signed or internal certificate. The proper fix is to import the company CA certificate into a truststore and configure REST Assured with trustStore(path, password). As a temporary measure in a test environment only, relaxedHTTPSValidation() skips checks. Never use relaxed validation against production, and raise the certificate issue with the infra team.
Write a method that builds the locator from a parameter, for example private By rowFor(String name) { return By.xpath("//tr[td[normalize-space()='" + name + "']]"); }, and expose actions like deleteUser(name). Keep the template in the page class, not in tests. Escape quotes if names may contain them, and prefer CSS with data attributes when the application provides them.
Situation: a manager questioned why my mobile estimate was nearly double the web one. Task: justify it with facts. Action: I listed the extra work: two platforms with separate locators, device and OS version matrix, slower sessions, app builds and signing, gestures and permissions, and device lab maintenance. I showed timings from a pilot of five tests. Result: the manager accepted a phased plan starting with Android smoke tests, and later estimates were trusted because they were data-backed.
32
What are timers in JMeter and why is think time important?
By default JMeter fires requests back to back, which is far more aggressive than real users who read pages and fill forms. Timers add delays: Constant Timer, Uniform Random Timer and Gaussian Random Timer add think time, while Constant Throughput Timer and Precise Throughput Timer control request rate. Realistic think time makes the user count meaningful; without it, 100 threads may generate the load of thousands of real users.
33
What is JsonPath and how do you use it for nested JSON?
JsonPath (Groovy GPath syntax in REST Assured) navigates JSON with dot notation. For {"data":{"items":[{"price":10}]}} you use data.items[0].price. You can also filter: data.items.findAll { it.price > 5 }.name returns names of items costing more than 5. Use it inside body() assertions or via response.jsonPath().getList("data.items.name") to extract values for further checks.
34
What are page components or page fragments in POM?
Components are classes for UI parts that repeat across pages, such as the header, search bar, date picker or a data table. A page object then has-a component: homePage.header().search("laptop"). This follows composition over inheritance, avoids duplicate locators and matches modern component-based frontends. Components are usually scoped to a root WebElement so locators search only inside that element.
35
How do you read data from Excel or properties files in Java?
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.
37
How do you test deep links in a mobile app with Appium?
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.
38
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);
}
39
How would you design one mobile framework that serves both Android and iOS?
Keep tests platform-neutral and push differences into page objects. Use Appium's @AndroidFindBy and @iOSXCUITFindBy annotations, or separate locator files per platform, behind one screen class. Create the driver through a factory that reads platform from configuration. Ask developers to add the same accessibility ids on both platforms so most locators are shared. Put gestures and waits in a common base screen, and tag tests that apply to only one platform.
A quality gate is a rule a build must pass before moving forward, such as all smoke tests passing, code coverage above a threshold, no critical static analysis issues, or no new high-severity vulnerabilities. If the gate fails, the pipeline stops and the change is not deployed. Gates make quality an automatic decision instead of a manual check.
Tips to crack the AMD Automation Testing interview
Revise digital electronics, computer architecture, Verilog and verification basics for silicon roles, with clear explanations of timing concepts.
For software and driver roles, revise C, C++, operating systems and parallel computing basics, including GPU programming concepts.
Prepare detailed explanations of VLSI or embedded projects, including tools used, problems faced and how you solved them.
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; AMD interviewers usually ask follow-ups on your first answer.
Frequently asked questions
How many rounds are there in the AMD Automation Testing interview?
Candidates usually go through 4 stages: Online assessment or resume screening; Technical round 1 (digital design or programming); Technical round 2 (domain depth); Hiring manager 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 AMD Automation Testing interview?
This practice set leans on TestNG Framework (7), REST Assured (6), Selenium WebDriver (5), Page Object Model (5). Revise those first, then practise explaining one or two of your own projects end to end, because most AMD interviewers ask you to walk through real work.
Are these the exact questions asked at AMD?
No. These are curated practice questions that match the skills and difficulty usually tested in hardware & semiconductors interviews like AMD's. They are not a leaked or verified list of past questions.
Where does AMD hire Automation Testing professionals in India?
AMD has large teams in Bengaluru, Hyderabad. Openings and locations change often, so check the AMD careers page and filter by city and experience.
Automation Testing questions for similar companies