Designing Dynamic Data for Complex Workflow Testing
Wikipedia defines dynamic data as information that changes asynchronously over time as new information becomes available. In financial services, the term is synonymous with transactional data, but the concept of dynamic data is not unique to financial transactions. Dynamic data can result from any change in state during the execution of an application workflow. To properly test workflows with dynamic state changes, the data used for testing must also be dynamic.
Let’s explore the concept of dynamic data by looking at a familiar online banking workflow and then explore some non-financial workflows. The table below illustrates the state transitions for an online banking workflow.
As the user interacts with the application to view account balances, deposit checks, transfer funds and withdraw cash, the account balances dynamically change. Each user action represents a state transition that requires stateful test data to validate test case assertions.
To fully test this workflow, the tester must have knowledge of its business rules and translate them into assertions. Then the tester must provision test data for both positive and negative testing scenarios. An exhaustive variety of data inputs is needed to fully test the many potential combinations of valid, edge case and invalid data scenarios.
The first test data challenge is to provision the controlled variations of data needed to maximize coverage. That’s difficult to do with a random data subset copied from a production database, but easy to do with GenRocket’s synthetic test data generation platform.
The tougher challenge is validating the account balances that potentially change state at each stage of the workflow. To meet this workflow testing challenge, test data must be rules-based, dynamic and stateful. Let’s define each of these terms more precisely.
Rules-based: Test data must conform to business rules for minimum account balances, maximum cash withdrawals, and methods for updating account balances. GenRocket provides a self-service module, called Test Data Rules, that allows testers to define business rules for generating real-time synthetic test data.
Dynamic: Test data must be dynamically inserted during the workflow in response to user interactions with a variety of inputs to validate outcomes and test error handling. GenRocket generates data in real-time during test execution and uses an intelligent API to retrieve and insert data from within the testing application.
Stateful: Test data must follow the state transitions of the workflow. In the example above, checking and savings accounts must reflect an accurate balance at each stage of the workflow as funds are deposited, transferred and withdrawn. GenRocket maintains stateful test data during text execution and refreshes the data for each successive test run.
Here are some additional examples of financial workflows that require dynamic data:
- Credit card transactions
- Loan origination services
- Inter-bank electronic funds transfers
- Online stock trading
- Insurance claim processing
And here are some non-financial workflows that present similar test data challenges:
- EDI supply chain transactions
- Electronic medical record transfers
- Airline and hotel reservations
- Online gaming and interactive media
They all share the need for dynamic data for testing application workflows. For example, the claims processing systems used by health insurance companies all have complex workflows that must be tested with dynamic data as illustrated by the table below.
The data used for testing this workflow must be rules-based to reflect eligibility requirements and policy provisions. If a patient has not fully utilized their deductible or was treated by an out-of-network provider, they may not be eligible for benefits.
The data must also be dynamic to ensure the approval or denial of coverage is based on the medical procedure codes contained in the current claim. And it must be stateful to ensure payment calculations are based on the level of coverage that have been approved for the current claim.
Test Data Automation to the Rescue
GenRocket’s Test Data Automation platform was designed to generate dynamic test data for testing complex workflows. It provides a suite of flexible self-service modules for modeling, designing, deploying and managing real-time synthetic test data on-demand.
Here are some of the key features that allow testers to generate controlled, accurate, secure and dynamic data for workflow testing with links to helpful articles in our knowledgebase to learn more.
Test Data Rules: This module allows testers to apply rules that govern the test data generation process and control the nature of the data needed for validating business logic during a workflow test.
View the Knowledgebase Article.
With Test Data Rules, testers can easily define a RuleSet consisting of If-Then-Else relationships to control or modify the conditions and actions for test data generation.
Test Data Queries: This module allows testers to query a database and blend real production data with controlled synthetic data. In our health insurance example, the Common Procedural Terminology (CPT) codes used to represent diagnostic and treatment procedures must be clinically accurate (i.e., real production data) in order to test the business logic used for processing the claim.
With Test Data Queries, the proper CPT codes can be retrieved and blended with controlled synthetic data formatted to comply with the EDI X12 data interchange standard used by health insurance payers, providers and intermediaries. See the workflow testing diagram below and View the Knowledgebase Article.
GenRocket API: Using the GenRocket API, testers have the ability to input synthetic test data blended with production data directly into the testing application to maximize coverage and clinical accuracy. The API also enables testers to dynamically generate output values for testing workflows with stateful, rules-based test data. View the Knowledgebase Article.
The full power of GenRocket is realized when multiple Test Data Automation capabilities are combined into Test Data Cases and Test Data Case Sets that are managed in a shared repository to serve the entire testing staff. The result is a comprehensive Self Service Test Data Portal for designing and generating dynamic test data for solving any workflow test data challenge.