Software Testing Fundamentals Flashcards
Q: What is the purpose of software testing?
A: To find errors and verify that the software satisfies specified requirements.
Q: What are the entities involved in the testing problem?
A: P (Program), S (Specification), O (Observed behavior), T (Test cases).
Q: What is the significance of the testing axiom “Testing cannot show that bugs do not exist”?
A: It emphasizes that testing can only reveal the presence of bugs, not prove their absence.
Q: Why is exhaustive testing considered impossible?
A: Because it is impractical to test all possible inputs and scenarios in a complex software system.
Q: What are the three types of errors in software testing?
:
Error: Human action leading to an incorrect result.
Fault (Defect/Bug): Incorrect code or data definition causing failure.
Failure: Deviation from expected behavior due to faults
Q: What is the Pareto principle in software testing?
A: 80% of the bugs are often found in 20% of the code.
Q: Why is it important to prioritize tests by risk?
A: High-risk areas of the software are more likely to cause critical failures, so they should be tested first.
Q: What is the “pesticide paradox”?
A: Repeated execution of the same tests will eventually stop finding new bugs.
Q: What are the different levels of testing?
Unit Testing: Testing individual components.
Integration Testing: Testing interactions between components.
System Testing: Testing the entire system as a whole.
Q: What is regression testing?
A: Testing previously tested components to ensure they still work after changes.
Q: What are the common elements of a test plan?
A: Entry criteria, testing activities, schedule, task assignments, test strategy, tools, exit criteria.
Q: What is a test case?
A: A set of inputs, execution conditions, and expected results used to verify a specific aspect of software functionality.
Q: What is test coverage, and why is it important?
A: Test coverage measures how much of the code is tested. It helps assess the thoroughness of the test suite.
Q: What is the difference between statement coverage and branch coverage?
Statement Coverage: Tests each statement at least once.
Branch Coverage: Tests all possible branches in the code.