<< Previous Back to TFS Consulting Page Next >>

TestTrack Pro to TFS Migration


Description:

The client had a large number of defects that had been stored and tracked in Seapine's TestTrack Pro product over several years. Driven by a desire to consolidate their lifecycle management tools, the client needed to migrate these existing defects into Team Foundation Server.

Solution:

Using TestTrack Pro's export capabilities, the defects were first exported to an external XML file. Then, using a custom program that was written using the TFS SDK, the defects in the XML file were read in and subsequently written to TFS work items. Along the way, we were able to also migrate attached files (which were stored in separate files during the export process), and maintain link consistency between defects.

Maintaining link consistency was done by keeping a mapping of old defect numbers to new defect numbers, and then creating work item linkages in TFS that corresponded symantically to the original linked defects. For example, if TestTrack Pro had two linked defects, 1047 and 1098, and the old defect 1047 was now stored in TFS as 5443, and the old defect 1098 was now stored in TFS and 5587, then we created a link in TFS between work items 5443 to 5587 to mirror the orginal link symantics.

When defects are migrated from an old system to a new system, the defect fields need to be mapped from the old system to the new system. To accomplish this, there must be a way to describe these field mappings. Given that we were writing a custom program, we could have simply embedded these mappings as business logic within the program. This would have required recompiling the program between each iteration. To avoid this, we stored the field mapping logic in an XML configuration file. The client then only needed to change the configuration file if they needed to tweak their field mappings.

Project Lessons:

In theory, migrating defects from an old system to a new system should be relatively easy. In practice, it is trickier than it may appear at first blush. Here is a list of issues to keep in mind during any migration project.

Process Design - To the extent possible, the design of your TFS processes, including fields and workflows, should be done before attempting a migration effort. It is difficult to properly map the old system's records into the new system, if the configuration of the new system is still in flux.

Migration Planning - Planning is extremely important. The mapping of fields and processes should be done before attempting to migrate data.

Testing - Testing is also important. One should not expect that the first import run will run flawlessly and map all fields as desired. It is an iterative process.

Error Recovery - Error handling and recovery should be incorporated into the migration program. In other words, if the migration process fails part-way through due to an error, there must be a way to restart the migration process to complete the items that were skipped in the first pass. Duplicate item checking is important in this case.

Artifact Migration - While there are some simple import facilities available with TFS's built-in capabilities, similar to other ALM solutions on the market, they don't allow you to fully migrate the work item artifacts, such as attached files and related work item linkages. A custom program will most likely need to be written to migrate this data. This is one reason why our clients have to chosen to utilize our consulting efforts rather than attempt a migration effort on their own using built-in tools.

Version Control History - You should think carefully about how important it is to maintain your version control history from the old system to the new system. Some teams prefer to migrate this data, believing that the information will prove useful in reporting, comparing, and searching. Other teams feel like they would prefer a fresh start, and choose to migrate only the current version of each source file, but not the entire revision history. Migration of revision history is made more difficult by TFS's lack of support for timestamp control, thus it is not possible to exactly duplicate the old revision history within TFS. Revision history can still be migrated, but the revision dates will not be accurate.