Page History
...
- - major
- - highest
- - high
- - medium
- - low
- - lowest
Process
- "Unified" development process: define a process that can be applied to all teams in the way how to manage the STLC. Every team is different and has its own needs, therefore your process should not be too strict but it should provide some guidance on how development life cycle should be addressed, covering requirement management, bug management and test management. Having teams working completely in different ways, hardens communication and leads to unproper and unoptimized tool usage. If you have a well-defined process that can be used organization wide, better; this is the key to ensure an optimal usage and have the best performance.
- Using Xray in an Agile context for tips on how you can take advantage of Xray in such scenarios;. Agile software development page provides high-level overview of Agile and Agile Testing and besides background information on them, it will also provide some useful tips so your team can be more Agile and avoid doing things that are unnecessary. Are you adopting Agile and Scrum? Check out
Specification
??
Organizing
- Avoid having many (>>10) sub-requirements per requirement (e.g. Stories per Epic) as it can impact the calculation of their statuses
- normally it is a signal that the requirement needs to be further decomposed. Besides hardening analysis and its management, it will also require additional resources during computation of its status upon changes in any of the related sub-requirements, that in turn is affected by the status of the related Tests.
- Requirements being covered by many (>>20) Tests
- normally it is a signal that the requirement needs to be further decomposed. Besides hardening analysis and its management, it will also require additional resources during computation of its status, that in turn is affected by the status of the related Tests.
Organizing
- additional benefits over using "lists" (i.e. Test Set issues), as it makes management of test cases easier while avoiding the creation of issues. If you have thousands of Tests, using the Test Repository approach may provide
Planning
- Instead of creating one Test Plan for your release, you may create multiple Test Plans to track different Tests (e.g. manual vs automated); this may be useful if you want to have clear visibility of how certain groups of Tests are progressing and if their execution lifecycle is different from other ones. It will also make your Test Plans considerable lighter.
- here. If adopting Scrum, create Test Plans per Sprint, to track the testing being done in the scope of your Sprint; manage them as artifacts of your Sprint and add them to your Scrum boards so everyone sees their progress. Per each Sprint you may have more than one Test Plan; check out some possible usage patterns
...
Entities
Requirements
??
Tests
- Don't add many custom fields to Tests as it will add some additional overhead to Jira.
- up to 5 linked Tests per each requirement; ideally a Test should be focused on the validation of one requirement.
This recommendation helps improve performance both on the TestRunStatus and Requirement Status calculations and also when loading the issue screens and reports.
We recommend - Promote reusability and avoid cloning Test cases, if they’re the same. A Test can be reused multiple times and can be used to cover more than one requirement (if really needed), no matter in which project it is located.
Pre-Conditions
- manageable end reusable initial conditions that you can link to multiple Tests. That will avoid creating additional steps in all those test cases. Although the impact is neglectable, try to use Pre-Conditions as means to have
Test Sets
- Although there isn’t an hard limit, we recommend having no more than 2000 Tests in a given Test Set mostly to ease their management. This limit may be easily superseded depending on Jira instance deployment configuration.
Test Repository
- Creating a Test Plan from within some Test Repository folder that has many Tests and sub-folders can take some time, if you choose to replicate the folder structure into the destination Test Plan Board. However, this is temporary.
- Avoid many folders shown at the same time as it will impact browser performance at some time. You can do this by limiting of direct child folders you create at a given parent folder and by using the "Expand all" moderately. The amount of folders you have does not affect by itself your Jira backend performance though.
Test Executions
- if you don't need historical data of interim builds, you may reuse an existing Test Execution and update the corresponding Test Runs. During CI, depending on the endpoint being used, you may specify a Test Execution issue key. In such case, Xray will overwrite the existing Test Runs information, or add new ones if the Test is not yet part of the Test Execution.
Reuse existing Test Executions (and related Test Runs), if possible, to make calculations faster througout the application and thus make reports and some panels, for example, also fasterIf your organization performs a high number of Test Executions (consequently creating also a high number of Test Runs) we recommend deleting old Test Executions issues from time to time. This recommendation applies to organizations that import many automated executions daily using the REST API.
The clean-up process must be scheduled for a low Jira usage period because when Test Executions are deleted, Xray will re-calculate TestRunStatus and Requirement Status. This might temporarily slow down the Jira instance depending on the amount of issues affected.
- Deleting Test Runs can affect the calculated and consolidated status of your Tests and of your requirements for all scopes (e.g. versions or Test Plans + Test Environments); please use carefully
Clean-up old, unneeded executions related data, to make calculations faster througout the application and thus make reports and some panels, for example, also faster- Although there isn’t an hard limit, we recommend having no more than 2000 Tests in a given Test Execution mostly to ease their management. This limit may be easily superseded depending on Jira instance deployment configuration.
Test Plans
- setting "Max number of Tests per Test Plan" where you may define a soft limit for the number of Tests within Test Plans. Although you may adjust this value, we recommend having no more than 2000 Tests in a given Test Plan:
- to ease their management;
- and to make it more performant and lighter.
Note that a Test Plan aggregates and consolidates the results of the related Test Executions and Tests, thus the overall number of Test Runs you'll have can add some overhead to the calculation of the consolidated results. Xray provides a
Test Plan Board
- Using the Test Plan Board as means to do operations over certain Tests of the Test Plan (e.g. schedule Test Executions for them) and to track results can be more efficient than using the Test Plan issue screen. Although the previous two are not equivalent, the Board provides essentialy the same operations while being lighter most of the times as it not shows all the information you can see in the Test Plan issue screen.
- Avoid many folders shown at the same time as it will impact browser performance at some time. You can do this by limiting of direct child folders you create at a given parent folder and by using the "Expand all" moderately. The amount of folders you have does not affect by itself your Jira backend performance though.
Automation & Continuous Integration
- Upload only relevant test results (e.g. don’t upload unit test results); choose properly what testing results you want to track within Xray
- aggregate relevant results in some job run periodically (e.g. hourly, daily) and submit those
Choose properly the upload frequency- Leave the highly detailed execution info on the CI tool
Don’t mix the CI tool with TM tool
Test Environments
- it will impact the calculations that need to be done and the Lucene index
don't create dozens or hundreds of Test Environments; don't try to do data-driven testing using test environments
...
Diamantino Campos , Any other Jql function?
REST API
- Review the "Max results per request" setting in the the Miscellaneous administration settings as it controls the pagination on the REST API calls. The default value should be ok.
- export results
- https://confluence.xpand-it.com/display/XRAY/Export+Execution+Results+-+REST
- Limit API calls (Jira and Xray related ones) using a reverse proxy
- Evaluate what REST API calls are being used, discuss their real need with users
- Make sure that pagination is being used on the REST API calls
- Restrict access to REST API calls
- Limit access to well-known hosts/applications
- Evaluate what REST API calls are being used, discuss their real need with users
Xray calculated custom fields
- specific custom fields that calculate their values on the fly. This means that you should have that in mind, specially if you're including them in tables/issue listings/gadgets. Xray provides some
Your own custom fields
- indexing time
- REST API calls (e.g. whenever searching issues)
- on listings (e.g. on Issues search page, Filters Results gadget, Xray tabular sections) if they're included as columns
Beware with calculated custom fields implemented using some customization app (e.g. Jira Misc Custom Fields, ScriptRunner, etc) as they will be calculated each time they're accessed and they can impact things such as- Adding a lot of custom fields on Jira will add some overhead on performance; therefore, Atlassian itself recommends a responsible usage of custom fields
...
Xray comes with default settings that are ok for most organizations. Nevertheless, have a look at the different settings; it’s an opportunity to know the product better and for you to think on ways to fine tune it later.
- Review Review the settings "Max Test Runs for bulk operations", "Max number of requirements per report or gadget results", "Max number of Tests per Test Plan", "Max results per request" in the the Miscellaneous administration settings. The default values should be ok.
- quais outros settings podem ter mais impacto na performance?
Reports and Gadgets
- One way of doing reporting is by using gadgets. Gadgets are great to share information between team members and even between different teams; however, if not use carefully, they can degrade JIRA performance if all users have the same report on their dashboard as they will probably generate multiple requests once users access the dashboard. Thus, use carefully most intensive gadgets such as the "Historical Daily Requirement Coverage" and the "Tests Evolution" gadget and others that do aggregations (e.g. "Test Runs Summary" gadget). Gadgets that just "list" entities should not affect performance significatively.
- Limit the target issues for the reports/gadget, e.g. generate the Overall Requirement Coverage (report/gadget) just for issues that you really need and not all Jira requirements or projects.
...
- Use dashboards to have the high-level overview and the things that matter
- Avoid creating highly complex dashboards or dashboards
- Try to normalize the dashboards and make them like a standard organization wid
- facilitates communication
- avoids “wrong” usage
- Choose properly the filters you use for each gadget, in order to restrict the amount of issues that will be processed
Custom Reports
- If possible, use eazyBI for making custom table/chart based reports with drill-down capabilities; it is highly flexible and works in its own database, thus not impacting Jira unless the database is hosted in the same instance of Jira server/database
- Xporter specific recommendations. If using the Xporter app to build custom PDF, Word or Excel based reports, then please see
Data Center
...
- Review Atlassian's best practices for Data Center and the Node sizing overview for Atlassian Data Center article
- Configure your load balancer properly to use dedicated nodes for REST API calls, which can reduce impact on other application nodes
- Integration with other apps
...
- See eazyBI's Data Center related recommendations here