Note:SYSC5105

Three conditions necessary to observe the failure
Reachability: The location(s) in the program that contain fault must be reached
Infection: The state of the program must be incorrect
Propagation: The infected state must be propagated to cause some unexpected result/output

Observability: How easy to observe the behavior of a program in terms of the outputs, effect on the environment including hardware and software components
Controllability: How easy it is to proveid a program with the needed inputs

Test driver: executes a test case or a test suite/set
Stub: replaces a called component, simulates a piece of code not yet ready
Oracle: assists in deciding whether a test outcome is successful or not, comparing the actual output against expected output; deciding what output is expected, given the test inputs of a test case

Tech to reduce the number of inputs:
Testing criteria group input elements into classes
One input is selected in each class
Criteria are used to decide which test inputs to use
Criteria are used to decide when to stop testing

Black box:
Scales up - works for a function/class/system/packet
Don’t know how much of the system is being tested
White box:
Based on control and data flow
Not Scales up - mostly applicable at unit and integration testing levels
Be confident about how much of the system is being tested

Selection criterion:
generate values to satisfy the criterion
Coverage criterion:
Evaluate coverage achieved by externally generated test values/ cases

Verification:
The process of evaluating a system or component to determine whether the products of a given development phase satisfies the conditions imposed at the start of that phase.
Checking whether the system adheres to properties termed as verification properties
Validation:
The process of evaluating a system or component during or at the end of the development process to determine whether it satisfies specified requirements.

Fault: a deficit in a system
Error: some part of the system entered an unexpected state
Failure: the delivered service deviated from what the system is intended for