End-to-end traceability of requirements with Atlassian and Zephyr
The following article is a guest post to Zephyr from Dominic Bush, Co-founder and CTO, BDQ. BDQ is a partner of Zephyr and its data profiling product called BDQ Analysis is used by notable customers such as Swiss Re, Lloyds of London, Tokio Marine, COLT, etc.
Today, we are going to discuss how you can link requirements documentation all the way through to test cases in Zephyr, giving you traceability in your development process.
A fundamental part of developing software is ensuring that it meets the objectives set out in the requirements and it is delivered in a timely fashion. This challenge is becoming more and more difficult as customers’ expectations are increasing and timescales become shorter. Add to this the challenges associated with distributed teams, often located in different time-zones and countries, and that it is necessary to respond urgently to varying market conditions and competitive pressures.
As a result, modern application delivery processes need to produce faster than ever before high quality, relevant, competitive software that is responsive to change. Fortunately, Atlassian and Zephyr provide powerful products that provide teams with the collaborative tools they need to address these significant challenges.
The first step in resolving this challenge is to ensure that requirements are always documented in a clear and unambiguous fashion.
Atlassian's Confluence is a great place to document, organise and discuss your requirements. It can act as a document repository for your teams, or as an Intranet to share information across your organisation.
Out of the box, Confluence has a powerful product requirements template which can be used to ensure that common parts of each requirement statement are captured consistently across the team. A modified version of this template can be created to match your team's specific way of documenting requirements.
Once a draft requirement is written it is important that it is reviewed by interested stakeholders and any improvements incorporated. The commenting features within Confluence make this very easy by allowing users to add comments at the bottom of the page or inline alongside specific text. These features allow business users, developers and testers to remark on content, add important information, or ask questions, therefore resolving ambiguity early in the process. This ensures the highest quality requirements before moving on to subsequent stages of the development process.
In order to keep everyone up to date with new information within Confluence, interested users can register for emails notifications when new pages are created or modified. This can ensure timely responses from stakeholders and help make sure that everyone is on the same page.
Simply put, Confluence is a powerful engine for collaboration and enables teams to discuss requirements, resolve questions and work together.
In addition to the commenting features available in Confluence, HipChat, Atlassian's team chat product, allows team-members to easily communicate in real-time either by text chat or video conferencing. These conversations can be either 1-to-1 between individuals or a group of people can collaborate around a particular subject in a virtual Room. For example, around a particular requirement.
HipChat persistently stores the messages exchanged in conversations, which is a powerful enabler for distributed teams, allowing participants to start or respond to messages at times that are convenient to them. Also, powerful search functionality is available, which can help teams recall the details from previous conversations therefore helping to avoid covering the same ground a number of times.
It is also possible to configure Confluence to add notifications to HipChat rooms to indicate when new content or updates are made. This can further improve the communication within the team and ensure that everyone is kept informed as requirements are refined.
The process of documenting requirements and making sure they are correct is only the first step in the process. From here we need to take each requirement and break them down using an Agile process into Stories that are granular enough to be estimated in a manageable way and subsequently implemented. Fortunately, JIRA gives powerful agile functionality that makes tracking work across a distributed team easy.
JIRA and Confluence have two-way integration allowing developers to view live requirement documentation from the work items and stakeholders to see progress as Stories are implemented. This gives all members of the team an up to date view of what the current state of the project is.
As you can see in this screenshot there are links from this Story in JIRA to the Wiki Page with the overall requirement "SeeSpaceEZ - Large Team Support" and to the test case in Zephyr as "Large craft booking test".
The next piece in the development puzzle is making sure that test cases are written and executed to ensure that each of the Stories are successfully implemented.
Zephyr for JIRA makes this process easy. Test cases can be documented and linked to Stories and, as already mentioned, these are linked back to requirements in Confluence. Test cases can then be organised into test cycles, or groups of tests to executed together. The results of these test cycles can also be stored as test executions, giving a clear view of the current status of the project in terms of how many of the test cases are passing successfully.
Zephyr for JIRA has very sophisticated traceability reports that show the links between the requirements, tests, test executions and any issues that have created to record defects identified during the testing.
These reports can ensure that all the requirements have been covered by test cases and that none have been overlooked. They also provide a clear Go / No Go indication of whether a particular release is meeting the requirements successfully and the software ready to be shipped. This information can be used for compliance and regulatory reasons and also in customer delivery reports to highlight how requirements have been met, tested and delivered without defects.
The reports are also useful during development as they highlight which specific defects are impacting the most requirements and alternatively which requirements have the most defects. This information can feedback into the prioritization of bug-fixing and may, in some circumstances, drive a change of scope to drop problematic requirements for the current release.
Atlassian products and Zephyr provide a solid foundation for collaboration around requirements, stories and test cases. The linking functionality and traceability reports give projects a very powerful mechanism for understanding how well the requirements are being reflected in the delivered software.
Dom has over 20 years’ experience of development and consultancy, solving business problems using innovative approaches and new technology. His current interests are in application lifecycle management and agile development methodologies, and how the myriad activities stemming from this are supported by the Atlassian technology stack, whether this involves automating a workflow, or building software on demand.