In order to investigate, evaluate and ascertain the completeness and quality of a project, developers perform quality assurance tests. Testing can be performed as individual components/units using Tests, or as a whole using Test Sets. The goal is to check and verify if a specific target requirement is applied, even when determined pre-conditions are set, and also help prevent and uncover situations and defects that could negatively impact the overall usability of the final product.
A full test specification may be done using just a Test issue, where you specify the steps and the expected results. Sometimes, you may prefer to abstract the initial conditions instead of writing them directly as the first Test steps, enabling you to use them in different tests. In this case, you may create one or more Pre-Condition issues and associate them to a Test.
Although tests may be edited anytime, the immutability of tests is guaranteed whenever tests are scheduled to be executed in some Test Execution.