Professional Documents
Culture Documents
NG
Testing:
One of the practical methods commonly used to detect
the presence of errors (failures) in a computer
program is to test it for a set of inputs.
The output
is correct?
Inputs
Our program
Expected results
=?
Obtained results
- No code inspection
- No model checking
- No debugging 2
- No code analysis
- No bug fixing
Software testing
Testing level
System testing:
Block Box testing
White Box testing
Interface testing
Software Testing:
Software testing is a process of verifying and validating that a
software application or program.
Verification
Validation
Defect
WHY DO SOFTWARE TESTING?
Business
Requirements
Functional Design
Validation and
verification
Production Verification
User Acceptance
Testing
System and
Integration Testing
Unit Testing
Testing
Relationship
Work flow
Testing Level:
Unit testing
System testing
Path testing:
Make sure all paths in the program are executed
Branch Testing (Conditional Testing): Make sure that each possible outcome
from a condition is tested at least once)
White-Box Testing
LOOP TESTING
Simple
loop
Nested
Loops
Concatenated
Unstructured
Loops
Loops
Why is loop testing important?
Black-box Testing:
Potential combinatorial explosion
of test cases (valid & invalid data)
Often not clear whether the
selected test cases uncover a
particular error
Does not discover extraneous use
cases ("features")
Error detection
Testing:
Debugging:
Monitoring:
Error recovery
What is this?
A failure?
An error?
A fault?
Need to specify
the desired behavior first!
Erroneous
State
Algorithmic Fault