There is some significant interest in creating an automatic bridge between JIRA and Mercury TestDirector. TestDirector is a tool that many QA teams prefer as it allows integrated management of requirements, test plans, manual and automated test execution and defect tracking. It is however a rather expensive tool for concurrent users and its web interface is an ActiveX client only compatable with IE, although the server is a J2EE application (please see the system requirements). As a defect tracker it is inferior to JIRA for a number of reasons, and generally development teams prefer JIRA for their purposes. There has been several expressions of interest in providing some form of automated bridge between TD and JIRA that could involve:
- Automatic creation of JIRA issues when a TD defect is raised.
- Automatic update of TD issue status when JIRA issue status is updated
- Automatic creation of notes/comments when an issue is updated in either JIRA or TD.
- ???
There are obviously some difficulties associated with mapping the schemas of JIRA and TD, particularly things like custom fields etc. and I have not looked closely at the mechanisms that the two products may be integrated, or how extendable TD is in particular.
TD can support custom fields, so a 'JIRA issue ID' could be added to TD datasets (as the equivalent 'TD issue ID' can be in JIRA).
Possible Mechanisms for integration:
- SOAP/RPC bridge (need to find out if TD supports this kind of integration) - Unless I've misunderstood, this post iseems to imply that TD supports SOAP and the only blocker is JRA-7246
- Database layer, by default TD uses MSDE, but may be hosted on SQLServer or Oracle. It may be possible to simply use JIRA to query the TD schema, although creation of JIRA issues would need to be handled some other way, possibly via SMTP
- SMTP, both TD and JIRA can email when issues are updated possibly triggering db queries for issue updating
- ???
Quick win solutions
Roberto Frezza (who has already posted on this) kindly provided his solution (many thanks Roberto):
We were looking for a simple solution in a short time.
We will solve the problem as follows:
On an admin-Server we install a VB-Client which communicates withthe TD (the TD API can only be addressed via the VB-Client) and a Java Client, which communicates with Jira.
TD --> Jira
The VB-Client creates for every new bug a jelly script and calls the Java-Client(parameters: path to the jelly-script and the attachments of the bugs, TD-Id, any other fields). The Java-Client communicates with a servlet on the application-server where jira is running.
Over http file-upload the attachments are transferred to the jira-serverand the server creates the issue via the jelly-interface.The attachment to the jira-issue is made directly via the jira-api and thejira-id is transferred back to the java-client. If the transfer was successful the VB-Client updates TD with the Jira-id.
Jira --> TD
The VB-Client calls Jira via Soap (getIssue with the Jira-id) and gets all theinformation it needs. TD is updated.
Tests on a local admin were successful. We will now put this solution in production and the sync will be made twice a day.
See the Documentation (in german).
I have uploaded the Code of our jira-TD Integration. See in the attachments:
td_jira_java.zip : Java Files
td_jira_vb.zip: VB Files
integration_jira_td.doc
Difficulties:
Field mapping
Custom fields would present particular difficulty if they were to be auto-updated, some kind of mapping file might be necessary. Even the normal fields are not entirely consistent, and the values themselves are not necessarily the same.
Other Issues
- If this is a regular synch rather than a real-time update there will need to be a mechanism to control which tool controls a field. This may be state dependant, however if a field is updated in both Jira and TD, which one takes priority?
- If this is done in real-time there will need to be a mechanism for handling exceptions when only one tool is available and updating that information at a later stage.
- Record Locks - How will this be handled? If it is a synch process then this could be pickedup during the next run, although if it is a realtime update how de we handle this?
- Regardless of batch or real-time process how do we ensure that both tools are in synch?
- State Models - It is possible that the statemodel defined in test director will be different to that in Jira, will either need to define a consistent State model or perhaps a mapping file?
- Attachments - Will it be possible to synch attachments and remove or update where required?
- Multiple TD Projects - The bridge will need to handle multiple TD projects. From my understand the TD defect ID is numeric only with no reference to a Project, therefore it is likely that the bugs in Jira will have a unique Jira ID, however there may be common TD ID's depending on the number of TD projects. This may not be an issue, however has caused problems with other issue tracking tools performing this integration.
- Comments Field - Unlike most fields this is not constrained to certain values and it will be important to maintain the chronological order of comments. Additionally this is a field that would probably be continually updated in both tools so you would probably want to append information from both tools to ensure that no comments are lost.
???
Contributors/Interested Parties
please list yourself here if you are interested in either participating in the development of or testing/using any TD->JIRA integration bridge.
| Name | Info | |
| Meir Ivgi | meiriv@amdocs.com | Amdocs - Devenv: Developers Environment |
| Jed Wesley-Smith | jed@combined.com.au | Combined Insurance - interested party, will need management support to commit resources. |
| Simon Machin | simon.machin@csw.co.uk | CSW Group Ltd - interested party, will need management support to commit resources. |
| Nigel Magnay | nigel.magnay@csw.co.uk | CSW Group Ltd - interested party. |
| Paul Allen | paul.allen@bnpparibas.com | BNP Paribas - interested party, going through the process of mgmt buy-in to commit budget. POC under review. |
| Ahmed Zaidi | ahmed_zaidi@ml.com | Merrill Lynch - intersted party, will need management support to commit resources. |
| Geir Eikeskog | geir.eikeskog@tietoenator.com | Tietoenator - Interested party. |
| Rajneel Ganjoo | rganjoo@etrade.com | E*TRADE Financial - QA/Interested party. |
| Euan Guttridge | eguttridge@buildonline.com | BuildOnline - Interested party. |
| Jamie Hewitt | jhewitt@clear2pay.com.au | Clear2Pay - Interested party/Contributor . Have done samething recently with a VB app for TD<->ClearQuest sync. |
| Neil Woods | neil.woods@sourcecontrol.biz | Interested party. |
| Kevin Breidenbach | kevin.breidenbach@bankofamerica.com | Interested party/Contributor |
| Arthur Lim |
arthurlim@ap.savi.com |
Savi Technology - Interested party and ex-Mercury techie. Can contribute if bandwidth permits |
| George Diamantidis |
Georgios.Diamantidis@tradingscreen.com |
Tradingscreen - Interested Party |
| Josh Glasser | jglasser at cnet dot com | CNET Channel |
| Patrick Roumanoff |
patrick.roumanoff@macquarie.com |
Interested party/Contributor. |
| Luigi Ida' | l.ida@iontrading.com | Interested party. |
| David Paterson | david.paterson@sqs-uk.com | Working on a (.NET) Solution/Interested Party |
| Nadav Nachshon | nadav.nachshon@amdocs.com | Portfolio Development Unit |
| David Schulberg |
david.schulberg@str.com.au |
Wanting to embark on the setting up of a Quality Center - JIRA bridge |
Some Prototyping Work
Mercury TestDirector Prototyping
TD2JIRA -- a (mostly) one way synchronization tool to create and update issues in JIRA based on QA input into TD. Attachments are copied as well. Although used in "production" environment, may need a modification to adjust to another environments.

Comments (11)
Jan 19, 2006
Jonathan Nolen says:
Good start. As soon as you have buyin and are ready to start the project officia...Good start. As soon as you have buy-in and are ready to start the project officially, let me know and I'll look you up with whatever resources I can.
Jan 23, 2006
S M says:
I asked a few questions about TD hereI asked a few questions about TD here on TDForums (but you need to register to view it).
Short answers were:
"No web services exist for QC at the moment."
and
"The server is J2EE. The client communicates with HTTP. All of the API is on the client side and uses COM. There is no server API."
Our next step is to prototype a WebService proxy to let us do basic operations via SOAP. Currently we're only doing things in our spare time so it might take a little while.
May 28, 2006
jesper mortensen says:
I have made a TD Jira Bridge for a customer. On the TD end it uses the COM API&n...I have made a TD - Jira Bridge for a customer. On the TD end it uses the COM API on the Jira end it uses the SOAP RPC.
The purpose of the API is to replicate bugs created in TD into Jira and back when the bug is fixed.
The bridge is made for a specific customer, so many values, states etc is hardcoded into the project.
But to make the whole thing work I have made jacob wrapper classes for a small part of the COM API. This way of connecting to TD seems quite stable. It should be possible to extend the classes to a full coverage of the API.
I have attached an eclipse project with classes and a testcase connecting to a TD server. To make the testcase work you need be on a Windows machine and have the jacob.dll in the path
Dec 12, 2006
Chris says:
I have some problem to setup the filter to retrieve the issues from TD using Jes...I have some problem to setup the filter to retrieve the issues from TD using Jesper's utility,
----Java Source
----Exception:
Feb 22, 2007
jesper mortensen says:
I did not notice Chris post on the web but he wrote directly to me and it seems ...I did not notice Chris post on the web but he wrote directly to me and it seems my response solved the issue:
Dear Chris
It is some time ago that I have worked with this (and I have no active
Jira or TD) but here is some code where I do some filtering:
filter.clear();
filter.setFilter(Configuration.TD_JIRA_KEY, "=" + Configuration.JIRA_PROJECT_KEY);
filter.setFilter("BG_PROJECT", "=" + Configuration.TD_PROJECTFIELD_VALUE);
FactoryList bugs = filter.getNewList();
-so you might have an error in the first field, i am not sure that you can use
labels, or in the second field, you need some sort of comparator "=" or "<" or ">"
The error message comes from the TD API. The best way to test your code
when you have this sort of errormessage is to make it work in VBScript first.
There are some strange things in the TD API.
Best regards
Jesper Mortensen
Feb 22, 2007
jesper mortensen says:
I have attached a version of the com wrappers that uses the new login that was i...I have attached a version of the com wrappers that uses the new login that was introduced in QC 9.0
Apr 08, 2007
jesper mortensen says:
Mercury (now HP) has posted a webclient for handling defects in QualityCenter. T...Mercury (now HP) has posted a webclient for handling defects in QualityCenter.
The client is based on jacob wrappers to the QC API
http://support.mercury.com/download/TestDirectorforQualityCenter/MI/3345828391-38555-webdefects_qc9.zip
May 24, 2007
Vladimir Dyuzhev says:
webdefects hang when connecting to QC 9. Jesper's example does work. Webdefects ...webdefects hang when connecting to QC 9. Jesper's example does work. Webdefects seems to have an older version of DLL also.
Hint: bug number (FilterList.getBug
) start with 1
Dec 07, 2007
Brett Taylor says:
We were using a connector between TestDirector and JIRA, which seemed to work we...We were using a connector between TestDirector and JIRA, which seemed to work well in our customer's environments. After a few requests to update the plugin to work with JIRA and Quality Center, we released a version that integrates the two products.
You can find more information on confluence.atlassian.com and the Go2Group website.
Hope this helps!
May 20
Casey Branson says:
There has been no activity here for a while. Is this project still alive?There has been no activity here for a while. Is this project still alive?
Jul 02
David Schulberg says:
Also wondering what are the best options for integrating QC and JIRA. We are pri...Also wondering what are the best options for integrating QC and JIRA. We are primarily wanting a one way bridge QC -> JIRA and have a caveat in that our QC server runs on LInux. I believe that limits the ease of integration because the QC API uses DCOM which is Windows specific.