We are converting one of our standalone windows application to a web application, Once this is completed we need need to do a data migration . How to prepare test strategy for this ? What are the facts we need to consider ? What are the test scenarios ?
In a similar situation, I designed few critical end to end business scenarios and ran through both systems and compared the end results as well as crucial mid steps results in terms of output data.
The selection of scenarios will be dictated by the level of data transformation as they go through the system.
Also if the system supports search and reporting feature where it shows detailed data reports based on search parameters so that can be utilized intensively after data migration to compare both systems.
It will involve much more than data-migration testing.
The first thing you should consider is perhaps how your customers (both internal and external) are affected. What do your customers need to do if this transition happens.
- If the application looks different, can the customers adjust to the new interfaces? The best way is to involve customers from day one, having them providing you with constant end-user experience feedbacks.
Data-migration testing strategies can be easily found on the internet, for example, please have a read of this one. http://datamigrationpro.com/data-migration-testing-strategy/
Security testing, a web application can be a target of online hacking; you may consider hiring a security testing expert to help you with penetration testing. Please feel free to have a read of this link, https://www.owasp.org/index.php/Top_10-2017_Top_10
Without knowing exact details of your application, I can only provide information on a relative high abstract level.
As per your requiremnet, two type of migration is taking place:- First one is Application and second one is Database migration.
Following are the few strategy that are performed by top software testing companies for ensuring efficient migration testing:-
1. Application Migration: Testing Activities here will be:
Analyzing requirements and identifying the stable requirements Analyze and test all the flows in legacy application against the new application
Test the new flows in the migrated application if any
Test Scenarios, in general, would be as below:
Validate all the previous functionalities along with the upgraded features – everything should work correctly
Test the application for the existing data as well as the new data – both should work correctly
Try updating the existing data, deleting the existing data, searching for the existing data, and generating reports for the existing data.
With new data, validate creating accounts /data, update newly added data, delete newly added data, search with the newly added data, and generate reports for newly added data
Verify whether the entire application works correctly
Verify if the new technology still supports all the components of the application. For example, plug-ins /add-ons /environment values /path are not changed and should work correctly without any errors Verify if it is compatible with all possible Operating Systems, Browser versions etc.
Verify if the old data is retained in the application and new data works fine on new technology
2. Database migration For this type of migration, the application should be stable and the data in the database should be correct and valid. Hence, the format, type, value etc., matters while migrating between databases.
Testing activities here will be:
Ensure if the legacy database is not updated during tests after migration
Ensure whether the mapping at field and table levels do not change
Ensuring if data is migrated accurately and completely
Test Scenarios 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
II) If the migration is a different type of Database, then along with above validation points, few or more has to be taken care:
Verify data handling for all the fields. Major challenges will be handling data for calendar dates, floating numbers, hexadecimal etc.
In Pre-migration testing, developer and QA team must be extremely familiar with state and functionality of application. The most important is to know all existing issues which haven’t been fixed for various reasons. Testers must create main testing scenarios with use flows which users do the most. Also they must cover the rare workflows with some good scenarios. They will later reproduce these scenarios to confirm application works as expected.
In Migration testing, developers are trying to integrate components of application writing code changes. They must coordinate with server administrators which plays crucial role in this step. QA team catch important functional issues in this phase, overtime hours are expected for all teams involved. Occasionally there would be downtime for servers, so project manager must use the old servers until the new production is ready for customers.
In Post-migration testing, less important issues are found (e.g. content and visual bugs) and user acceptance testing is implemented. Developers are taking break after exhaustive work and QA managers are collecting issues into reports to present it to Product owner or other business representative in the team.
QA team must pay attention to common errors which caused defects:
Missing databases and resources (images, documents). Hardware configurations and setup. Domain change in code and in descriptions. Settings of application under test which haven’t replicate because of missing database. Different branch of code is pushed (new one override old one or vice-versa).
Management must decide:
Would they allow access to the databases to testers if project have deadlines? What is the scope of testing? If there are unresolved issues, should they be reported along the new ones?
Development team must:
Be 100% familiar with technologies and languages in which they’re working. Heavily cooperate with server administrators and database developers during migration. Focus on functional issues immediately.