Data Migration Part 3 of 4

Test Scenarios, in general, would be as below:

I)​ If the migration is to the same type of Database, then,

  • Verify if the queries executed in the new database yield same results as in the older one
  • Verify if the number of records in the old database and new database is the same. Here use appropriate automation tool
  • Verify that there are no redundancies and new database works exactly as the older one
  • Verify if the schema, relationships, table structures are unaltered or set back to match the old database image
  • Verify whether the changes made in application updates new database with correct values and type
  • Verify if after the new database connection is provided to all the components of the application. Application, server, interfaces, firewall, network connectivity etc.
  • Verify the query performance (time-taken to execute complex queries) of the new database is not more than earlier performance

Challenges faced in this testing are mainly with data. Below are few in the list:

#1) Data Quality:

We may find that the data used in the legacy application is of poor quality in the new/upgraded application. In such cases, data quality has to be improved to meet business standards.

Factors like assumptions, data conversions after migrations, data entered in the legacy application itself are invalid, poor data analysis etc. leads to poor data quality. This results in high operational costs, increased data integration risks, and deviation from the purpose of business.

#2) Data Mismatch:

Data migrated from the legacy to the new/upgraded application may be found mismatching in the new one. This may be due to the change in data type, format of data storage, the purpose for which the data is being used may be redefined.

This result in huge effort to modify the necessary changes to either correct the mismatched data or accept it and tweak to that purpose.

#3) Data Loss:

Data might be lost while migrating from the legacy to the new/upgraded application. This may be with mandatory fields or non-mandatory fields. If the data lost is for non-mandatory fields, then the record for it will still be valid and can be updated again.

But if the mandatory field’s data is lost, then the record itself becomes void and it cannot be retracted. This will result in huge data loss and should have to be retrieved either from the backup database or audit logs if captured correctly.

#4) Data Volume:

Huge Data that requires a lot of time to migrate within the downtime window of the migration activity. ​E.g:​ Scratch cards in Telecom industry, users on an Intelligent network platform etc., here the challenge is by the time, the legacy data is cleared, a huge new data will be created, which needs to be migrated again. Automation is the solution for huge data migration.

#5) Simulation of a real-time environment (with the actual data):

Simulation of a real-time environment​ ​in the testing lab is another real challenge, where testers get into different kind of issues with the real data and the real system, which is not faced during testing.

So, data sampling, replication of real environment, identification of volume of data involved in migration is quite important while carrying out data Migration Testing.

#6) Simulation of the volume of data:

Teams need to study the data in the live system very carefully and should come up with the typical analysis and sampling of the data.

E.g:​ users with age group below 10 years, 10-30 years etc., As far as possible, data from the live needs to be obtained, if not data creation needs to be done in the testing environment. Automated tools need to be used to create a large volume of data. Extrapolation, wherever applicable can be used, if the volume cannot be simulated.

 

Data Migration Testing Part 2 of 4

Verification Requirements in the Migrated Environment: 

It is highly important to have a verification process built in for a migration testing process. By putting out the 

The following tests are designed for a hypothetical test case. 

  • Check whether all the data in the legacy is migrated to the new application within the downtime that was planned. To ensure this, compare the number of records between legacy and the new application for each table and views in the database. Also, report the time taken to move say 10000 records.
  • Check whether all the schema changes (fields and tables added or removed) as per the new system are updated.
  • Data migrated from the legacy to new application should retain its value and format unless it is not specified to do so. To ensure this, compare data values between legacy and new application’s database.
  • Test the migrated data against the new application. Here cover a maximum number of possible cases. To ensure 100% coverage with respect to data migration verification, use the automated testing tool.
  • Check for database security.
  • Check for data integrity for all possible sample records.
  • Check and ensure that the earlier supported functionality in the legacy system works as expected in the new system.
  • Check the data flow within the application which covers most of the components.
  • The interface between the components should be extensively tested, as the data should not be modified, lost, and corrupted when it is going through components. Integration test cases can be used to verify this.
  • Check for legacy data redundancy. No legacy data should be duplicated itself during migration
  • Check for data mismatch cases like data type changed, storing format is changed etc.,
  • All the field level checks in the legacy application should be covered in the new application as well
  • Any data addition in the new application should not reflect back on the legacy
  • Updating legacy application’s data through the new application should be supported. Once updated in the new application, it should not reflect back on the legacy.
  • Deleting the legacy application’s data in the new application should be supported. Once deleted in the new application, it should not delete data in legacy as well.
  • Verify that the changes made to the legacy system support the new functionality delivered as a part of the new system.
  • Verify the users from the legacy system can continue to use both the old functionality and new functionality, especially the ones where the changes are involved. Execute the test cases and the test results stored during the Pre-migration testing.
  • Create new users on the system and carry out tests to ensure that functionality from the legacy as well as the new application, supports the newly created users and it works fine.
  • Carry out functionality related tests with a variety of data samples (different age group, users from different region etc.,)
  • It is also required to verify if ‘Feature Flags’ are enabled for the new features and switching it on/off enables the features to turn on and off.
  • Performance testing is important to ensure that migration to new system/software has not degraded the performance of the system.
  • It is also required to carry out Load and stress tests to ensure the system stability.
  • Verify that the software upgrade has not opened up any security vulnerabilities and hence carry out security testing, especially in the area where changes have been made to the system during migration.
  • Usability is another aspect which is to be verified, wherein if GUI layout/front-end system has changed or any functionality has changed, what is the Ease of Use that the end user is feeling as compared to the legacy system.

Since the scope of Post-Migration testing becomes large, it is ideal to segregate the important tests that need to be done first to qualify that Migration is successful and then carry out the remaining later.

It is also advisable to automate the end to end functional test cases and other possible test cases so that the testing time can be reduced and the results would be available quickly.

 

Data Migration Testing Part 1

Database Migration

The following is a four part series of educational material to examine in depth the processes of Data Migration, Testing and Automation that are fundamental for any proper operation to take place. 

Below is a short summary of the content that will be covered in the 4 part series, followed by part 1. 

Reasons and benefits as to why organization will choose Database Migration,

  • Application can have multiple databases at the backend to support huge customer data
  • Data enhancement can be achieved
  • Proper analysis of data will help in improving the data quality
  • Data sampling & data cleansing helps in keeping the database clean and effective
  • To carry out data analytics

Examples of Database Migration:

  • Migration from one RDBMS to another RDBMS
  • Migration from RDBMS to MongoDB
  • Upgrading from Informix HC4 to HC6 or HC7

Testing:

  • Ensuring that the legacy database is not updated during tests after migration.
  • To ensure the mapping at field and table levels do not change.
  • Ensuring data is migrated accurately and completely.
  • Pre-migration and Post-migration testing activities.

Testing Migration in a same type database:

  • Verify if the queries executed in the new database yield same results as in the older one.
  • Verify if the number of records in the old database and new database is the same. 
  • Verify that there are no redundancies and new database works exactly as the older one.
  • Verify if the schema, relationships, table structures are unaltered or set back to match the old database image.
  • Verify whether the changes made in application updates new database with correct values and type.
  • Verify if after the new database connection is provided to all the components of the application (Application, server, interfaces, firewall, network connectivity etc.).
  • Verify the query performance (time-taken to execute complex queries) of the new database is not more than earlier performance.

Automated Testing

  • Understanding the Cost Benefit analysis of Automated Data Migration Testing. 
  • Challenges of managing the data quantity required to be tested.
  • Ensuring the quality of the output. 

Conclusion

Considering the complexity involved in carrying out data Migration Testing, understanding that even missing a small aspect of of verification will lead to potential failure or damage to valuable data. It is very important to carry out careful and thorough examination and analysis of the system before and after migration. Plan and design the effective migration strategy with the robust tools along with skilled teams.

As we know that Migration has a huge impact on quality of the application, a good amount of effort must be put up by the entire team to verify the entire system in all aspects like functionality, performance, security, usability, availability, reliability, compatibility etc., which in turn will ensure successful ‘Migration Testing’.

 

Part 1, Overview of Data Migration Testing:

Data migration is the process of selecting, preparing, extracting, and transforming data and permanently transferring it from one computer storage system to another (Wikipedia, 2019). In many organizations data needs to be migrated for a variety of reasons, ranging from newer servers to better applications. But what does this actually mean? In this paper we will look thoroughly in to the process of data migration, and examine what is needed for a successful operation. Data Migration can be cut down to two major processes, the migration, and testing. From the testing point of view, it all means that the application has to be tested thoroughly end-to-end along with migration from the existing system to the new system successfully. Migration Testing is a verification process of migration of the legacy system to the new system with minimal disruption/downtime, with data integrity and no loss of data, while ensuring that all the specified functional and non-functional aspects of the application are met post-migration.

Data Migration Testing Strategy, is an important piece of the operation as it sets out proper parameters of how and when to evaluate the migration to ensure it is running smoothly throughout  the entire operation. This is to minimize the errors and risks that occur as a result of migration and to perform the migration testing effectively.

Some Important Activities in Testing:

1) Specialized team formation:

Form the testing team with the members having the required knowledge & experience and provide training related to the system that is being migrated.

2) Business risk analysis, possible errors analysis:

Current & ongoing business operations should not be hampered after migration and hence it is important to carry out ‘Business Risk Analysis’ meetings involving the right stakeholders (Test Manager, Business Analyst, Architects, Product Owners, Business Owner etc.,) to identify the risks and the implementable mitigations. The testing should include scenarios to uncover those risks and verify if proper mitigations have been implemented.

Conduct ‘Possible Error Analysis’ using appropriate ‘Error Guessing Approaches’ and then design tests around these errors to unearth them during testing.

3) Migration scope analysis and identification:

Analyze the clear scope of the migration test as when and what needs to be tested.

4) Identify the appropriate Tool for Migration:

While defining the strategy of this testing, automated or manual, identify the tools that are going to be used. E.g: Automated tool to compare source and destination data.

5) Identify the appropriate Test Environment for Migration:

Identify separate environments for Pre and Post Migration environments to carry out any verification that is required as part of testing. Understand and document the technical aspects of the Legacy and New system of Migration, to ensure that the test environment is set up as per that.

6) Migration Test Specification Document and review:

Prepare Migration Test Specification document which clearly describes the test approach, areas of testing, testing methods (automated, manual), testing methodology (black box, white box testing technique), Number of cycles of testing, schedule of testing, approach of creating data and using live data (sensitive info needs to be masked), test environment specification, testers qualification etc., and run a review session with the stakeholders.

7) Production launch of the migrated system:

Analyze and document the to-do list for production migration and publish it well in advance.

 

Employee Profile – Leon Casabon

Following our recent efforts to showcase the incredible talent at ECI, I sat down with Leon Casaubon who is arguably one of our most important members at Estrada Consulting Inc.

Leon was kind enough to give me 30 minutes of his time to explain how he got to where he was. He started out in an area that does not directly relate to Software Development or Project Management; as a pilot in the United States Air Force (USAF), where he was initially an instructor pilot and went on to other flying jobs with a total of over 3000 flight hours in the USAF.  While in the USAF, his additional duties were often related to Software Development, Financial Management, as well as Aircraft Maintenance and Overhaul. His service totaled just over 21 years.

Leon is a major proponent of software dating back to the 70s when the use of software was not widely accepted in the military, “It was easy to say bad things about software back then” he tells me, continuing on how it was hard to convince some people to get onboard with it; “there was a mistrust going around when it came to its usage; people gained appreciation for the technology only after its uses were demonstrated to them”, he explains, “it had to be shown to them how technology could be centered and used around specific tasks”.

Leon is known by the people he works with as precise, reliable and efficient in the way he implements and develops the project around the clients. He tells me that a lot of those skills got polished from the time he was developing software with the Air Force. “You don’t want to be in the air when the software is failing” he says. Part of his work was development, but another major part was testing them in real life scenarios; even in testing in those conditions, un-reliability of the software could be detrimental to the entire operation.

After spending 21 years in the Air Force, five years with a major systems integrator, a couple of years in the Dot Com boom, and almost 15 years with a local solutions company focused on the State of California, he eventually came to us at ECI in the spring of 2017.

Leon brings an incredible amount of experience; at ECI he has been developing software for federal and state organizations for over 40 years, most recently with the Department of Health Care Services. He notes the difference in approach to work that is prevalent at ECI, which grants more autonomy and security to members of the teams. Companies that micromanage slow down work and create problems in team functionality.

Leon enjoys developing software, seeing the systems implemented and being used to improve business operations is always a great experience. He doesn’t have a favorite project, but he says his favorites are ones that offer the most benefit to the people who use them.

An important part of the work Leon is doing is Agile Project Management, the benefits of developing and implementing in real time, gauging and receiving immediate feedback allows for a more comprehensive development, allowing for the client to get the maximum amount of work out of the software they pay for.

As project management goes, he dives a bit in the technical politics of it all, he does not believe in the common narrative of Agile versus Waterfall in the Project Management profession. They both have their pros and cons. Waterfall has adapted a lot in recent years to become more agile, and agile has adapted more recently to develop greater architecture and large project methods.

He tells me that it’s important to stay away from the hype of new methods and ask what they can actually accomplish, the easiest, safest and most efficient way to complete a project is what vendors should look for when strategizing for projects. In this business, it’s not about buying shiny new objects all the time, its more about the value that comes from developing a strong solution.

Finally as our talk comes to a close he offers some advice to prospective individuals entering the industry, “get good at one thing before you move on to the next, it’s more important to provide a perfect service in one area than to have a variety of half perfect skills, this way the value of your work grows.”

Employee Profile – Reena Dubey

I recently sat down with one of Estrada Consulting’s senior Microsoft .Net developers, Reena Dubey to ask her what her experience has been like working with the Estrada Consulting team.

Reena has a master’s degree in Computer Applications from India, as well as a Diploma in Project Management from the University of California Berkeley. Prior to ECI she worked with a company in the East Coast, but she was looking for a company that was local and easier to communicate with; in 2011 her friend recommended ECI; upon meeting with the CEO she decided to join the ECI family and has been a fundamental part of it since.

Reena is one of the most talented Software Developers operating in the industry today, she has an incredible background of experience working with Government organizations across the continental United States. She has been praised by her co-workers and ECI customers as one of the easiest to work with. Though she was not always destined to go down this path. She mentioned during our interview that she did not even think about Computer Sciences as a future career path until she took a single course in CS. After taking that course, she quickly realized how much she enjoyed enjoys implementing software solutions and the logical structure of software development.

Reena has experience in many different areas of software development.  She started developing applications using client-based development tools such as Visual Basic and MS Access, and has more recently transitioned to the Microsoft .NET client-server development framework.  This transition has made her incredibly efficient when migrating legacy systems to more modern platforms.

 Although Reena has fond memories of learning to develop using client-based tools, she prefers modern technology platforms. She enjoys how one can more easily develop new components and release applications more quickly utilizing the .Net development framework.

Reena has worked with a variety of different public departments.  Upon joining ECI, her first project was with the Department of Victim Compensation of California, and is now working with the Department of Health Care Services (DHCS).

When asked about her projects, Reena stated “I have no favorites, but I do prefer having a lot of creative freedom in my work.”  The DHCS project has required a monumental effort from her and the ECI team.  She works with a team of three developers, who have been able to build an entire system from the ground up.  While challenging she says that the experience has been very enjoyable, and finds the employees of DHCS delightful.  She has always been happy to see new people join the Estrada Consulting team.  Her advice for new employees is to be open to learning and taking on new challenges, because the organization provides many opportunities to learn and grow.  As the interview came to a close, Reena stated “Estrada Consulting looks out for the project team.  It does what they promise and offers continuous support and communication.  I would recommend Estrada Consulting to anyone”.