January 7, 2011

Links versus Relationships

Helix ALM
One of the many advantages of using a fully integrated suite like TestTrack is the ability to connect artifacts from different parts of the development process. When we first released TestTrack RM, I blogged about the complete traceability that you get with TestTrack.
TestTrack provides two ways to connect artifacts:
  • Links
  • Relationships
Sometimes it is easy to get these two confused and know when each one is used. Links are used to link any two items in TestTrack. Links can be parent-child relationships or peer relationships. You can also link across item types. For example, you can link a failed test run with a defect. These links can be established automatically or manually. Usually, when you generate an item type from another, you have the option to configure automatic linking. If you generate a test case from a requirement, you can have the link created automatically. This provides what I call "automatic traceability". On the other hand, relationships are very specific. They only exist between requirements, and they are established when requirements are added to a requirement document. Let's take a look at a requirement to further explain this. First we will look at the requirement within the context of the document. [caption id="attachment_6803" align="aligncenter" width="265" caption="Requirement in document"]Requirement in Document[/caption] In the previous screenshot, you can see that this requirement (FR-54) has a parent and child requirement. These are relationships because they are established by them being in the document. Now, let's take a closer look at the requirement by opening it up for edit. On the Traceability tab, we can further examine the relationships in the Requirement Relationships section. [caption id="attachment_6804" align="aligncenter" width="514" caption="Requirement Relationships"]Requirement Relationships[/caption] In the Links section, you can see that there is also a test case. A link is used to establish the connection between the requirement and a test. Why? Because the test case is not in the document (only requirements can be in the document). [caption id="attachment_6806" align="aligncenter" width="484" caption="Requirement Links"]Requirement Links[/caption] Links would also be used if the requirement needed to be associated with a defect. You could also use links to establish a connection with two requirements that are not in the same document. Links can link more than two items, and an item may have multiple links. In the traceability matrix, relationships and links are shown differently. Links are represented by a solid arrow: [caption id="attachment_6808" align="aligncenter" width="166" caption="Requirement to Test Case Link"]Requirement to Test Case Link[/caption] Relationships within requirements are shown as dotted arrows: [caption id="attachment_6809" align="aligncenter" width="274" caption="Requirement to Requirement Relationships"]Requirement to Requirement Relationships[/caption] The arrow always points to the child item in the relationship. In summary, relationships are only within the context of a requirement document. Anything else is a link.