13
Software Testing
The very root cause. Errors are committed by people.
A fault is the result of a human error in the software documentation, code, etc.
A failure occurs when a fault executes.
Consequences of failures; failure occurence may or may not be apparent to the user.
Any of the above, usually a fault, aka bug.
Error----propagation---->Fault----causation---->Failure----results in---->Incident
Design test values based on domain knowledge of the program and human knowledge of testing.
Design test values to satisfy coverage criteria, covering all lines of codes.
Embed test values into executable scripts.
Run tests the on the software and record the results.
Evaluate results of testing, report to developers.
- Performance, Load, Endurance, Localization, Recovery, Security, Stress etc.
Testing a software system using all the possible inputs, not possible mostly.
For example exhaustive testing of a compiler program would be compiling all possible codes, which is not possible.
A test-adequacy criterion leads to test obligations. Test coverage is the percentage of obligations that are met.
Functional tests black-box, Structural tests are white-box
- Specification -> Black-Box Testing
- Implementation -> White (glass)-Box Testing
Missing functionallities cannot be revealed by white-box techniques. -> at Spesification
Unexpected functionallities cannot be revealed by black-box techniques. -> at Implementation
Preparation for Test --- Preparation for Test --- Unit Testing --- Acceptance system Testing
We would like to have a sense of complete testing and we would hope to avoid test redundancy.
In equivalence class testing, we partitioned input domains into equivalence classes, on the assumption that the behavior
of the program is similar for all input values of a equivalence class.
of the program is similar for all input values of a equivalence class.
Above assumption may not ve true in all cases as some typical programming errors happen to be at the boundary between
different equivalence classes.
different equivalence classes.
This is what boundary value testing focuses on, simpler but complementary to equivalence class testing.