Black-Box Testing Techniques II - cise.ufl.edu · PDF fileBlack-Box Testing Techniques II...
date post
24-Mar-2019Category
Documents
view
220download
0
Embed Size (px)
Transcript of Black-Box Testing Techniques II - cise.ufl.edu · PDF fileBlack-Box Testing Techniques II...
Black-Box Testing Techniques II
Prepared by
Stephen M. Thebaut, Ph.D.
University of Florida
Software Testing and Verification
Lecture 5
Black-Box Test Case Design Techniques
Considered
Partition testing
Combinatorial Approaches
Boundary Value Analysis
Intuition & Experience
Cause-Effect Analysis
Cause-Effect Analysis is a combinatorial approach that can be viewed as a logical extension of partition testing.
It extends the idea of partitioning a multi-dimensional input space by providing a systematic means for generating test case templates to cover different combinations of input Causes resulting in output Effects.
Cause-Effect Analysis
Cause-Effect Analysis is a combinatorial approach that can be viewed as a logical extension of partition testing.
It extends the idea of partitioning a multi-dimensional input space by providing a systematic means for generating test case templates to cover different combinationsof input Causes resulting in output Effects.
Causes and Effects
A CAUSE may be thought of as a distinct input condition, or an equivalence class of input conditions.
An EFFECT may be thought of as a distinct output condition or change in program state.
Causes and Effects
A CAUSE may be thought of as a distinct input condition, or an equivalence class of input conditions.
An EFFECT may be thought of as a distinct output condition or change in program state.
Causes and Effects
Causes and Effects are represented as Boolean variables.
The logical relationships among them CAN (but need not) be represented as one or more Boolean graphs.
Causes and Effects
Causes and Effects are represented as Boolean variables.
The logical relationships among them CAN (but need not) be represented as one or more Boolean graphs.
V
Causes Effects
C-E Analysis Process Steps
1. Identify Causes and Effects
The most critical and usually the most difficult step
Choose an appropriate level of abstraction.
Divide and conquer as necessary.
Effects may or may not be mutually exclusive.
C-E Analysis Process Steps
1. Identify Causes and Effects
The most critical and usually the most difficult step
Choose an appropriate level of abstraction.
Divide and conquer as necessary.
Effects may or may not be mutually exclusive.
C-E Analysis Process Steps
1. Identify Causes and Effects
The most critical and usually the most difficult step
Choose an appropriate level of abstraction.
Divide and conquer as necessary.
Effects may or may not be mutually exclusive.
C-E Analysis Process Steps
1. Identify Causes and Effects
The most critical and usually the most difficult step
Choose an appropriate level of abstraction.
Divide and conquer as necessary.
Effects may or may not be mutually exclusive.
C-E Analysis Process Steps
1. Identify Causes and Effects
The most critical and usually the most difficult step
Choose an appropriate level of abstraction.
Divide and conquer as necessary.
Effects may or may not be mutually exclusive.
C-E Analysis Process Steps (contd)
2. Deduce Logical Relationships and Constraints
Relationships take the form of conditionals and utilize the logical operators AND, OR, and NOT.
Constraints describe relationships among Causes that allow for the identification of infeasible (i.e., impracticable) combinations.
C-E Analysis Process Steps (contd)
2. Deduce Logical Relationships and Constraints
Relationships take the form of conditionals and utilize the logical operators AND, OR, and NOT.
Constraints describe relationships among Causes that allow for the identification of infeasible (i.e., impracticable) combinations.
C-E Analysis Process Steps (contd)
2. Deduce Logical Relationships and Constraints
Relationships take the form of conditionals and utilize the logical operators AND, OR, and NOT.
Constraints describe relationships among Causes that allow for the identification of infeasible (i.e., impracticable) combinations.
(contd)
C-E Analysis Process Steps (contd)
2. Deduce Logical Relationships and Constraints (contd)
Boolean graphs provide a convenient and economical way to visualize relationships and constraints.
C-E Analysis Process Steps (contd)
3. Identify an appropriate Test Case Selection Strategy
Determines the number and nature of Cause-combinations to be considered.
Strategies can be designed to meet a variety of coverage requirements/ cost constraints.
C-E Analysis Process Steps (contd)
3. Identify an appropriate Test Case Selection Strategy
Determines the number and nature of Cause-combinations to be considered.
Strategies can be designed to meet a variety of coverage requirements/ cost constraints.
C-E Analysis Process Steps (contd)
3. Identify an appropriate Test Case Selection Strategy
Determines the number and nature of Cause-combinations to be considered.
Strategies can be designed to meet a variety of coverage requirements/ cost constraints.
C-E Analysis Process Steps (contd)
4. Construct a Test Case Coverage Matrix
Typically involves tracing through the Cause-Effect relationships to identify combinations of Causes resulting in each Effect according to the selection strategy chosen.
This can be extremely tedious if done manually...
C-E Analysis Process Steps (contd)
4. Construct a Test Case Coverage Matrix
Typically involves tracing through the Cause-Effect relationships to identify combinations of Causes resulting in each Effect according to the selection strategy chosen.
This can be extremely tedious if done manually...
C-E Analysis Process Steps (contd)
4. Construct a Test Case Coverage Matrix
Typically involves tracing through the Cause-Effect relationships to identify combinations of Causes resulting in each Effect according to the selection strategy chosen.
This can be extremely tedious if done manually...
Question
To what extent do you think CASE support might be applicable to each step in the process? For which steps do you think it might be most important?
Question
To what extent do you think CASE support might be applicable to each step in the process? For which steps do you think it might be most important?
(Well come back to this after illustrating the process steps with some examples.)
Illustration of Step 1 (Identify Causes
and Effects)
The first input is a yes/no response to the question
Do you reside within the city? The second input is gross pay for the year in question.
A non-resident will pay 1% of the gross pay in city tax.
Residents pay on the following scale:
- If gross pay is no more than $30,000, the tax is 1%.
- If gross pay is more than $30,000, but no more than
$50,000, the tax is 5%.
- If gross pay is more than $50,000, the tax is 15%.
Guidelines for identifying Causes
and Effects
Underline words or phrases in the specification that correspond to input/output conditions or changes in state.
Guidelines for identifying Causes
and Effects (contd)
The first input is a yes/no response to the question Do
you reside within the city? The second input is gross pay for the year in question.
A non-resident will pay 1% of the gross pay in city tax.
Residents pay on the following scale:
- If gross pay is no more than $30,000, the tax is 1%.
- If gross pay is more than $30,000, but no more than
$50,000, the tax is 5%.
- If gross pay is more than $50,000, the tax is 15%.
Guidelines for identifying Causes
and Effects (contd)
List each Cause and Effect.
Assign a unique number to each (use different number ranges to differentiate Causes from Effects).
Guidelines for identifying Causes
and Effects (contd)
List each Cause and Effect.
Assign a unique number to each (use different number ranges to differentiate Causes from Effects).
Illustration of Step 1 (contd)
Ignoring, again, the unspecified responses to invalid inputs, we have:
Causes: Effects:
(1) Non-Resident (11) 1% tax
(2) Resident (12) 5% tax
(3) $0 Gross Pay $30K (13) 15% tax
(4) $30K Gross Pay $50K
(5) Gross Pay $50K
Illustration of Step 2 (Deduce Logical
Relationships and Constraints)
The first input is a yes/no response to the question Do
you reside within the city? The second input is gross pay for the year in question.
A non-resident will pay 1% of the gross pay in city tax.
Residents pay on the following scale:
- If gross pay is no more than $30,000, the tax is 1%.
- If gross pay is more than $30,000, but no more than
$50,000, the tax is 5%.
- If gross pay is more than $50,000, the tax is 15%.
What are the constraints?
Causes: Effects:
(1) Non-Resident (11) 1% tax
(2) Resident (12) 5% tax
(3) $0 Gross Pay $30K (13) 15% tax
(4) $30K Gross Pay $50K
(5) Gross Pay $50K
Constraints deducible from spec,
problem domain knowledge, etc.
A. [(1) (2)] V [(1) (2)] (i.e., o