Combinatorial Testing Flashcards
What is the idea behind Combinatorial Testing?
To identify the distinct attributes that can be varied - data, environment, configuration.. And systematically generate combinations to be tested. Idea is that tests are varied and include possible edge cases.
Main three ideas of combinatorial approaches?
- Category partition testing, 2. Pairwise testing,
3. Catalogue based testing
What is meant by category-partition testing?
To separate, manual, identification of values that characterise input space from automatic generations of combinations of test cases.
What is meant by pairwise testing?
To systematically test interactions among attributes of the program input space with a small number of test cases
What is meant by catalog-based testing?
To aggregate and synthesise experience of test designers in an organisation or domain, to aid in identifying attribute values.
Steps for Category Partition?
- Decompose spec into independently tested features. For each feature identify parameters and env elements, for each pair of these identify elementary category/characteristics.
- Identify relevant values for each characteristic (normal, boundary, special, error values).
- Introduce constraints.
When the specification is informal, what is a way to approach testing?
To check the configuration of the system - the validity of a computer configuration, the parameters for this check being the model and the set of components.
What is the model parameter in checking the configuration of a system?
The model identifies a product and the set of constraints on the components. Models are characterised by the logical slots for components, which may be required or optional. Required slots must be given suitable component for legality while optionals are filled in as necessary.
What is meant by set of components as a parameter in checking the configuration of a system?
A set of (slot, component) pairs corresponding to the required and optional slots for a model. Components are a choice to vary and is not designed to be replaced by the end user. The value empty is allowed for optional slots. In addition to compatability between models and slots, individual components may in/compatible with each other.
First step to combinatorial testing?
To identify independently testable units and categories.
How to identify independently testable categories?
Choosing categories: no specific rules, not easy. They should reflect designer’s judgement regarding what values should be treated differently. Requires experience and knowledge of the application domain and product architecture. Ideally identify hidden characteristics.
How to identify independently testable units?
Model (parameter) - number, number of required slots, number of optional slots. Components (parameter) - correspondence of selection with model slots, required component selection… etc. Product database (environment element) - number of models/components in database.
How to identify relevant values in the process of CT?
Identify representative classes of values for each category. These can be identified by applying 1. Boundary value testing or 2. Erroneous condition testing
What is meant by Boundary value testing?
Selecting extreme values within a class, values outside but close to a class, interior non-extreme values of the class …
What is meant by Erroneous condition testing?
Selecting values outside the normal domain of the program.