Software Testing Interview Questions
2026 Edition
Manual testing, Selenium, TestNG, API testing and the scenario questions every QA fresher faces — curated from the mock interviews we run at The Kiran Academy, with notes on how interviewers dig deeper.
🔍 Testing Fundamentals 8 questions
1What is software testing and why is it needed?▾
2SDLC vs STLC?▾
3Verification vs validation?▾
4QA vs QC vs Testing?▾
5What are the levels of testing?▾
6Functional vs non-functional testing?▾
7White box vs black box vs grey box testing?▾
8What is a test plan vs a test strategy?▾
📝 Test Design & Defects 7 questions
9Test case vs test scenario?▾
10Explain boundary value analysis and equivalence partitioning.▾
11Severity vs priority — with examples.▾
12Explain the defect/bug life cycle.▾
13Regression testing vs retesting?▾
14What is test coverage and how do you measure it for manual testing?▾
15What goes into a good bug report?▾
🧭 Types of Testing 6 questions
16Smoke vs sanity testing?▾
17What is exploratory testing and when is it valuable?▾
18What is ad-hoc testing and how is it different from exploratory?▾
19What is performance testing? Load vs stress?▾
20What is compatibility testing?▾
21What is API testing and why test below the UI?▾
🤖 Selenium & Automation 8 questions
22When should you automate a test — and when not?▾
23What are the components of the Selenium suite?▾
24What locators does Selenium support, and which do you prefer?▾
driver.findElement(By.id("username"));
driver.findElement(By.cssSelector(".login-form input[type='email']"));
driver.findElement(By.xpath("//button[text()='Sign In']"));
25Absolute vs relative XPath?▾
/html/body/div[2]/form/input — breaks the moment the page structure shifts; avoid it. Relative starts from anywhere with //: //input[@id='email'] — shorter and resilient. Know the power functions: contains(), starts-with(), text(), and axes like following-sibling. 26Implicit vs explicit wait?▾
WebDriverWait + ExpectedConditions for one specific condition (clickable, visible, text present). Best practice: rely on explicit waits, never Thread.sleep(), and avoid mixing the two (it makes timeouts unpredictable). WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10));
wait.until(ExpectedConditions.elementToBeClickable(By.id("pay"))).click();
27findElement vs findElements?▾
findElement returns the first matching WebElement and throws NoSuchElementException if none exists. findElements returns a List<WebElement> — empty list (no exception) when nothing matches, which makes it the safe way to check element presence. 28How do you handle dropdowns, alerts and frames?▾
Select class — selectByVisibleText/Value/Index. JS alerts: driver.switchTo().alert() then accept/dismiss/getText. Frames: driver.switchTo().frame(nameOrIndexOrElement), and back with defaultContent() — forgetting to switch back is a classic bug in candidates' answers. 29What is the Page Object Model and why use it?▾
loginPage.loginAs(user, pass) instead of raw findElements. When the UI changes you fix one page class, not 50 tests. Combine with PageFactory or plain By locators — and be ready to sketch the folder structure. Knowing Selenium answers is not the same as surviving a QA interview.
Our Mock Interview Program runs you through real QA interview rounds — manual concepts, Selenium hands-on and HR — until these answers come out naturally.
⚙️ TestNG & Frameworks 5 questions
30Why TestNG over JUnit for Selenium projects?▾
testng.xml suite file for selective runs, native data-driven support via @DataProvider, and HTML reports out of the box. (JUnit 5 has closed much of the gap — saying so earns credibility.) 31Order the main TestNG annotations.▾
@BeforeSuite → @BeforeTest → @BeforeClass → @BeforeMethod → @Test → @AfterMethod → @AfterClass → @AfterTest → @AfterSuite. Browser setup typically goes in @BeforeMethod (fresh browser per test) or @BeforeClass (shared browser), teardown in the matching @After. 32Hard assert vs soft assert?▾
Assert.assertEquals) stops the test immediately on failure. Soft assert (SoftAssert) records failures and continues — but reports nothing unless you call assertAll() at the end, the detail interviewers check. Use soft asserts to verify multiple fields on one page in a single test. 33How does @DataProvider enable data-driven testing?▾
@DataProvider returns Object[][]; the @Test method that references it runs once per row with the row's values as parameters — same logic, many datasets. For business-managed data, combine with Apache POI to read the rows from Excel. @DataProvider(name = "logins")
public Object[][] logins() {
return new Object[][] {{"user1", "pass1"}, {"user2", "pass2"}};
}
@Test(dataProvider = "logins")
public void loginTest(String user, String pass) { /* ... */ }
34What types of automation frameworks do you know?▾
🔌 API Testing & Tools 5 questions
35Which HTTP status code groups must a tester know?▾
36GET vs POST vs PUT vs DELETE?▾
37What do you verify in an API test besides the status code?▾
38How do you use Postman in your testing workflow?▾
39How do you use Jira day to day as a tester?▾
🎯 Scenario Questions 3 questions
40"How would you test a login page?" — the structure of a great answer.▾
41A developer rejects your bug saying "works on my machine". What do you do?▾
42When do you stop testing?▾
Want to walk into QA interviews prepared, not hopeful?
Our 4-month Software Testing course covers manual testing, Selenium automation, TestNG, Jira and API testing — with real QA workflows and placement support until you are hired.