Start typing keywords to search the site. Press enter to submit.
Generative AI
Cloud
Testing
Artificial intelligence
Security
Most IT systems process various data items and the values of these data items influence the results of processing. When we want to test combinations of values of data items, the data combination test (DCoT) is a very useful technique. Especially because this technique may achieve various levels of coverage so it can cater for coverage in cases of low, medium or high-quality risk levels.
Within functionalities single data attributes and their equivalence classes (see test design technique equivalence partitioning) may influence the system behaviour, but many times combinations of data attributes are of influence on variations in the system behaviour.
The data combination test (DCoT) is a versatile technique for the testing of functionality both at detail level and at overall system level. In the embedded world, this technique is also known as the “Classification Tree Method”. It was developed by Grochtmann and Grimm, and is described in “Testing Embedded Software” [Broekman, 2003] and elsewhere.
For the DCoT, no specific test basis is required. All types of information on the functionality of the system are usable:
The fact that domain expertise is usable as a test basis also makes this technique suitable for situations in which specifications are incomplete or out of date, or even unavailable altogether.
Because of the strongly informal character of this technique, the quality of the test cases designed with it is largely determined by the expertise and skill of those involved. For that reason, the DCoT is preferably carried out by a team of 2 to 5 persons with a mix of expertise: test, domain and system expertise.
To use this test design technique, follow these steps:
The test strategy usually defines the desired coverage level (for example based on the quality risk level). The DCoT has different levels of coverage that can be achieved; it is good to know beforehand which coverage level is desired.
With the DCoT, the test situations are determined by reasoning from within the data attribute as to which variations should be tested. The basic technique used here:
Depending on the agreed intensity of the test. For extra confidence, the coverage can be extended by fully combining the equivalence classes of two or more different high risk data items.
There is also the option of reinforcing the test by applying boundary value analysis. This can also be applied selectively, by defining the boundary values for specific data attributes as a separate equivalence class.
Thanks to its versatility, the data combination test is suitable both for testing those functions that are deemed very important, and for testing system parts that ‘just need a quick test’.
In this section, the data combination test is explained step by step. In this, the generic steps (“Introduction”) are taken as a starting point. An example is also set out, showing at each step how this technique works.
This example concerns a function for creating flight reservations:With this function, the user enters a number of details concerning the nature of the group (adults, children and babies) and the trip (such as date and destination). The user can then select the search criteria relating to a suitable flight. The system displays the list of possible flights, or reports if no flight exists that meets the criteria and still has the required places available.
The function should be tested to average depth using the DCoT.
Identifying test situations is the creative step in the process and is ideally carried out by a team in which various forms of expertise are represented. During this step, the following activities are carried out
From the test basis we determine the data items that are input for (part of) the process that is being tested.
This does not automatically mean all the data attributes that are used by the function. It concerns the data attributes that are of influence on variations in the system behaviour. This includes the data attributes for which equivalence classes can be determined. The defined data can consist of entities, attributes or functional concepts in a general sense.
See “Equivalence partitioning” for this.
Some data attributes are only of influence on the system behaviour under certain conditions, namely if another data attribute has a value from a specific equivalence class. That means that the possible variations of the first-mentioned data attribute must be combined with the specific value of the last-mentioned data attribute. In the example set out, such a relationship is visible between the data attributes “search criterion” and “flies to that destination”.
Also, these dependencies may mean that for some logical test cases it would not be possible to create a physical test case because the combination of values cannot be entered in the system.
The creation of the classification tree with which the test situations are identified is an iterative and interactive process, in which the parties involved inspire, correct and complement each other. How far this process will go is the choice and responsibility of the team.
If required, it is defined which data attributes are eligible for ‘fully combined testing’. That means that all the possible combinations of all the equivalence classes of those data attributes should be tested. How many of such combinations can be defined depends on the agreed depth of testing.
With a logical test case, precisely one of the equivalence classes is covered for each data attribute in the classification tree. Collectively, the logical test cases should at any rate cover all the equivalence classes of all the data attributes. Depending on the chosen depth of testing, they should also cover all the combinations of equivalence classes of particular data attributes, if necessary.
Please note that the number of test cases grows very rapidly when combining all classes of all data items. If in a specific situation, there are five data items with three classes each, which would mean 3 × 3 × 3 × 3 ×3 = 243 test cases. If there is very high quality-risk level, testing all these test cases may be worthwhile. The team will often want a lower number of test cases, however.
In most cases not all data items are equally important to determine the result. The tester can then choose to make all combinations of the relevant data items. For the other data items, they will make sure that at least every different class has been used in a test case. This is a mix of using the highest coverage and the lowest coverage.
This method is usually employed where the “pairwise testing” option has been adopted (see “Orthogonal arrays and pairwise testing” ). Tools for pairwise testing normally deliver their results directly in table form.
This is particularly useful if the most elementary form of testing (without combinations) has been chosen, or for the selective application of “complete decision table” coverage. Ideally, a graphic tool should be used here. E.g. “Classification Tree Editor”, which was specially developed for this purpose by DaimlerChrysler.
In creating the physical test cases, concrete values should be chosen for all the input data. These input data do not always correspond exactly with the concepts maintained in the classification tree. For example, the classification tree may contain the concept of “duration”, while the function to be tested expects the data “Start date” and “End date”.
Every physical test case should have a concrete predicted result. However, this generally depends on the other data and system settings that belong with the chosen starting point.
In order to predict the results of every physical test case, it is necessary to know exactly which flights and prices are stored in the database. This step goes hand-in hand with the next step, “Establishing the starting point”.
An overview of all featured Test Design Techniques can be found here.
Test design techniques
Template