Home
All articles
TestingQAInterview PrepSoftware Quality

100 Software Testing Interview Questions & Answers

August 19, 202660 min read

Testing interviews mix technical depth (test design techniques, automation frameworks, the test pyramid) with the behavioral and situational rounds that catch people off guard — "how would you test an ATM as an end-user" isn't a trick question, it's checking whether you can think systematically about coverage on the spot. This covers all 100 questions, organized by topic, with code, diagrams, and a mock test at the end.

0 / 100 blocks read

Testing Fundamentals

Q1. What is software testing, and why is it important?

Software testing is the process of evaluating a system to find defects and verify it behaves as intended — important because catching a bug before release is dramatically cheaper (in cost, reputation, and user trust) than catching it in production, and because testing is the primary evidence that software actually does what it's supposed to do, not just that it compiles.

Q2. Define the difference between verification and validation in software testing.

VerificationValidation
QuestionAre we building the product right?Are we building the right product?
Checks againstSpecifications, design documentsActual user needs and requirements
Typical methodsReviews, walkthroughs, static analysisActual testing — running the software

Q3. Explain the software development life cycle and the role testing plays in each phase.

SDLC phaseTesting activity
RequirementsReview requirements for testability and ambiguity
DesignReview design, begin test planning
DevelopmentUnit testing, static analysis, code review
TestingIntegration, system, and acceptance testing
DeploymentSmoke testing, production monitoring
MaintenanceRegression testing on every subsequent change

Q4. What are the different levels of software testing?

The testing levels, roughly narrowest to broadest scope

Unit testing

One function/class in isolation

Integration testing

Multiple units working together

System testing

The whole application end-to-end

Acceptance testing

Does it meet the business/user's actual needs?

Q5. Describe the difference between static and dynamic testing.

Static testingDynamic testing
Executes the code?No — reviews, walkthroughs, static analysisYes — actually runs the software
FindsDesign flaws, style issues, potential bugs before runtimeActual runtime behavior defects
ExampleA code review, a linterRunning a test case and checking the output

Q6. What is a test case, and what elements should it contain?

ElementPurpose
Test case IDUnique identifier
PreconditionsWhat state the system must be in before running it
StepsThe exact actions to perform, in order
Expected resultWhat should happen if the software is correct
Actual result / statusWhat actually happened, and pass/fail

Q7. Explain the concept of coverage in testing and the main types of coverage (e.g., line, branch, path, statement).

Coverage typeMeasures whether every…
Statement/line coverageLine of code has been executed at least once
Branch coverageBranch (if/else, each case) has been executed
Path coveragePossible execution path through the code has been exercised
Condition coverageBoolean sub-expression has evaluated to both true and false

Coverage measures how much of the code your tests actually exercise — but 100% line coverage doesn't guarantee correctness, since a line can execute without its result ever being properly asserted on; coverage is a useful signal for finding untested code, not a proof of quality by itself.

Q8. What is the difference between white-box, black-box, and grey-box testing?

Black-boxWhite-boxGrey-box
Knowledge of internalsNone — tests only inputs/outputsFull — tests internal logic/code pathsPartial — some internal knowledge
Typical testerQA, end usersDevelopersA mix of both roles
Example techniqueEquivalence partitioningBranch coverage analysisIntegration testing with some architecture knowledge

Q9. What is regression testing, and why is it performed?

Regression testing re-runs existing tests after a code change to verify that change didn't break anything that previously worked — performed because even a small, seemingly isolated change can have unexpected ripple effects elsewhere in the system, and manually re-checking everything by hand doesn't scale past a trivial codebase.

Q10. Explain unit testing and which tools you might use for it.

Language/ecosystemCommon tool
.NET / C#xUnit, NUnit, MSTest
JavaScriptJest, Vitest
Pythonpytest, unittest
JavaJUnit

Unit testing verifies one small unit of code (a function, a class method) in isolation, typically with its dependencies mocked — the fastest, cheapest tests to run and the foundation of the test pyramid, covered further in this blog's language-specific interview posts (.NET Core, C#, JavaScript).

Page110

Enjoyed this?

Let's talk about building something together.