ISTQB - International Software Testing Qualifications Board Fundamentals of Software Testing Questions and Answers — Questions and Answers
Question 1: Which of the following statements best describes the difference between testing and debugging?
- Testing is performed by developers to find defects, while debugging is performed by testers to confirm fixes.
- Testing aims to cause failures and find defects, while debugging is the process of finding, analyzing, and removing the causes of failures. (Correct answer)
- Testing and debugging are two terms for the same activity of finding and fixing defects in software.
- Debugging must be completed before any testing activities can be initiated to ensure a stable test environment.
Correct answer: Testing aims to cause failures and find defects, while debugging is the process of finding, analyzing, and removing the causes of failures.
According to the ISTQB, testing and debugging are distinct activities. Testing is the process of finding defects, which may cause failures. Debugging is the development activity that involves finding the root cause of a failure (the defect), analyzing it, and fixing it.
Question 2: A testing team has been using the same set of test cases for a system for multiple release cycles. Over time, they find that these tests are no longer discovering new defects. Which testing principle does this scenario illustrate?
- Testing is context-dependent.
- Absence-of-errors fallacy.
- Pesticide paradox. (Correct answer)
- Defect clustering.
Correct answer: Pesticide paradox.
The pesticide paradox principle states that if the same tests are repeated over and over again, eventually the same set of test cases will no longer find any new defects. To overcome this, test cases need to be regularly reviewed and revised, and new and different tests need to be written to exercise different parts of the software or system.
Question 3: During which activity of the Fundamental Test Process are the overall testing objectives and test approach defined?
- Test Analysis and Design
- Test Implementation and Execution
- Evaluating Exit Criteria and Reporting
- Test Planning and Control (Correct answer)
Correct answer: Test Planning and Control
Test Planning and Control is the initial activity in the Fundamental Test Process. During this phase, the scope, objectives, risks, and overall approach to testing are determined. This includes defining the test strategy, scheduling activities, and specifying the resources needed.
Question 4: A tester is reviewing the system requirements specification to check for ambiguities and contradictions before any code is written. What type of testing is being performed?
- Component Testing
- Static Testing (Correct answer)
- Black-box Testing
- Non-functional Testing
Correct answer: Static Testing
Static testing involves the examination of work products, such as requirements, design documents, or code, without executing the software itself. Reviews, walkthroughs, and static analysis are common static testing techniques used to find defects early in the lifecycle.
Question 5: Which of the following is a primary objective of Acceptance Testing?
- To verify the interactions between integrated system components.
- To find as many defects as possible before the software is released.
- To establish confidence that the system meets the needs of the users and stakeholders. (Correct answer)
- To test individual units or modules of code in isolation.
Correct answer: To establish confidence that the system meets the needs of the users and stakeholders.
Acceptance Testing is a test level that focuses on determining whether the software is fit for purpose and meets the business and user requirements. Its main objective is to build confidence that the system is ready for deployment and use by end-users.
Question 6: A project manager states, "We have run all our tests and have found no errors, therefore the software is ready for release." This statement is an example of which testing principle?
- Exhaustive testing is impossible.
- Early testing saves time and money.
- Testing shows the presence of defects.
- Absence-of-errors fallacy. (Correct answer)
Correct answer: Absence-of-errors fallacy.
The 'Absence-of-errors fallacy' principle warns that finding and fixing many defects does not guarantee a successful system. The system could still be unusable if it doesn't meet user needs and expectations, even if it is 99% bug-free. Testing must also validate that the right system was built.
Which of the following statements best describes the difference between testing and debugging?