Ch. 8: Software testing Flashcards
What are the goals of testing software?
- Demonstrate to the developer and the customer that the software meets its requirements
- Discover situations where the behavior of the software is incorrect, undesirable or doesn’t conform to its specification
What does your first goal lead to?
Validation testing
What does your second goal lead to?
Defect testing
What does validation testing do?
Demonstrates that the software meets its requirements
What does defect testing do?
Discovers faults of defects in the software where it’s behavior is incorrect with it’s specification
What does a successful validation test show?
That the system operates as intended
What does a successful defect test show?
Exposes a defect in the system
What is the difference between verification and validation?
Verification: Software should conform to its specification
Validation: Software should do what the user really requires
What is the aim of verification and validation?
To establish confidence that the system is fit for purpose
What is software inspections concerned with?
The analysis of the static system representation to discover problems
What is software testing concerned with?
Exercising and observing product behavior
What are the advantages of inspections?
- Don’t have to be concerned with interactions between errors
- Incomplete versions of a system can be inspected without additional costs
- Can consider broader quality attributes of a program
What verification techniques should be used during the verification and validation process?
- Testing
- Inspections
What are the stages of testing?
- Development testing
- Release testing
- User testing
What is development testing?
System is tested during development to discover bugs and defects
What is release testing?
Separate testing team tests a complete version of the system before its released to users
What is user testing?
Users of a system test the system in their own environment
What type of tests are used in development testing?
- Unit testing
- Component testing
- System testing
What is unit testing?
Testing individual components in isolation
Whenever possible unit testing should be __
automated
What are the general testing guidelines?
- Choose inputs that force the system to generate all error messages
- Design inputs that cause input buffers to overflow
- Repeat the same input or series of inputs numerous times
- Force invalid outputs to be generated
- Force computation results to be too large or too small
What are the objectives of interface testing?
To detect faults due to interface errors or invalid assumptions about interfaces
What the are types of interfaces?
- Parameter interfaces
- Shared memory interfaces
- Procedural interfaces
- Message passing interfaces
What are the interface testing guidelines?
- Design tests so that parameters to a called procedure are at the extreme ends of their ranges
- Always test pointer parameters with null pointers
- Design tests which cause the component to fail
- Use stress testing in message passing sysems
- In shared memory systems, vary the order in which components are activated