These days a large part of successful project management and test management depends on the integration of tools. Tools that are used across different business functions need to be integrated to provide visibility and traceability across the business.
For example the Dev team and QA team might need different tools for test management and agile development. Yet the team as a whole need to be able to report on progress and quality across both functions. Yet with testers raising defects in one tool and developers looking at defects in another tool it’s difficult to keep track and keep in sync. In this sort of situation integration of development and QA tools makes sense.
We’re going to take a look at integrating one of leading test management tools, Quality Center, with one of the top agile development tools, VersionOne. The goal here to give testers the capability to raise defect records in Quality Center. These Quality Center records then get propagated to VersionOne where the developers get visibility of the issues raised. When developers update these records in VersionOne the updates get propagated back down to Quality Center where the QA team get visibility of current defect status. This means the QA team can then pick these defect fixes up for re-testing.
The big advantage with this kind of setup is that the development team get to use their tool of choice and the QA team get to use their preferred tool. The ideal would be to have a single agile tool that the QA team and development team both use. This would be nice but in reality most of the agile tools on the market today (VersionOne, Rally, Jira, etc) are lacking in good test management capabilities. And even as these tools start to implement more effective QA features they’ve got a very long way to go to catch up with Quality Center. So the concept of using integration tools to link the different applications is a good way to proceed if you want to get the best of both worlds.
There are a couple of options to integrate QC and V1. The first is a tool called OpsHub which we’ve talked about before. The second is the “VersionOne Quality Center Integration” tool. It’s this ‘community’ open source tool from VersionOne that we’re looking at here.
This utility is configured and run as a process on a windows server. It runs in the background polling the APIs of both systems. It will sync and update the following entities from both systems…
- Test Cases
Currently there is no capability to process product back log items in V1 or requirements in QC for the test management.
The work flow processes that it covers are as follows:
- Tests created in V1, and assigned to Quality Center, are sync’d down to Quality Center
- Test status updated in QC will be propagated back to the corresponding testcase in V1
- Defects created in QC will be sync’d up to V1
- Defect status updated in V1 is propagated back to the corresponding defect in QC.
Setup is pretty straight forward with a ServiceHostConfigTool that comes as part of this integration tool. There are a few steps to get this integration setup…
1. Download and install the VersionOne Quality Center integration tool. This can be obtained from here..
2. Then we need to make some changes to our VersionOne instance to prepare it for the QC integration. To do this we need to add QC as a global source in the system. A user must also be created within VersionOne to represent the Quality Center user.
3. Setup Quality center. You’ll need to go to the ‘Add Ins page’ and select the Quality Center Connectivity add in which allows QC to integrate with 3rd party tools.
4. Configure Quality Center by customizing the tests entity to add a custom user field to create the versionOne identifier field.
5. Then configure the Version One service host tool. From the files downloaded in step 1 run the following application
This tool allows you to define the parameters for the integration between both tools. The setup consists of a number of pretty straightforward steps
- configure connectivity to V1
- setup the Defect field used to hold the defect id within V1
- setup the testcase service aspects of the integration.
(This allows you to define your pass/fail statuses)
- define the QC user name in VersionOne.
- define the project mapping between both systems
- config the QC setup, with the QC URL, username and password.
- Select the QC user name we’re using
- specify the qc project name, the test folder in QC that will receive the records from V1.
We can then save the configuration before starting the service host process.
6. Then finally start up with version one service host and make sure everything is running correctly…
All in all it takes about 30 minutes to install, work out how the application hangs together and then resolve any issues. VersionOne instructions and setup video are very good. Couple of things to watch out for though…
a. You might have mandatory fields in QC testcases. This test management integration tool will try to create testcase in QC from V1 records. However, the mandatory fields are not present in V1 so the integration tool can’t create the record in QC (it fails because QC complains that mandatory data isn’t present).
b. The integration tool can’t work with custom fields in either tools. For example if you have a custom field for priority in both QC and V1 you can’t sync the field data between the two tools.
c. updates to descriptions or comments in records do not get propagated between the two applications. This can make it difficult to see the history of the records from some perspectives. Ultimately it means you end up looking at the record in the originating system which kind of defeats the object really.
In conclusion this is a pretty useful integration tool that comes as a free utility with VersionOne. It has some short comings in terms of not sync’ing product backlog items, and not dealing with custom fields. Having said that the source is open and it wouldn’t be difficult to add to this utility to deliver exactly what you need. Certainly work looking at if you need to integrate your test management solution with the instance of VersionOne that your development team are using.