QA Interview
Software Testing Interview Questions (Fundamentals)
Software testing fundamentals interview questions with answers: QA vs QC, verification vs validation, the seven principles, test levels, and testing types.
2,566 words | Article schema | FAQ schema | Breadcrumb schema
Overview
Fundamentals rounds are won on precision, not on how much you can say. When an interviewer asks the difference between verification and validation, they are not looking for two paragraphs. They want a clean, confident contrast that proves you own the vocabulary the rest of the team uses every day. Getting these building blocks right early in an interview buys you trust for the harder questions that follow.
This guide is built for entry-level QA candidates, career switchers, and anyone refreshing the theory before a technical screen. It is organized around the contrasts and concepts that come up again and again: QA versus QC, verification versus validation, the seven testing principles, the levels of testing, and the black-box family of techniques. Each answer is phrased the way you should actually deliver it, definition first, then a short example that shows you understand it rather than memorized it.
One habit will lift every answer here: give the crisp distinction, then anchor it with a concrete example. Anyone can recite that static testing has no code execution. The candidate who adds 'like a requirements review or a code walkthrough before the build even runs' is the one who sounds like they have done it. Read each question, answer it aloud, then check yourself against the model.
What A Fundamentals Round Is Actually Checking
A fundamentals screen is a filter. The interviewer is checking three things quickly: whether you use terms accurately, whether you understand why a concept exists rather than just its dictionary definition, and whether you can keep two similar ideas distinct under mild pressure. Candidates who blur QA with testing, or call every problem a 'bug' without distinguishing error from failure, get quietly downgraded even when their instincts are good.
The fix is to prepare contrasts as pairs and concepts as short stories. Do not memorize isolated definitions; memorize the difference between the two things being compared, because the difference is what the question is really testing. The sections below are deliberately framed as the pairs and lists interviewers reach for, so you rehearse them the way they will be asked.
QA, QC, and Testing Are Not Synonyms
Question: what is the difference between quality assurance, quality control, and testing? Quality assurance is process oriented and preventive: it defines the standards, reviews, and methods that stop defects from being introduced in the first place, so it spans the whole development life cycle. Quality control is product oriented and detective: it inspects the actual built software to find defects that slipped through. Testing is one of the core activities inside quality control, the hands-on execution that surfaces those defects.
The clean summary to deliver: QA is building the right process to prevent defects, QC is checking the product to catch defects, and testing is how QC does that checking. An easy analogy that lands well is a restaurant: QA is the hygiene and recipe standards in the kitchen, QC is tasting the finished dish before it leaves, and testing is the specific act of tasting. Interviewers ask this to see if you understand that quality is more than clicking through screens.
Verification vs Validation
This is the single most-asked fundamentals contrast, so make it effortless. Verification asks 'are we building the product right?' It checks work products against their specifications without running the software: reviews, walkthroughs, and inspections of requirements, designs, and code. Validation asks 'are we building the right product?' It checks the running software against the user's actual needs through dynamic execution: functional testing, system testing, and acceptance testing.
The compact version to say aloud: verification is static and specification-based, validation is dynamic and user-need-based. Verification happens earlier and catches defects cheaply on paper; validation happens later and confirms the real thing satisfies the customer. A tidy example: verifying a login design document against the requirement is verification, while actually logging in on the built page to confirm it meets the user's need is validation. Land the example and this question is money in the bank.
Error, Defect, Bug, and Failure: Precise Terms
Interviewers use this to catch sloppy language. An error (or mistake) is the human action that produces an incorrect result, for example a developer writing the wrong logic. A defect (or fault or bug) is the flaw in the code or document that results from that error. A failure is what happens when that defect executes and the system behaves differently from the expected result in a real run. So the chain is error leads to defect, defect under execution leads to failure.
The nuance worth adding: a defect does not always cause a failure. If the defective line of code is never executed, or the conditions that trigger it never occur, the failure never surfaces even though the defect exists. This is why testing reduces risk but cannot prove the absence of defects. Delivering that chain cleanly, error to defect to failure, plus the point that a defect can lie dormant, marks you as someone who thinks precisely about quality.
The Seven Principles of Software Testing
A frequent request is to list and briefly explain the seven principles. Deliver them as a fast, confident list, then be ready to expand on any one. They are the shared theory that underpins how professional testers reason about coverage and risk, and quoting them signals formal grounding.
- Testing shows the presence of defects, not their absence: passing tests never prove the software is bug free.
- Exhaustive testing is impossible: you cannot test every input and path, so you prioritize with risk and technique.
- Early testing saves time and money: defects found in requirements cost far less than defects found in production.
- Defects cluster: a small number of modules usually contain most of the defects, so focus effort there.
- Beware the pesticide paradox: repeating the same tests stops finding new defects, so you must revise and add cases.
- Testing is context dependent: a banking app and a game are tested differently, with different risks and rigor.
- Absence of errors is a fallacy: software with no known bugs can still fail if it does not meet user needs.
Test Levels From Unit To Acceptance
Question: what are the levels of testing? There are four, moving from smallest scope to broadest. Unit testing verifies individual components or functions in isolation, usually written and run by developers. Integration testing verifies that units work correctly when combined, targeting the interfaces and data flow between them. System testing verifies the complete, integrated application against the full set of requirements in a production-like environment. Acceptance testing verifies that the system meets business needs and is ready for the user to accept, often as user acceptance testing.
The insight that impresses is why the order matters: each level catches a different class of defect. Unit tests catch logic errors cheaply, integration tests catch interface mismatches that units alone cannot reveal, system testing catches end-to-end behavior problems, and acceptance testing catches the gap between what was built and what the business actually wanted. If asked which one you own as a QA, be honest: manual and automation QA usually live at the system and acceptance levels, collaborating on integration.
How Modules Come Together: Integration Approaches
A common follow-up drills into integration testing. Question: what integration approaches do you know? Big bang integration combines all modules at once and tests them together, which is simple but makes fault isolation hard because everything is connected at the same time. Incremental integration adds modules a few at a time, which localizes defects but takes longer to set up.
Within incremental, top-down integration tests from the highest-level modules downward, using stubs to stand in for lower modules not yet ready. Bottom-up integration tests from the lowest-level modules upward, using drivers to simulate the higher modules that call them. A stub is a dummy called module and a driver is a dummy calling module; knowing which is which is a favorite gotcha. Mentioning stubs and drivers correctly shows you understand testing modules that depend on components that do not exist yet.
Static vs Dynamic Testing
Question: what is the difference between static and dynamic testing? Static testing examines the work products without executing the code: requirement reviews, design walkthroughs, code inspections, and static analysis tools. Its power is finding defects extremely early and cheaply, before the software even runs, and catching issues that execution might never reveal, such as unclear requirements or unreachable code. Dynamic testing executes the software and observes its behavior against expected results, which is what most people picture when they think of testing.
The professional framing is that the two are partners, not alternatives. Static testing removes defects on paper so that dynamic testing spends its more expensive execution time on behavior that can only be judged by running the system. A strong candidate notes that reviews (a form of static testing) are consistently among the cheapest, highest-return quality activities, because a defect caught in a requirements review never becomes code, a build, or a production incident.
Black-Box, White-Box, and Grey-Box Testing
Question: contrast black-box, white-box, and grey-box testing. Black-box testing treats the application as an opaque box: you test purely against inputs and expected outputs based on requirements, without knowing or caring about the internal code. Most functional testing a QA does is black box. White-box testing is the opposite: you use knowledge of the internal structure to design tests, targeting code paths, branches, and conditions, which is why it underpins unit testing and code coverage.
Grey-box testing sits in between: you have partial knowledge of the internals, such as the database schema or the API contract, and you use it to design smarter black-box tests. A practical example is knowing that a form writes to a specific table, so you verify the database record after submitting, not just the confirmation message on screen. Positioning grey-box as 'black-box testing informed by some internal knowledge' is the phrasing that shows genuine understanding rather than a memorized triple.
Functional vs Non-Functional Testing
Question: what is the difference between functional and non-functional testing? Functional testing verifies what the system does: it checks features and behavior against functional requirements, for example that a valid payment completes and updates the balance. Non-functional testing verifies how well the system does it: the quality attributes that shape the user's experience even when every feature technically works.
Be ready to name the non-functional types, because that is the real test of depth. Performance testing (speed, throughput, response time under load), security testing (protection against unauthorized access and data leaks), usability testing (how easy and intuitive it is), compatibility testing (across browsers, devices, and operating systems), reliability testing (behavior over time), and scalability testing (behavior as load grows). The one-line summary to close with: functional testing asks does it work, non-functional testing asks does it work well enough to ship.
When Do You Stop Testing?
Because exhaustive testing is impossible, interviewers ask how you decide testing is done. The mature answer is that you stop based on predefined criteria, not on gut feeling or the clock alone. Common signals are: the planned test cases have been executed and pass at the agreed threshold, defect discovery has slowed to a trickle, the critical and high-severity defects are resolved, and the coverage of requirements and risk-based priorities meets the exit criteria the team set in advance.
The point to emphasize is that 'stopping' is a risk decision, not a guarantee of perfection. You are declaring that the remaining risk of shipping is acceptable and understood by the stakeholders who own that call. Framing it this way connects two fundamentals, that testing cannot prove the absence of defects and that testing is context dependent, and shows you understand quality as managed risk rather than an absolute state.
Scenario And Curveball Questions
Fundamentals rounds often end with a curveball to see how you reason. Question: can you guarantee a product is one hundred percent bug free? The correct answer is a confident no, grounded in principle: testing shows the presence of defects, not their absence, and exhaustive testing is impossible, so what you can guarantee is that the software meets its requirements and its known risks have been tested to an agreed level. Overpromising here is a red flag; principled honesty is the green flag.
Another favorite: explain what software testing is to a non-technical person. A good answer avoids jargon entirely. Something like: testing is checking that the software does what people expect before real users rely on it, by trying it the way a careful, slightly mischievous user would, including the mistakes people make. Being able to translate the work into plain language signals that you can communicate risk to product owners and business stakeholders, which is a genuinely valued skill beyond the theory itself.
Frequently Asked Questions
What are the most important software testing fundamentals for an interview?
The high-frequency topics are QA versus QC, verification versus validation, the seven testing principles, the four levels of testing, static versus dynamic testing, the black-box and white-box family, and functional versus non-functional testing. Prepare each as a crisp definition plus a one-line example.
How do I explain verification versus validation simply?
Verification asks 'are we building the product right?' and checks work products against specifications without running the software (reviews and inspections). Validation asks 'are we building the right product?' and checks the running software against user needs through actual test execution. Verification is static and early, validation is dynamic and later.
What is the difference between an error, a defect, and a failure?
An error is the human mistake, a defect (or bug or fault) is the resulting flaw in the code or document, and a failure is the incorrect behavior observed when that defect is executed. A defect can stay dormant and never cause a failure if the faulty code is never run under the triggering conditions.
What are the seven principles of software testing?
Testing shows the presence of defects not their absence, exhaustive testing is impossible, early testing saves time and money, defects cluster, beware the pesticide paradox, testing is context dependent, and absence of errors is a fallacy. Knowing all seven and being able to expand on one signals formal grounding.
What is the difference between functional and non-functional testing?
Functional testing verifies what the system does against functional requirements, such as completing a payment. Non-functional testing verifies how well it does it: performance, security, usability, compatibility, reliability, and scalability. Functional asks does it work, non-functional asks does it work well enough to ship.
Are software testing and QA the same thing?
No. Quality assurance is preventive and process oriented, defining standards and reviews that stop defects from being introduced across the life cycle. Testing is a detective activity inside quality control that inspects the built product to find defects. Testing is part of quality control, which is part of the broader quality assurance picture.
Related QAJobFit Guides
- AI in Software Testing Interview Questions and Answers
- Manual Testing Interview Questions and Answers (2026)
- Accessibility Testing Interview Questions
- Agile and Scrum Testing Interview Questions
- API Testing Interview Questions and Answers (2026)
- API Testing Interview Questions for 2 Years Experience