|Approach||Coverage based - process|
|Test basis||Flow with paths and decision points|
The coverage of paths is applicable if the system behaviour is described with the aid of decision points and paths. Charts of decision points and paths (see movie) show, in a structured way, how the process runs from start to end and what the various possibilities in the course of the process are: At each decision point, the process can go various ways, indicated by the various paths that continue from the particular decision point. The conditions under which it takes one path or another are described in the decision points themselves.
The aim of the coverage type described here is to cover the variations in the process run that are possible according to the chart. The test situations are described in this case by indicating which paths in the chart should be followed consecutively.
Keep in mind that such charts with decision points and paths do not necessarily have to be about the functionality of the system. Security processes or work procedures in business processes can also be described with such charts, which makes the basic technique described here applicable to other test types.
Levels of coverage: the test depth level
In the coverage of paths, various levels are possible. The more thorough the level, the greater the probability of finding defects. This is explained below. The most elementary form of path coverage only provides the guarantee that each path has been travelled once. The test situations consist in this case of every individual path.
Going through the process from “Start” to “End”, covering only each individual path, will finds all the faults that will always occur in a particular path. However, it is not for certain that faults that only occur with a specific combination of process steps will be found in this way. E.g. a particular fault may be present, which only occurs if path 2 is carried out immediately after path 5.
In order to find this type of fault, testing has to be more thorough. The depth of coverage is reflected in the concept of test depth level:
Test depth level N = the certainty that all the combinations of N consecutive paths are covered.
The test depth level in principle runs from 1 to unlimited. The higher the test depth level, the greater the certainty that even faults that occur in complex compositions of process steps will be found. A higher test depth level implies a lower test depth level. In other words, a higher test depth level will at any rate find all the faults that can be found with a lower test depth level, plus possible additional faults.
Deriving the test situations for test depth level 1 is easy. The basic technique for obtaining test depth level 2 is described below. Subsequently, it is explained how higher test depth levels can be derived simply from test depth level 2.
Obtaining test situations with test depth level 2
Irrespective of the test depth level, the starting point for this technique requires a test basis that describes the system behaviour in terms of decision points and paths. The following steps are then carried out:
Decision points & paths
Nominate the decision points in the process scheme (A, B, etc.) and number the paths. Sum up, per decision point, the:
a. Incoming paths (“IN”)
b. Outgoing paths (“OUT”)
Working out all the combinations of “IN” and “OUT” at each decision point. With a number of incoming P paths and outgoing Q paths, this leads to P times Q path combinations.
Deriving test situations for higher test depth levels
For higher test depth levels, the following simple mechanism is used:
- Use the list of path combinations of the preceding test depth level as a basis
Extend each path combination by every possible subsequent step in the course of the process.
It may be formulated as:
Test depth level (N+1) = Test depth level N + “1 step further in the course of the process”.
In the same way, the test situations of test depth level 3 can be extended to test depth level 4, etc..