Академический Документы
Профессиональный Документы
Культура Документы
Object-Oriented and
Classical Software
Engineering
Fifth Edition, WCB/McGraw-Hill, 2002
Stephen R. Schach
srs@vuse.vanderbilt.edu
TESTING
● Quality issues
● Nonexecution-based testing
● Execution-based testing
● What should be tested?
● Testing versus correctness proofs
● Who should perform execution-based testing?
● When testing stops
● “V & V”
– Verification
» Determine if the phase was completed correctly
– Validation
» Determine if the product as a whole satisfies its requirements
● Warning
– “Verify” also used for all nonexecution-based testing
● Not “excellence”
● Extent to which software satisfies its specifications
● Software Quality Assurance (SQA)
– Goes far beyond V & V
– Managerial independence
» development group
» SQA group
● Underlying principles
– We should not review our own work
– Group synergy
● Five-stage process
– Overview
– Preparation, aided by statistics of fault types
– Inspection
– Rework
– Follow-up
● Definitions
– Failure (incorrect behavior)
– Fault (NOT “bug”)
– Error (mistake made by programmer)
● Nonsensical statement
– “Testing is demonstration that faults are not present”
● NOT necessary
● NOT sufficient
● Flowchart of
code segment
● Lesson:
● Even if product is proved correct,
it must STILL be tested.
● Testing is destructive
– A successful test finds a fault
● Solution
– 1. The programmer does informal testing
– 2. SQA does systematic testing
– 3. The programmer debugs the module
● All test cases must be
– Planned beforehand, including expected output
– Retained afterwards