Test Automation for Backend Data Migration

Regardless of whether you are migrating from legacy frameworks or moving from one product to another, Data Migration is a standout among the most difficult activities. If not executed properly, there can be major application issues, data mishaps, and unexpected downtime, which can ultimately impact the customer or brand.

Testing forms a key part of ensuring a successful data migration. Manual testing for the data validation process is tedious and prone to human errors, hence is an ideal candidate for test automation.

Automating data migration is very challenging and exciting at the same time. We had an excellent opportunity to bring this to one of the clients, who have a product suite used for portfolio management in the life sciences industry.

This has five versions of the main application; customized for several of their clients. The challenge was to bring all this under a single version. Since this is a stable product suite, the merging of features across the versions was planned in stages

Our key task was to make sure that the batch processes and DB calculations worked as expected before and after the merge.

  • First, create expected data from DB and export the data into an Excel file
  • Delete specific data from the DB
  • Compile the merged package version, execute the script, and compare the values in the Excel file with the DB
  • After the script execution mismatch is manually checked. In case the DB value was found to be correct, then update the Excel file and execute the test again; else declare the mismatch as a bug and report.

The reason for data migration in any project is propelled by the need to discover new efficiencies; situations which any enterprise can face over the course of time. However, the method to be adopted will depend on the project specifics. While it’s tedious to manually cross-check batch processes and ensure the correct working of DB calculations, automating some parts of data and feature migration in this particular case has helped in confirming no mismatch in package versions and the presence of the right data in production.