Ch 4 Input Space Partitioning Flashcards
What is the “Input Domain”?
The possible values that the input parameters can have
What qualifies as an input parameter?
- method parameters
- global variables
- objects representing current state
- User-level inputs
What is a partition?
Breaking a characteristics into a set of values that are disjoint and complete.
How are partitions defined?
A set of equivalence classes (blocks) that are pairwise disjoint and together the blocks cover the domain of a characteristic.
In terms of Input Domain Modeling, what is the interface based approach?
It considers each particular parameter in isolation
In terms of Input Domain Modeling, what is the functionality based approach?
Identifying characteristics that correspond to the intended functionality of the system under test
What are the pros of using IDM interface-based approach?
It is easy to identify characteristics and it is easy to translate abstract tests into executable test cases
What are the cons to using IDM interface-based approach?
Ssome parts of the functionality may depend on combinations of specific values of several interface parameters
What are the pros to using IDM functionality-based approach?
It transfers more semantic information from the specification to the IDM making it more likely to generate expected results
What are the cons to using IDM functionality-based approach?
Designing reasonable characteristics and generating tests can be difficult nn large and complex systems, or if the specs are informal and incomplete.
What are good starting points to identify characteristics using functionality?
- Preconditions
- Postconditions
- Variable relationships
- Missing Factors
How should testers develop ISP characteristics?
By using domain knowledge about the problem, not the implementation.
What is a block in Input Domain modeling?
A value among a partitioned set of values that make up the domain of a characteristic.
What are some general strategies for identifying block values?
- Valid Values
- Boundaries
- Normal Use
- sub partitions (subpartitioning valid values)
- Invalid Values
- Checking for Missing / overlapping partitions
What is “All Combinations Coverage” (ACoC)?
All combinations of blocks from all characteristics must be used
Why is “All Combinations Coverage” generally considered infeasible?
Because with more than 2 or 3 partitions, it quickly becomes impracticle to get all combinations.
What is “Each Choice Coverage”(ECC)?
One value from each block for each characteristic must be used in at least one test case
What is a weakness of “Each Choice Coverage”?
Certain important combinations of block values may be missed
What are the min number of tests to get All Combinations Coverage?
The product of the lengths of each block
What are the min number of tests to get Each Choice Coverage?
The length of the largest block
What is “Pair-wise Coverage”(PWC)?
A value from each block for each characteristic must be combined with a value from every block for each other characteristic.
What is “T-wise Coverage”(TWC)?
A value from each block for each group of t characteristics must be combined
What is the biggest weakness of TWC and PWC?
They pair values blindly, without regard for which value pairs / combos are critical or likely.
What is “Base Choice Coverage”(BCC)?
A base choice block is chosen for each characteristic, and a base test is formed by using the base choice for each characteristic.
Subsequent tests are chosen by holding all but one base choice constant and using each non-base choice in each other characteristic
In Base Choice Coverage, what are some methodologies for choosing the Base?
It can be the simplest, the smallest, the first in some ordering, or the most likely from an end-user point of view
Why is it not preferable to choose multiple invalid blocks for Base Choice Coverage?
Because it will catch the first bad value, and usually not reach the others
What is “Multiple Base Choices Coverage”(MBCC)?
At least one base choice blocks is chosen for each characteristic.
Subsequent tests are chosen by holding all but one base choice constant for each base test and using each non-base choice in each other characteristic.
In ISP, what are constraints?
Relations between blocks of different characterstics.
What are the two broad categories of constrainsts in ISP?
- Two blocks that can never be combines (zero length list, and multiple instances of element)
- Two blocks that must always be paired (non-null list, list of great than zero length)