• info@helpingtesters.com
  • helpingtesters

Migration Testing – Complete Guide

December 21, 2017 Types of Testing
Migration testing, migration, application migration, database migration, server migration, OS migration, operating system migration

Many times, it happens in software organization that application is upgraded or moved to the different server. It means that either the application in moving to new technology or the application has moved to new server location or database has been moved to the different database server. And, this is where Migration Testing comes into account.

What happens when Application is Migrated

Talking in testing perspective, we can say that after migration we need to test that everything is working as it was working before migration and all the functionality in the new system is working as it was in the existing system.

One more thing to be noted is that after application migration, the tester needs to test the application with old data and see if it is behaving in the same way as it was behaving before it was migrated.

What is Migration Testing?

We can define migration testing as the process of verification of migration from an existing system to new system with minimal disruption and other loss which can occur due to migration and maintaining the same behavior of the application in the new system.

Why Migration Testing is required

We know that application migration to the new system is now occurring for many of the applications. The reason may be different. It may be due to movement from old technology to new technology, maybe code optimization or movement of data in a new server or there may be other reasons for it. Some of the reasons are as given below:

  • Whatever is the reason for application migration, there should be minimum inconvenience or disruption to the end user which may be in the form of downtime or loss of data. To ensure proper flow of the application as it was before migration, migration testing is required.
  • It is not that we only check the functionality of the application in migration testing, but also check that migrated application is compatible with the new environment with all possible combination of required hardware and software.
  • Not only functionality, we need to see defects related to data also, as during migration maximum chance of issue lies with the data itself. It needs to be identified as soon as possible and fixed during migration testing.
  • Not only this, we need to see the performance aspect of the application that has been migrated to how much time page is taking to load, how queries responding to database etc.
  • We need to check whether the performance of the application has been impacted by migration and need to take care if it is degraded.
  • Not only this, we should do environmental check to ensure that all the hardware, software, servers are synchronized and working fine in synchronization with each other and application is performing as per expectation in the new environment in which application has been migrated.

When and how is Migration Testing required

Migration testing is done in various stages. Let us discuss them one by one. But before that, we need to understand that migration testing is performed before and after the migration is done. Different stages of migration testing or we may say that different phases of migration testing are as given below.

  • Pre-Migration Testing(Before migration testing is actually done)
  • Migration Testing
  • Post Migration Testing(After migration testing is done)

Considering the risk factor or other reasons involved in migration testing, testers are also supposed to do the following testing

  • Backward Compatibility Verification
  • Rollback Testing

Let us look at different phases of migration testing one by one in brief.

⇒ Pre-migration Testing

Pre-migration testing is done before migration is done. For simpler applications, there is no much thing to do but for bigger applications or complex applications, before doing actual migration, testers are required to do set up activities known as pre-migration testing.

One of the most important things to be taken care of in this phase is that there should be data mapping between old application and new application. Testers are required to focus on changes that have to be performed in the new application and check that migrated application is behaving accordingly and ensure that application and database are behaving in the same way as it was behaving before migration for the part in which there was no modification.

Table structures need to be taken special care of and there should be no modification in the table structure in the migrated application unless the new update is required. The data flow of the application should be proper and functionality should work as it was working before migration. Proper planning of the migration is done in this phase.

⇒ Migration testing

Document related to migration is also reviewed by the testing team who is performing migration testing. Testing team verifies if the document is clear and there is no complexity to perform the activities related to migration. Any kind of documentation error whether it is related to the application, database, server and operating system, can be reported by the testing team.

Time taken to migrate the system completely known as downtime is recorded properly and it is very useful when the application is launched in production. Once the migration activities are completed as per migration documentation, a basic check of application functionality is done and basic database checkups are done to ensure that database is properly connected to the application.

⇒ Post-migration testing

Now after the migration is completed, testers are required to do detailed testing for the migrated application. Test cases for the old systems are executed on the new system to ensure that functionality of the application is working fine on both old data and newly added data and performance of the application has not degraded.

Testers are required to see that data is not lost and the number of the records from the database is appearing, as per expectation. Testers are required to check that the tabular structure in database and application directories and folders are properly updated in the new system.

The scope of testing in post-migration testing is very large. Testers are recommended to perform automation testing to reduce the time of test case execution and in turn, reduce time to check the functionality of the application.

Prerequisites on behalf of Tester

Now one more thing to be noted is that tester should be able to understand following things before performing migration testing.

  • The tester should understand the functionality of the application and understand the change if there is any and prepare the test plan and test cases accordingly and do testing on the migrated application.
  • The tester should have a complete understanding of migration strategy which will contain the details of how the changes will occur step by step during the migration whether it is related to software or hardware. The tester should have all the knowledge of changes happening in the new system whether it is related to the server, database, application code, functionality of the application etc.

Now we have seen that during migration there may be many things with may be changed such as application code, database, server or operating system. Based on this types of migration has been categorized.

Types of Migration

Following are the types of migration which generally happens during migration of the application which will also help us to understand how migration is done.

  • Application Migration
  • Database Migration
  • Server Migration
  • OS Migration

Let us understand each one of them one by one in brief

⇒ Application Migration

Application migration as the name suggests is a type of migration in which the application itself is moved to new environment from one platform to another platform. Example of application migration is migrating an application form ASP to ASP.NET technology.

Now since we are little familiar with application migration, we should understand what migration testing will be done for the application migration and what are the things that should be kept in mind while doing migration testing.

Testers are required to do following activities for doing application migration testing.

  • Do requirement analysis and be familiar with the application.
  • Finalize the scope of testing
  • Be familiar with the new requirement for migrated application and test the migrated application accordingly.

Scenarios for Application Migration

One more thing to be noted is that application migration not only means that application is migrated to new technology but also means that application may be upgraded with new functionality. Let us look at these scenarios one by one and action taken in those scenarios. In the case, the application is upgraded Following steps are taken for mitigation testing in the case application is upgraded.

  • Check all the functionality working of the application and ensure that it is working as it was working in the application before migration and also check the added/ modified features in the new application.
  • Check all the functionality of the application with the existing data as well as some newly added data.

Let us make it more clear from one example. Suppose we are creating a new account in the application. In this way, we are adding data to the application database. We can modify the data and we can also delete the newly added data, check the search functionality using newly added data and also generate a report based on newly added data.

In the case, application is migrated to new technology

Following activities are done when the application is migrated to new technology

  • End to end functionality of the application is checked.
  • Verify that migrated application is working on unexpected environment consisting of different operating system, different browsers coordination or any other type of expected environment
  • Verify that application is working fine with old data as well as newly added data.

⇒ Database Migration

The not only application is migrated, the database is also migrated from one database to another database. The thing to be kept in mind while doing database migration is that first of all application should be stable and working perfectly and second thing we have to see that database is also up to the mark and format of the data type of the data value of the data etc are all well organised so that it does not create any problem after being exported to New database. Example of database migration is Migration from RDBMS to MongoDB. Testing activities during database migration include the following

  • Verify that field types, values, constraints or any other mapping of the field is not changed or modify during migration of database.
  • Perform all the activities to be done during Pre-migration and Post-migration.
  • Check if the data has been migrated properly.

Scenarios in Migration Testing

There are two scenarios to be considered while doing database migration. Let us see them one by one as given below.

If the migration is done to the same type of database as it was before migration

Actions which needs to be taken in such scenarios are, as given below

  • Check and compare the output report as a result of a query executed in the old and new database.
  • Verify the table structure remains the same in the new database also.
  • Verify that performance of new database does not degrade.

If the database is migrated to different type of database

Now if the database is different, apart from above points which we consider while migrating to the same database, the special thing to be taken care of is the handling of data types because there are some fields like calendar dates, floating numbers, hexadecimal etc which may be declared in a little different way in new database.

⇒ Server Migration

In this type of migration, server data is moved from one server to another server which involves migration of configuration to the new server. Example of server migration is the migration of all application from Windows to mainframe server. Actions to be taken during testing activities during server migration are given as below

  • Ensure that all the directory names, file and folder names, some folder names etc. does not change on the new server.
  • Verify that data performance is up to the mark.
  • Check the compatibility of a new server with the migrated server data.

Testing activities during server migration are given as below.

  • Verify the response from the server for the request from the application.
  • Verify that the system is working as it was working before migration and is stable.

⇒ Operating System Migration or OS migration

OS migration is the most difficult type of migration where an application is moved from one operating system to another operating system. This type of migration generally involves lots of changes to complete this. It may be done to decrease the cost of operation or maintenance or increase speed or maybe for productivity or security or to implement any other feature. Example of OS migration is the movement of application from Windows operating system two Linux operating system. Testing activities in this type of migration may include:

  • Verify that application functionality does not show any change in behavior.
  • Verify that application and database performance does not degrade.
  • Focus on the variation of flow in the application with the change in operating system.

Overall we can say that as a tester we need to identify the type of migration to be done and focus on testing activities required for that type of migration.

Ram Prakash has worked in various domains of testing including security, performance, security testing and automation testing. Including several tools like QTP, selenium, LoadRunner,JMeter, VSTS Coded UI, soap UI, Burp Suite etc.

About the author

RamPrakash Singh author

Ram Prakash has worked in various domains of testing including security, performance, security testing and automation testing. Including several tools like QTP, selenium, LoadRunner,JMeter, VSTS Coded UI, soap UI, Burp Suite etc.

Leave a Reply

Your email address will not be published.