The primary purpose of software testing is to identify defects and verify that the software meets specified requirements.
It's impossible to prove software has no defects (option A), and testing doesn't directly affect performance (option C) or code size (option D).
2. Which of these is NOT a type of functional testing?
Performance testing is a type of non-functional testing that evaluates how the system performs under certain conditions.
Unit, integration, and system testing are all types of functional testing that verify specific functionalities.
3. What is the difference between verification and validation?
Verification ensures the product is being built correctly according to specifications (process-oriented),
while validation ensures the right product is being built to meet user needs (product-oriented).
This is often summarized as "Verification: Are we building the product right? Validation: Are we building the right product?"
4. Which testing technique is based on the internal code structure?
White-box testing (also called clear-box or structural testing) examines the internal structure and implementation of the code.
Black-box testing focuses on functionality without knowledge of internal implementation, while grey-box combines both approaches.
5. What is the purpose of regression testing?
Regression testing verifies that previously developed and tested software still performs correctly after changes,
ensuring that new code changes haven't adversely affected existing functionality.
6. Which of these is an example of black-box testing technique?
Equivalence partitioning is a black-box technique that divides input data into equivalent partitions.
The other options (statement coverage, path testing, branch coverage) are white-box techniques based on code structure.
7. What is the main advantage of automated testing?
The main advantage of automated testing is the ability to repeatedly execute test cases quickly and consistently,
especially for regression testing. It doesn't eliminate manual testing (option A), can't find all bugs (option B),
and isn't always cheaper (option D) as it requires initial investment.
8. Which testing level focuses on individual components or modules?
Unit testing verifies the smallest testable parts (units) of the software, typically individual functions or methods.
Integration testing checks interactions between components, system testing evaluates the complete system,
and acceptance testing validates the system against business requirements.
9. What is a test case?
A test case is a set of conditions or variables under which a tester will determine whether a feature or requirement
is working correctly. It typically includes inputs, execution conditions, and expected results.
10. Which principle states that exhaustive testing is impossible?
The principle "Testing shows presence of defects" implies that testing can show defects are present,
but cannot prove there are no defects. Exhaustive testing (testing all possible combinations) is impractical
except for trivial cases, so we use risk analysis and prioritization to guide testing efforts.