It is important to note that testing a data migration should start well in advance of the actual data being migrated. It is quite typical that one of the most important commodities that a business controls, owns, or maintains is its data and therefore any data migration should be considered high risk and should be subjected to significant verification and validation efforts. A business may choose to reduce the risk level against the data migration, but it is always prudent to start off with data migration as a high-priority task to ensure it is successful.
A common term for exercising a data migration task is to perform an ‘Extract, Transform and Load’ (ETL) function which sees extracted data from various sources being fixed and then loaded into the target data warehouse. This document offers some of the keys consideration points to a test team so that effective test planning and strategizing can be achieved for an ETL project.
When strategizing the data migration testing, the following phases of testing need to be considered:
Before any migration has taken place, the following testing actions should take place:
Much of this information may come from a formal design review and detailed requirements or a migration specification; however, if this review does not take place or the specification does not exist, it should still remain part of the test team’s planning process to source this information.
These steps will provide an understanding of the mapping of the data from its original location to the new location and it will highlight where there are inconsistencies. These inconsistencies may require a design change or a business process change to enable the data to be usable and present correctly to the user.
Once this is understood, the following can take place:
It is vitally important that data cleansing is performed on a system that houses and maintains data. This is easiest done by virtue of data validation during input through ‘Field Validation’ and ‘Error Checking’ as this is a cheaper and far more efficient method. Depending on how stringent previous methods of system development and user input have been, it is very likely that incorrect data will exist within the migrated data set. The following data cleansing tasks should be planned within a data migration exercise:
Once this level of understanding has been achieved, the following tasks should be carried out:
The list above shows things that should take place during the pre-migration and migration phases and may be fulfilled by the development team and the tester working together. The migrated data should be the result of the work of all parties within the development lifecycle.
See the ‘Post-Migration Testing’ section of this document to understand the data cleansing tasks once the data has been migrated.
Following the migration, black box testing against the business cases, use cases, or user stories may be carried out and it is possible that the scripts produced for this work will be reusable for Acceptance testing later on.
The tester should fulfill these tests against the subset of data as defined during the pre-migration testing phase. It is recommended that the tester builds test scripts that provide exact detail of data usage either via referenced data sheets or within the text of the test itself.
In addition to testing the known business flows, the testers should carry out the following testing, including negative testing approaches, which primarily ensure that data cleansing is being carried out at run time within the system:
Outside of the actual data migration tasks there are a number of non-functional test approaches that should be considered when planning the testing. These are as follows:
Data migration is a technique which, due to its complexity, necessitates specific, careful testing at all stages of the process. Not doing so can result in improper migration (incomplete or corrupt data) or poor user experience, which will be damaging to both the system’s reputation and its inherent usability as well.