Automated Test Traceability for Jira
By Aaron Lindsay
May 18, 2017
4 min read
In the world of Agile, DevOps, CI/CD, and any other industry word we want to throw in the mix, developers and testers are under enormous pressure to quickly deliver high quality, functional software. Requirements must be backed by a series of tests, so that there is visibility into whether assigned requirements have been fulfilled. Many organizations associate test results with requirements manually in Jira (or other platforms), but this can be tedious and a waste of effort.
Instead, developers and testers can automate testing, and in turn rely on a clear, consolidated dashboard in which they have visibility into:
- All test results and the percentage of tests passing and failing.
- The percentage of requirements in scope for the current release have passing tests associated with them.
Parasoft’s reporting and analytics does just this – the screenshot below shows an example of its consolidated dashboard for test reporting and requirement traceability:
Code Coverage and Traceability
For unit testing, Jtest, (C/C++test. and dotTEST work in a similar fashion) collects test results and coverage data for unit tests that are executed and analyzes every line of code and marks it as covered if it was executed during the testing process. Total coverage is the ratio of covered lines to all the lines which could have been covered. Users can easily check if their code has been thoroughly tested by inspecting coverage reports, or check if they are meeting a code coverage requirement. Parasoft’s coverage report enables the user to easily identify the lines and portions of code that were not covered.
Jtest also enables customers to monitor standalone and web applications to collect coverage information for code that was executed when an application was running. QA and testers can collect coverage data from their manual or automated testing sessions, and Jtest can easily integrate with third-party test execution software for an automated process.
To provide effective test traceability, Parasoft tracks the covered code per test, especially useful when a user wants to check what exactly is tested by their test case, or to ensure proper test isolation (for instance, if a unit test executes unintended code, that accesses locally-stored files or modifies the environment, the user can stub or mock it). By associating tests with development artifacts, such as requirements, tasks, or feature requests in a requirement or task management system, Parasoft can collect requirement-to-test and test-to-coverage information to enable users to check if their feature implementations are properly covered by their tests.
So how do we put this to use?
One critical piece in the automation puzzle is the ability to link specific tests to requirements. An application tester may have a test that they can automate with specific inputs and outputs, but without linking it to specific requirements, they are still wasting time. Using automation from Parasoft SOAtest, application testers can create automated tests linked to specific requirements in a tracking system, such as Jira, and then quickly view top-down reports within the Development Testing Platform.
To do this, simply attach an @req type and enter the correlating id from Jira, as shown below:
Now that you’ve linked the test with a requirement tag, it can be traced after automated test execution. When the test is invoked from a continuous integration tool, like Jenkins, a report is generated that contains the @req type and references it back to the requirement in Jira.
JIRA Requirements Traceability Report
A requirements traceability report helps you demonstrate traceability between requirements stored in JIRA and test, static analysis, and build review data generated using Parasoft tools. Using the technique above, to link requirements and tests, a traceability report is generated from these correlations made during test creation. The report includes a widget and drill-down report that display test data correlated with existing JIRA requirements.
The JIRA requirements pie chart can display traceability by tests failed, incomplete, passed and no tests executed. Hovering over the pie slice indicates the total number of test in each slice. Clicking on the pie chart goes to a detailed traceability report.
Traceability information can also be consumed inside the Parasoft DTP to give developers, testers, and managers a powerful, central point of reference for how thoroughly requirements (in scope of the current release) are being covered by tests. Requirements that are untested (or which have failing tests) can be quickly identified and resources can be diverted to fix the problem. In Parasoft DTP, this looks like the below, showing a traceability report shows the JIRA/Parasoft correlation plus the detailed status of each work item.
And there you have it – a holistic overview that quickly shows you whether or not tests have passed for each requirement.
To get more information about the technologies used, follow the links below: