Your quality engineers are integral to your software delivery process. So how well do you understand what they do from day to day? Are their tests hidden in a separate system somewhere? Does it feel like test automation occurs in some black hole where you just have to trust that it’s working, especially for agile teams? Why does it so often feel like QA operates in its own lane?
Traditionally, software developers and QA were considered different functions. Developers churned out code which was compiled, linked, and then sent to QA. Testers checked the code and either passed it for release to production or, more often, sent it back to the development team to fix the death-by-a-million-paper-cuts that were the resulting defects. This system never worked very well. The QA waterfall was a logjam to smooth delivery, and developers treated quality as an afterthought as they rushed to produce code that was both buggy and difficult to maintain.
Modern software development stresses the importance of shift-left testing. Developers create their own test harness for code they produce, and testers are integrated into development teams so that when defects arise, the feedback loop to get them fixed is as short as possible.
That’s the way it’s supposed to work anyway. In reality, most companies are still hamstrung by the old ways of working, even if they make intentional efforts to correct course.
Conway’s Law Meets Siloed Test Management Systems
In 1967, computer scientist Melvin Conway noticed that systems designed by organizations are constrained by the communications structures within those organizations. If development teams are siloed from the testing function, then your development workflow would be managed in one system (for instance, Jira) while your test management system would reside in another system altogether (like qTest). This separation can complicate bug tracking and delay the resolution of software defects. And while you could integrate these two systems, there would always be some level of impedance mismatch. Jira is not just a project management tool it can also be a powerful testing tool to help you streamline your testing processes.
If you feel like your QA team still works in their own sandbox, chances are you are still stuck with the legacy of past Conway’s Laws. Rather than maintain separate domains for software development and QA, why not treat them like the single system they are? Your development teams work in Jira every day. Why shouldn’t your testers?
Test Management Within Jira
In our experience, testing works best when it is a whole-team endeavor, and Jira software facilitates this by integrating development and testing activities. Team members should have a view into both development and testing activities – all of them – in order to have the shortest possible feedback loop. Jira software allows you to manage test cases efficiently, ensuring that all team members have visibility into the testing process. If you’re experienced with Jira, you already know how well it manages Epics, User Stories, Defects, and other work items. Your team probably knows how to groom the backlog, add unambiguous Acceptance Criteria to stories, and manage the flow of work. So it’s not too much to expect the team to also be able to create tests, curate test sets, execute test plans, and monitor test execution within Jira as well (preferably with automation).
The biggest benefit of this is that it defeats the legacy of Conway’s Law – your system now reflects how communication should occur. To the extent that your organization’s QA is still siloed, the new system design gives you enough leverage to Jiu Jitsu your way toward a better organizational structure.
This is why we at Praecipio recommend looking at systems that move test management entirely into Jira. Creating a comprehensive test plan within Jira helps in monitoring progress and ensuring that all test cases are executed as intended. Our most common recommendations to make this happen are Xray and Zephyr. (These two systems are roughly equivalent in their features, though we happen to prefer Xray for a number of reasons we don’t have space to get into here.)
With one of these systems configured, adding test coverage to a User Story takes place within the work item itself, right in Jira, where it can be viewed by all team members, managers, and whoever else cares to look. The newly created test work item will look and feel like the other items on your team’s Jira board, while the test itself will look familiar to anyone who has ever used a test management system.
In this case, it’s a manual test, but where this system really shines is in how it enables and makes transparent your investment in test automation.
Creating Test Cases in Jira
Creating test cases in Jira is a crucial step in ensuring the quality of your software development project. To create a test case in Jira, follow these steps:
- Log in to your Jira account and navigate to the project where you want to create the test case.
- Click on the “Create Issue” button and select “Test Case” as the issue type.
- Fill in the required fields, such as the test case name, description, and priority. This helps in clearly defining what the test case is about and its importance.
- Add any relevant attachments or screenshots to the test case. This can provide additional context and make it easier for testers to understand the requirements.
- Assign the test case to a specific component or label to help with organization and filtering. This ensures that test cases are easy to find and manage.
- Click “Create” to create the test case.
Jira also allows you to create test cases in bulk using the “Bulk Create” feature. This feature enables you to create multiple test cases at once, saving you time and effort. By streamlining the process of creating test cases, Jira helps you maintain a well-organized and efficient testing process.
Organizing and Managing Test Cases
Organizing and managing test cases in Jira is essential to ensure that your testing process is efficient and effective. Here are some tips to help you organize and manage your test cases:
- Use components and labels to categorize and filter your test cases. This makes it easier to locate specific test cases and manage them effectively.
- Create a test case hierarchy by using parent-child relationships between test cases. This helps in structuring your test cases logically and ensures that related test cases are grouped together.
- Utilize Jira’s built-in reporting features to track test case coverage and execution status. This provides visibility into the progress of your testing efforts and helps identify any gaps in test coverage.
- Assign test cases to specific teams or individuals to ensure accountability and ownership. This ensures that each test case is executed and managed by the right person or team.
- Use Jira’s workflow feature to define the testing process and ensure that test cases are executed in the correct order. This helps in maintaining a consistent and organized testing process.
By organizing and managing your test cases effectively, you can ensure that your testing process is streamlined and efficient, and that you are getting the most out of your testing efforts.
Executing Manual Test Cases in Jira
Executing manual test cases in Jira will feel very familiar to anyone who has ever worked within a test case management system. Here are the steps to execute a test case in Jira:
- Log in to your Jira account and navigate to the project where the test case is located.
- Click on the test case you want to execute and click on the “Execute” button.
- Follow the test case steps and verify the expected results. This ensures that the test case is executed as intended and that the software behaves as expected.
- Update the test case status to “Passed” or “Failed” based on the results. This helps in tracking the progress of your testing efforts and identifying any issues.
- Add any relevant comments or attachments to the test case. This provides additional context and helps in understanding the results of the test case.
By using Jira to execute test cases, you can ensure that your testing process is efficient and that you have a clear view of the test results.
Peering into Your Testing Pipeline
One of the biggest drags on productivity is the legacy practice known as manual testing. Many IT organizations are hobbled by regression testing efforts that can add a full month or more to a production release cycle. Manual tests are slow, tedious, error-prone, and wasteful, which is why software leaders like Dave Farley have adopted as a motto the phrase “automate all the things!”
Having said this, we have to note that moving all your tests into an automated CI/CD pipeline is no silver bullet. Automated tests are often hidden in build systems like Gradle for Java or NPM for Javascript. Your engineers can tell you that “all tests are green,” but do you know what is being tested? Or how it is being tested? Are those tests even meaningful?
Once again, Jira-based test management comes to the rescue.
Xray and Zephyr both give you the ability to create hooks directly from Jira into your CI/CD testing pipeline, whether you use Github Actions, Gitlab, Jenkins, or some other tool. They also have the ability to display results of those tests in Jira itself, so you have greater transparency into your automated testing efforts. Teams and managers can now validate what tests are being run, which are passing, and which need remediation. This goes a long way toward alleviating the new testing silo that automation can all too often introduce.
Reporting and Analytics
Reporting and analytics are critical components of test case management in Jira. Here are some ways to use Jira’s reporting and analytics features to track test case coverage and execution status:
- Use Jira’s reporting features to track test case coverage and execution status. This provides visibility into the progress of your testing efforts and helps identify any gaps in test coverage.
- Create custom reports and dashboards to track test case coverage and execution status. This allows you to tailor the reports to your specific needs and gain deeper insights into your testing process.
- Use Jira’s plugin architecture to integrate with other reporting and analytics tools. This enables you to leverage additional tools and features to enhance your reporting and analytics capabilities.
- Use Jira’s API to automate reporting and analytics. This helps in streamlining the reporting process and ensures that you have up-to-date information at all times.
- Utilize Jira’s data analytics features to track test case trends and patterns. This provides valuable insights into your testing process and helps in making data-driven decisions to improve your testing efforts.
By using Jira’s reporting and analytics features, you can gain valuable insights into your testing process and make data-driven decisions to improve your testing efforts. This ensures that you have a clear view of your test case management and can continuously improve your testing process.
How Can We Help You?
It’s probably not news to you that Praecipio knows Atlassian Jira. That is what we are known for. But what you may not know is how many clients we have helped to maximize their return on their Atlassian tooling investment. We can help you with testing strategy, workflow design, training, enablement, and all the technical and cultural aspects of getting the greatest flexibility, responsiveness, and transparency from your teams and your tools.
Reach out to us, and let’s discuss how we can help you get the most from Jira.