Lecture 18: Software Testing Flashcards
What is testing?
A collection of guidelines, methodologies, and tools for examining our products for errors and inconsistencies in stated requirements, implied requirements, and missing requirements
Whose job is it to test?
Developers, test engineers, customers, and other stakeholders all have responsibilities
Debugging vs. Testing
Testing uncovers the faults, debugging diagnoses and removes faults
What are the types of faults?
Omission: Requirements we forgot to include
Commission: Requirements we failed to implement correctly
What is the functional testing classification?
Black box approach
Concerned with system functionality and features, not concerned with implementation details
Takes the view of user or client
What is correctness testing? (functional)
Be sure that the systems meets all of its stated and implied requirements
What is performance testing? (functional)
Determine how well the system meets all of its stated and implied requirements
Determines resource limitations and inefficiencies of the system
What is stress testing? (functional)
Uncover any hidden faults which may cause the system to be unreliable under high loads or partial system failures
What is the structural testing classification?
White box approach
Concerned with implementation details
Takes the viewpoint of the developer
Tends to find errors of commission, not omission
What is statement coverage testing? (structural)
Be sure that all parts (hardware) and all statements (software) are used or executed at least once
What is decision coverage testing? (structural)
Check to be sure all decision points are exercised at least once for each possible outcome
What is path coverage testing? (structural)
Ensure all possible paths through the decision points are used at least once
Will testing in the real world assure us (100%) that there are no more faults?
No, our goal should be to provide enough (risk based) testing to ensure the probability of failure is low enough to be acceptable
What is path testing?
Based on selecting paths through the software, some % of full path coverage
Good for module level testing
What is transaction flow testing?
Traces the objects from their birth to their death, and possibly beyond, through the system