Start typing keywords to search the site. Press enter to submit.
Generative AI
Cloud
Testing
Artificial intelligence
Security
Description
The data cycle test (DCyT) is a technique for testing whether the data are being used and processed consistently by various functions from within different subsystems or even different systems. The technique is ideally suited to the testing of overall functionality, suitability and connectivity.
The primary aim of the data cycle test is not to trace functional defects in individual functions, but to find integration defects. The test focuses on the link between various functions and the way in which they deal with communal data. The DCyT is most effective if the functionality of the individual functions has already been sufficiently tested. That is also an important reason why this test is usually applied in the later phases of acceptance testing.
The most important test basis is the CRUD matrix (see “CRUD“) and a description of the applicable integrity rules. The latter describe the preconditions under which certain processes are or are not permitted, such as, for example, “Entity X may only be changed if the linked entity Y is removed from it”. Besides this, functional specifications or detailed domain expertise is necessary in order to be able to predict the result of each test case.
The basic techniques used are:
Reinforcement of the test can be achieved by the application of, e.g.:
In this section, the data cycle test is explained step by step. In this, the generic steps (see “Introduction“) are taken as a starting point. An example is also set out that demonstrates, up to and including the designing of the logical test cases, how this technique works.
The test situations are created from the coverage of the CRUD and from the integrity rules. Both will be further explained here.
The following activities should be carried out:
Integrity rules (see integrity rules) should not be confused with semantic rule (see semantic rules), which define the conditions under which the value of the data themselves is valid or not. For example:
Therefore, the integrity rule determines whether the function is permitted in the first place. Thereafter, the semantic rules determine whether the input data offered to that function are valid.
Data Cycle Test is applied to a subsystem that invoices orders and processes payments. The relevant part of the CRUD matrix is in the table below.
For this part of the CRUD matrix, there is one relevant integrity rule: A payment agreement may not be removed as long as there is an outstanding invoice with the relevant payment agreement. This leads to two test situations:IR1-1: Delete (D) payment agreement, while an invoice is outstanding with the relevant payment agreementIR1-2: Delete (D) payment agreement, without there being an outstanding invoice with the with the relevant payment agreement
A brief overview notation for this type of test situation is, for example:
The initials “IR” here stand for “Integrity rule”.
Create 1 or more logical test cases in such a way that:
See also “CRUD“.A test case thus describes a complete scenario consisting of several actions, each of which perform a process on a particular entity.
In the table in this example below the logical test cases for the entities “Item” and “Payment agreement” are set out, to illustrate the principle.The table describe at each row which function should be used, which process (CRUD) on the relevant entity is covered by this and a brief explanation with additional information on the action to be performed.
A “-” in the column “CRUD” means that the relevant function is required in order to carry out a certain action, but that this does not perform any processing on the tested entity. For example:With LTC01, “Ledger management” is used to be able to check that the correct item appears on the invoice, but does not perform any processing itself on “Item”.With LTC02, “Cash payment” is used to close invoice INV-02 so that integrity rule IR1-2 is complied with, but does not perform any processing itself on “Payment agreement”.
In the translation of logical test cases to physical test cases, the following details are added:
The DCyT typically operates at overall system level, possibly across several systems. That means an extensive starting point has to be prepared that is complete and consistent across all the systems. The following, in particular, should be organised:
Such a starting point approximates the production situation and is complicated to put together. Ideally, an existing real-life test environment is used. See also “Defining central starting point(s)”.
In particular, attention should be paid to the data in the starting point that are only valid for a limited time. At the start of each test execution, it should be checked whether these time-dependent data are still valid and whether, on the basis of this, changes should be made in the starting point.
An overview of all featured Test Design Techniques can be found here.
Test design techniques