qTest Manager provides considerable flexibility in how you organize your test cases. As a user, you can change their structure from project to project and from release to release.
As a rule of thumb, try to organize Test Design so that it is easy to link test cases to requirements for traceability and reuse test cases in the future. On the other hand, build your Test Execution structure so that it is easy to coordinate activities between different teams and look back at test log history. Ideally, test runs should be structured using the various hierarchies: releases, cycles, and suites so that it is easy to analyze testing metrics.
Projects that follow a waterfall methodology have longer, less frequent releases with multiple testing phases. For example, you might have a round of unit testing, integration testing, system testing, and user acceptance testing. Users can consider these examples for this type of development methodology.
By Testing Stage
In Test Design, organize test cases into folders by testing stage and then by product feature to make it easy to maintain tests specific to each stage that may need to be repeated in future releases. In Test Execution, use test cycles to differentiate between the testing stages that need to occur for a certain release. This approach can be useful when different teams are responsible for executing each testing phase.
By Feature Set
Another approach is to organize Test Design folders by product feature. Within each product, use subfolders to organize test cases for different testing phases. In Test Execution, you can separate by feature set and then by testing phase. This approach is particularly useful if different teams are responsible for creating and maintaining test cases in Test Design based on the product feature or if it is helpful to drill-down your test execution metrics by testing phase.
qTest Manager is ideal for Agile methodologies because it is flexible in organizing releases and sprints. In an Agile or scrum environment, you have more frequent releases, each consisting of multiple sprints. Each sprint schedule may contain several user stories targeted for development. Tests may need to be tracked by release or sprint, as shown in the examples below.
In Test Design, organize your test cases based on a product feature. In Test Execution, use releases to divide the testing activities.
Another approach is to organize Test Execution by sprint. You can use what is considered as the "release" object (the highest level object created in the Test Plan) for each sprint. This approach can be helpful for customers who have very long releases, with many sprints within the release. It can also be helpful when there are many user stories that need to be fully tested within each sprint.
Complex System with Multiple Products
To track your testing for complex systems with multiple products which have their own development and testing teams, we suggest considering the following options.
Define a separate project for each product
This approach is useful if different teams track progress for their own products and each team requires its own metrics. This may also make sense if your external ALM, like JIRA, has separate projects for each product.
Define one project for multiple products
We recommend using this option when products being tested have the same release schedule. For example, the Mobile and Web products may be managed by different teams, but it is easy to track the activities of the two groups in one project if both teams are on the same release schedule. In Test Execution, you can use the cycle and suite objects to separate one product from another product. This approach can also be used if a single project management group oversees testing across these products.
Testing Across Multiple Browsers
When testing across multiple browsers, such as Internet Explorer and Chrome, you may want to track the differences between the browsers but make sure you can trace back and compare how the tested browser varies from release to release. Two options are described below.
Separate test cases for each browser
One option is to organize your test cases by browser type, which means you have multiple test cases for a single test. This approach is useful if the steps to execute the test vary more between browsers (e.g. the steps to execute one test case on Internet Explorer are very different from the steps to execute another test case on Chrome).
Test run configurations for execution
We highly encourage using the Test Run Configurations feature for the greatest level of efficiency. This feature allows you to use a single test case (browser agnostic) and create multiple test runs, one test run for each browser. This approach is useful when the differences in test cases per browser are minimal. In Test Design, you only need to create and maintain a single test, while in Test Execution multiple test runs can be used to ensure proper testing has been done.
For more details, see Adding Test Runs with Configurations.
Customer Specific / Customized Releases
Another factor to consider when organizing your test case repository is whether you have customer-based or customized releases. It is important to consider the balance of reusing common test cases for efficiency versus tracking functional differences. Two approaches can be used in this regard.
One project for the product for multiple customers
The first approach is to define a project per product and use separate releases per customer. This approach is useful if there are very few releases per customer and the test cases will vary minimally across the different customers.
One project per customer
Another approach is to use a separate project per customer. This option is especially useful if you have different release schedules for each customer or if the application under test is innately different for each customer (e.g. different features).