Being a test engineer who is responsible for specifying test cases and test data isn´t an easy job. Based on provided (often incomplete) specifications test cases have to be constructed and test data derived. Incomplete overview of business processes and related, supporting IT systems impact the completeness of testing and hence the application quality. Also the efforts involved in defining test cases and test data are commonly very high. A test case consists of the sequence of activities defined by the end-to-end path generated by the model-based testing and the data to be used for test case execution.
Test data can generally be distinguished in two categories:
- Master data (customer, supplier, contracts, products, …)
- Operational data (products selected, number of items, …)
Both kinds of data are describing the data context of each specific activity to be tested. The data is to be selected to fulfill the conditions of the test case’s specific end-to-end path.
The challenge of test-case and test data definition has 2 dimensions:
- Path identification for testing
- Data definition to be used for testing
Model-based testing eliminates the first dimension by generating a set of valid test cases for a specific parameterization-like coverage. The test data can be automatically generated or manually derived based on the model data available by means of available, described information:
- If input or output artifacts are modeled, they can be included into the generated test case.
- A logical graph using the disjunctive normal form can be generated for test data description if the logical constrains of the control graph are modeled.
Regarding test data; model-based testing defines a methodology for white-box testing and can’t be compared to black-box based approaches like pairwise testing to generate test data.
For the white-box test approach knowing about the logic of a process (or algorithm), and the steps to generate test data are described in Wikipedia a general summary about test data generation:
- Program control flow graph construction (done by a BPA tool)
- Path selection (generated path by the model-based testing)
- Generating Test Data (derived test data from selected path)
Model-based testing gives great guidance for test engineers and simplifies their complex work of finding the right data. The test data is easily derived from the generated end-to-end test cases.