Combinatorial Testing Flashcards

1
Q

What is the idea behind Combinatorial Testing?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Main three ideas of combinatorial approaches?

A
  1. Category partition testing, 2. Pairwise testing,

3. Catalogue based testing

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What is meant by category-partition testing?

A

To separate, manual, identification of values that characterise input space from automatic generations of combinations of test cases.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What is meant by pairwise testing?

A

To systematically test interactions among attributes of the program input space with a small number of test cases

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What is meant by catalog-based testing?

A

To aggregate and synthesise experience of test designers in an organisation or domain, to aid in identifying attribute values.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Steps for Category Partition?

A
  1. Decompose spec into independently tested features. For each feature identify parameters and env elements, for each pair of these identify elementary category/characteristics.
  2. Identify relevant values for each characteristic (normal, boundary, special, error values).
  3. Introduce constraints.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

When the specification is informal, what is a way to approach testing?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What is the model parameter in checking the configuration of a system?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What is meant by set of components as a parameter in checking the configuration of a system?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

First step to combinatorial testing?

A

To identify independently testable units and categories.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

How to identify independently testable categories?

A

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 well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

How to identify independently testable units?

A

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 well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

How to identify relevant values in the process of CT?

A

Identify representative classes of values for each category. These can be identified by applying 1. Boundary value testing or 2. Erroneous condition testing

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What is meant by Boundary value testing?

A

Selecting extreme values within a class, values outside but close to a class, interior non-extreme values of the class …

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What is meant by Erroneous condition testing?

A

Selecting values outside the normal domain of the program.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What is the step after identifying relevant values in CT?

A

Introducing constraints! To rule out impossible combinations,and reduce the size of the test suite if too large.

17
Q

What is the error constraint in CT?

A

Errors indicate value classes that correspond to erroneous values AND need to be tried only once. There is no need to test all possible combinations of errors, sometimes just one as it implies certain logic.

18
Q

How are property constraints done in CT?

A

constraint PROPERTY (IF PROPERTY) where property= groups values of single parameter to identify subsets of values with common properties AND if property= bounds the choices of values for a category that can be combined with a particular value from a different category.

19
Q

What are single constraints in CT?

A

Single indicates a value class that test designers chose to test only once to reduce the number of test cases.

20
Q

Difference between single and error processes in CT?

A

Single and error have the same effect but differ in rationale. Keeping them distinct is important for documentation and regression testing.

21
Q

What does category partition achieve? Downside?

A

A systematic approach - identifies characteristics and values, and generates combinations. Works well when intuitive constraints reduce number of combinations to a few test cases. However, test suite grows rapidly with the number of categories.

22
Q

What does pairwise combinatorial testing achieve?

A

A non exhaustive approach to category partition. Combines values systematically but not exhaustively. The idea is that most unplanned interactions are among few parameters characteristics. So pairwise combination generates combinations that efficiently cover other classes, revealing most faults.

23
Q

What does catalog based testing achieve?

A

An improvement on manual step of deriving value classes. Gathering experience in systematic collection this approach can speed up test design, routinise many decisions. The catalogues capture designers’ experience by listing important cases for each variable type.

24
Q

What are the steps to catalog based testing?

A
  1. Analyse initial spec to identify simple elements - ops, vars.. 2. Derive first set of test case specs from pre/post conditions and definitions. 3. Complete set of test case specs using test catalogues.
25
Q

What is cgi_decode?

A

A function that translates a cgi-encoded string to plain ASCII, reversing encoding applied by the Common Gateway Interface of most servers. CGI makes spaces to +
and non letters to hex seqs. cgi_decode maps all this to ascii and returns a 0/1 for success.

26
Q

Difference between validated and assumed preconditions?

A

Validated - checked by system, Assumed - assumed by system.

27
Q

What elements does cgi_encode identify?

A

Preconditions, postconditions, variables, operations and definitions.

28
Q

How is the second step of catalog based testing achieved? (deriving initial set of test case specs)

A

Using cgi_decode to create tests from the preconditions, tests for the postconditions, and tests from variables.

29
Q

How is the catalog applied in catalog based testing?

A
  1. Scan code sequentially
  2. For each element in catalog scan the specs, and apply catalog entry
  3. Delete redundant test cases
30
Q

What is a catalog in catalog based testing?

A

A list of kinds of elements that can occur in a specification. Each catalog entry is associated with a list of generic test case specs.

31
Q

What is generally an obstacle to automatic analysis of specifications?

A

The flexibility and expressiveness of natural language.

32
Q

What are the main two aspects of combinatorial testing?

A
  1. A manual step of structuring specs into sets of properties. 2. Automatizable step of producing valuable combinations of these choices.