What is the best way to test data migration from old platform to new platform

I am looking for a tool that helps test the migration of data from an old platform to a new platform. What is the best tool to test Data migration?

The article that Simon linked to looks very helpful. A few extra questions to consider.

Imagine the source system has a table with rows whose primary keys go 1-57. Then rows 1-50 are deleted. When the data’s migrated, should the destination system hold rows labelled 51-57, or the same rows but labelled 1-7?

Sometimes tables have a column on them that marks them as deleted, rather than physically removing the rows from the table. (Something like IsDeleted.) Should such rows be migrated?

Also there are tables that hold a history of something e.g. all versions of someone’s address over time. Do out of date rows need migrating? What about things like all orders a customer has placed - do 10 year old orders need to be migrated?

There are often practical considerations to check. For example, the source database might be a moving target i.e. it’s being updated all the time. One way to tackle this is to somehow take a subset of the data e.g. the most recent x%, during an overnight maintenance period and then gradually fill in the remaining data in less of a hurry. Will the destination system stay healthy all the time, by having a consistent set of data?