Analyze Requirements Coverage

  Libor Buš tips share

Learn how to identify requirements coverage gaps by filtering the requirements table and by custom traceability report.

Requirements traceability is a key practice for software development standards (such as IEC 62304 for medical or ISO 26262 for automotive industry) requesting a prove that all requirements are covered by design, implementation and verification artifacts.

In ReqView, you can create and manage traceability links directly in the structured requirements documents so that you see all the necessary traceability information in Links column of the requirements table. Requirements with missing links making coverage gaps are easily visible:

Requirements coverage gaps visible in the Links column

You can further filter the requirements table to identify all the requirements which are not covered or you can export the requirements document using a customized traceability report highlighting coverage gaps. The first approach is simpler however it exposes coverage gaps only on a single level. The second approach is more complicated, on the other hand, it visualizes coverage gaps over multiple levels.

In the next sections we will explain that on the Example Project which contains 4 documents NEEDS (business needs), SRS (software requirements), TEST (test cases) and RISKS (FMEA), satisfaction links from SRS to NEEDS and validation links from TESTS to SRS. Thus our coverage analysis will have 3 levels: NEEDSSRSTESTS.

Filter Requirements Coverage Gaps

You can filter top level requirements with missing incoming traceability links to expose requirements coverage gaps as follows:

  1. In the top level document set a custom enumeration attribute storing information if a document object is a requirement or not. In the demo project, we use type enumeration attribute with possible values User Story, Section, Information, ...

  2. Switch to the top level requirement document and enter filtering condition matching only requirements. In the demo project switch to NEEDS document and enter [Type: User Story].

  3. Narrow the filter by adding a condition matching only objects with missing links of given type. In the demo project use filtering suggestions to enter [NOT Is satisfied by] condition.

As a result, you will see only requirements with coverage gaps on the highest two levels:

Filter requirements with coverage gaps

You can print the filtered view by File > Print menu. Do not forget to check Preserve filter and sorting option in Print Options dialog.

Alternatively, you can export the filtered view into HTML. For instance, choose File > Export > HTML File > MS Excel menu to export view with the predefined MS Excel HTML template:

Export requirements with coverage gaps to Excel

You can similarly filter requirements coverage gaps on the lower levels. In the demo project switch to SRS document and filter coverage gaps in verification links from TESTS to SRS.

Multilevel Coverage Analysis Report

You can create a custom template exporting coverage analysis report which helps you to identify coverage gaps across multiple levels.

The following HTML template snippet illustrates how to output in the demo project a traceability column with 2 levels downstream coverage information starting from NEEDS top level:

<td>
<ul>
{{#ifEqual type "User Story"}}
{{#ifHasInlinks "satisfaction"}}
{{#eachInlinkWith type="satisfaction"}}
<li>
{{docObjId}}: {{shortDescription}}
<ul>
{{#ifHasInlinks "verification"}}
{{#eachInlinkWith type="verification"}}
<li>{{docObjId}}: {{shortDescription}}</li>
{{/eachInlinkWith}}
{{else}}
<li class="warning">Missing verification links!</li>
{{/ifHasInlinks}}
</ul>
</li>
{{/eachInlinkWith}}
{{else}}
<li class="warning">Missing satisfaction links!</li>
{{/ifHasInlinks}}
{{/ifEqual}}
</ul>
<td>

The template snippet first uses ifEqual helper to check if the object in the current context is a top level requirement (user story). Then it uses ifHasInlinks block helper to decide if the requirement has an incoming satisfaction link. If the top level requirement is linked by incoming satisfaction link(s) then the snippet iterates the satisfaction links using eachInlinkWith helper and outputs ID and description of linked SRS requirements. If the linked SRS requirement has an incoming verification link it dives one level down and outputs coverage analysis between SRS and TESTS. If the top level requirement is not linked by any incoming satisfaction link then the snippet outputs a warning message.

The following picture shows an example HTML output of the multilevel coverage analysis report based on the snippet above:

Requirements traceability report with coverage analysis across 2 Levels

You can download NEEDSTraceabilityTemplate.html template and customize it for your project with specific documents and traceability scheme.

References

Check following documentation sections: