/
Software Testing Principles
Save to my account
Sign up
Report Bug
Software Testing Principles
Software Testing Principles
Study
Question
What is software testing?
Answer
Software testing is the process of verifying and validating whether a software product or application is working as expected.
Question
What is the main difference between verification and validation in software testing?
Answer
Verification asks 'Are we building the product right?' and ensures the software conforms to its specifications, while validation asks 'Are we building the right product?' and ensures the software meets the user's real requirements.
Question
What is the ultimate aim of Verification and Validation (V&V)?
Answer
The aim of V&V is to establish confidence that the system is fit for its intended purpose.
Question
How do verification and validation differ in terms of process?
Answer
Verification is a static process that involves checking documents, design, and code to ensure they meet set conditions. Validation is a dynamic process that involves running the software with test data to ensure it meets users' real requirements and expectations.
Question
What are static and dynamic testing?
Answer
Static testing involves reviews, walkthroughs, or inspections without executing the code, while dynamic testing involves executing the programmed code with test cases to check its behavior.
Question
What are the types of static testing and how are they different?
Answer
Peer Review is informal feedback by a peer; Walkthrough involves the author explaining the artifact to others; Inspection is a formal, structured meeting with roles like moderator and scribe to find issues in the artifact.
Question
Why can delaying error detection in dynamic testing be costly?
Answer
Because the cost to correct errors grows exponentially the longer errors remain undetected, potentially becoming a hundred times more expensive if found after delivery.
Question
What are the two main goals of dynamic testing?
Answer
To show that a program works as intended and to discover defects before the software is put into use.
Question
What principle states that testing can demonstrate the presence of defects but never their absence?
Answer
Principle 1: Testing shows the presence of defects but cannot prove there are no defects.
Question
Why is exhaustive testing generally impossible, and what should be done instead?
Answer
Exhaustive testing is impossible because testing all input combinations and preconditions is not feasible except in trivial cases. Risk analysis and prioritization should focus the testing efforts instead.
Question
What does Principle 3 – Early Testing mean in software testing?
Answer
Testing activities should start as early as possible in the Software Development Life Cycle (SDLC) to find defects early.