A language to analyse trace data efficiently
Many tools support requirements traceability in one or the other way – may it be...
- a test management tool that can link “test cases” to “requirements”,
- an ALM tool supporting – within its own data – traceability for the whole lifecycle of a requirement, or
- a dedicated traceability tool, which, like the ALM tool, also covers the whole requirements lifecycle, but, unlike the ALM tool, is not limited by tool borders and can integrate a variety of different data types and tools.
Depending on their respective focus, these tools are providing various means to analyse trace data. They are offering coverage reports, impact analyses, data extraction, etc. In most cases, these analyses are of limited flexibility or cannot be adapted to specific user requirements at all.
With YAKINDU Traceability (YT), we pursue a different approach. Besides the usual means, we provide a flexible query language, facilitating custom ad-hoc queries. As this query language just has been integrated in YAKINDU Traceability, it’s definitely the feature of the month May ‘17.
This blog post illustrates the anatomy of such queries. For further information, we linked two video tutorials and another blog post that are illustrating how a simple query can provide a complete requirements traceability matrix.
Anatomy of a query
The following screenshot illustrates the anatomy of a query:
Let’s have a look at the details:
The query’s name
"Count requirements per subsystem for October" and its
description "No of requirements per subsystem for October release" are useful to quickly identify a certain query, differentiate it from other queries, and to recognize and understand what it does, without the need to look into and understand the subsequent query definition. This speeds things up e.g. when it comes to picking a certain query for execution.
source statement specifies the so-called query function. In this example it is the
allArtifacts function. It lists all artifacts of a given type, regardless whether they are linked or not. Similar to the database query language SQL, you can filter, group, and order the results of a query function by specifying a
where clause, a
groupBy clause, or an
The range of YAKINDU Traceability's query functions spans a broad range, from simple ones such as the above-mentioned allArtifacts to powerful and complex ones like tracesFromTo. The latter finds all chains of traceability links between two given artifacts types. Currently (May 2017), YT provides the following query functions:
|allArtifacts||Finds all artifacts of a given type.|
|allArtifactTypes||Lists all artifact types as specified in the YT configuration.|
|allTraceLinks||Lists all links for a given type.|
|artifactsWithoutTraceFromTo||Finds all artifacts of one type that have no traces to any artifact of a second type.|
|linkedArtifacts||Finds all artifacts of a given type that have at least one link.|
|notLinkedArtifacts||Finds all artifacts of a given type that have no link.|
|tracesFromTo||Finds all traces (i.e. chain of links) between two artifact types.|
|traceMatrixFor||Calculates all possible traces between two artifact types, while also considering incomplete or interrupted traces.|
|reduceBy, intersect, union||Operations facilitating the combination of rows of results sets (with the usual meanings as in set theory)|
|join||Joins the columns of results sets (similar to a database join).|
From a technical point of view, these functions help you to specify a depth-first search on the graph of linked artifacts, without requiring any knowledge of graph theory.
There are several ways to execute queries and to analyse the results. You can execute them by a simple double-click in the YAKINDU Traceability Query Overview. Alternatively, use a wizard to export query results to Excel. Or configure YT to execute queries and export their results periodically on your continuous integration server. Our video “Smart trace data analysis with YAKINDU Traceability” illustrates how easy it is to analyse your trace data with YT.
The YAKINDU Traceability query editor does not only provide templates for complete queries which you only have to be parametrized, it also provides smart proposals for these parameters. As the look and feel of smart editor support is hard to describe in writing, we did so in the video “Query traceability data efficiently with YAKINDU Traceability” instead.
Efficient trace data analysis
The query language does not only close a gap of existing approaches for trace data analysis, it also makes common tasks more facile. My blog post about requirements coverage shows how easy it is to create a complete requirements traceability matrix with a simple query.
You now want to learn more about YAKINDU Traceability? Then check our website!