What are the typical fault rates during coding versus after thorough testing?
During coding: 30-85 errors per 1000 LOC; After thorough testing: 0.5-3 errors per 1000 LOC
What is the primary goal of testing?
To discover as many errors as possible
According to Glen Myers (1979), what is the definition of testing?
Testing is the process of executing a program with the intent of finding an error
What is Dijkstra’s famous quote regarding software testing?
Testing cannot show the absence of errors, only their presence
What is ‘Observability’ in software testing?
‘What you see is what you test’; having observable outputs, system states, and accessible source code
What is ‘Controllability’ in software testing?
The ability to control the software’s execution, allowing for automated and optimized testing
What is Black Box testing?
Functional testing that checks against requirements (Specification implies Test cases)
What is White Box testing?
Structural testing that checks internal logic and flow (Program implies Test cases)
What is the difference between Verification and Validation?
Validation: ‘Are we building the right product?’ (User requirements). Verification: ‘Are we building the product right?’ (Phase requirements)
What are ‘Drivers’ in Unit Testing?
Modules that pass test data to the unit being tested and print or compare the results
What are ‘Stubs’ in Unit Testing?
Dummy modules that replace not-yet-implemented modules called by the unit being tested
What is Regression Testing?
Testing to ensure that new errors are not introduced after changes are made
What is Recovery Testing?
Checks the system’s ability to recover from failures
What is Security Testing?
Verifies that system protection mechanisms prevent improper penetration or data alteration
What is Stress Testing?
Checks how the program deals with abnormal resource demands (quantity, frequency, or volume)
What is Performance Testing?
Designed to test the run-time performance of software, especially real-time software
What is Acceptance Testing?
A subset of system tests agreed upon by customer and developer, performed at the customer site in their normal environment
What is the difference between Alpha and Beta testing?
Alpha: Tested by customer at developer’s site. Beta: Tested by customer at their own site without developer present
What is Statement Coverage?
A white-box criterion where every statement in the program is executed at least once
What is Decision (Branch) Coverage?
Every decision (diamond/condition) must have a true and false outcome at least once
What is Modified Condition/Decision Coverage (MCDC)?
Every condition in a decision has taken all possible outcomes, and each condition is shown to affect the decision outcome independently
What is Basis Path Testing?
A technique to execute every statement and every edge in the program flow at least once by finding linearly independent paths
What is Cyclomatic Complexity?
A metric measuring logical complexity that defines the upper bound for the number of test cases needed to ensure statement and edge coverage
What are the three formulas for Cyclomatic Complexity V(G)?