Software development has become a very collaborative effort in the last decade. Unlike in the past where everything was developed in house from scratch, a lot of external integration and consumption is more prevalent now in building a product. More specifically, acquisitions and mergers continue to be a very active phenomenon in the IT world in recent times. With such business propositions at play, platform and data migrations have been greatly necessitated. Besides such M&A, organizations in general are more proactive in adopting newer platforms, technologies, tools to make their software development process more robust and effective.
The migration could be as simple as a version upgrade (which is not migration in the truest sense, but still something that calls for a level of sanity checks to ensure everything works as intended and that the upgrade did not break any existing feature, functionality, lose data etc.), as complex as database, management systems (LMS, CMS, ALM, ERP systems etc.) that are migrated from one to another. More answers about migration to Google Cloud and how to transfer your custom business solutions there can be found on the specialists page. Whatever be the reason that triggers a migration to Google Cloud and whatever be the actual migration, there are specific points listed below.
Points to keep in mind in planning for a migration
1. Ensure functionality – this is the largest piece to plan for like in any test effort. Questions to answer through a test effort include: Is the migration
- Complete – Plan for one round of end to end testing on the migrated platform and data to ensure that the migration is complete, all planned features work fine on the new platform and the overall end user experience is seamless.
- Accurate – verify for accuracy of migrated data, authentication and authorization levels, overall security of the new system to ensure there are no end user impacting issues. This can be particularly difficult especially with large databases and complex systems that are being tested, in which case the right level of optimizations and sampling techniques need to be adopted to decide what to test.
- Implemented correctly for any intended drops, edits, additions – oftentimes the migration is not a straightforward X->Y, A->B solution. As part of the migration, databases, system features, content, may be planned to be added, dropped, edited for additional sanity. Incorporating these in the test effort is very critical.
2. Participate in the migration planning effort to make recommendations especially from a performance and security angle, on databases, system architecture etc. to improve the new system’s overall acceptance amongst end users.
Take time to explore features of the new cloud system or the new technology to be adopted including reading about it in online forums and discussion groups to make suggestions to the product team. Since it is a new system often times, the team is learning about it as a group and this gives you good opportunities to collaborate and ramp up with them, reducing your learning curve
3. Migrated content, data have aligned correctly with the functionality of the new platform – if the migration under discussion is only data or content, test to ensure they have been migrated completed, accurately and are also rendered fine on the front end. This calls for both back and front end testing since sometimes the migrated content may create UI and usability issues. Additional checks need to be implemented at the back end level to ensure the right content is migrated and stored in the right places so it can be picked up by the new system’s display and rendering engine correctly.
4. Responsiveness in terms of performance – sometimes, cloud migration efforts might slow down the overall system’s performance. A separate performance test effort will be needed to identify bottlenecks and implement any data or minor feature changes to maintain acceptable performance levels.
5. Collaborate with the build and operations team more than even the development team – unlike in a regular development life cycle, where test works very closely with the development team, in a migration effort, it is important for them to be in touch with the build and deployment team to plan the overall migration effort. Working with them on how to migrate, when to migrate, what sanity tests they can perform are all important elements to be planned, which make their communication link very critical.
6. Try partial migrations and test them before the complete migration can be done – this is a good check point to ensure the migration to Google Cloud is progressing as planned and to eliminate any surprises that may arise. This is almost like a pilot or a feasibility study to ensure the migration will be robust and effective and any bottlenecks can be identified and mitigated early on.
7. Verify usability and accessibility elements especially based on feedback you may have got on your pre-migration platform to proactively address them in this new version – if your system has heavy end user interaction ensure any usability or accessibility feedback from the previous platform is carried forward to the new system so as to not impact your user base adversely through this migration.
8. Update users about the migration and encourage them to try it and provide feedback including any defects and suggestions – making the migration effort transparent to the end users and potentially including them in the testing process makes the overall effort very productive and practical improving chances of their system acceptance after it is complete
In the end
Migrations can be overwhelming given the overall complexity of the content, data and systems under consideration. Take time to plan for it like any other test effort and additionally keep in mind that end users need to buy into it, for its overall success. Making note of the above points in your testing strategy will set you on the right path to a successful migration. If you have additional inputs on areas to watch out for in a migration test effort, I would be happy to hear from you.