Join 34,000+ subscribers and receive articles from our blog about software quality, testing, QA and security.

How to avoid duplication of test cases on different Milestones/Phases?


This is what I was planning to do but quickly realize that this approach will not quite work:

  1. I just completed a project Phase 1 which has many test cases in 6 test suites
  2. Now for Phase 2, most of the test cases are reusable with some adjustment
    in the test steps but I also have a few test cases which are not applicable to phase 2
  3. I exported all my test suites in XML and did a replace on all from Phase 1 to Phase 2 and import them back
  4. but the problem now I end up with duplication
    Originally I thought when i mark my Phase 1 as completed, those Phase 1 test cases will be stamp with completion as well

How would you approach it base on my scenario above?



Hello Roy,

I agree that duplicating test suites/cases is not an ideal solution in this situation. Once you mark your test runs as completed, TestRail copies/freezes the test case data associated with those test runs. That means that you can delete or change test cases for the new test phase without affecting your completed test runs. So even if you delete old test cases, you will still be able to see those test cases for completed runs. One caveat though: if there’s a chance that you will need to rerun old test cases, deleting those cases is not an option. Do you plan to rerun those old test cases/phase 1 tests?



Hi Dennis,

Looks like my approach of copying my test cases from phase 1 into a phase 2 will not work because of the duplication. What about this:

  1. existing TCs that I will re-run for phase2 - keep them As-Is and just update the milestone from
    phase 1 to phase 2
  2. existing TCs that need a re-write because of different implementation etc - edit them and update milestone but I will loose my test steps from phase 1 (if i ever needed to go back and
    see my previous test steps)
  3. existing TCs that are not relevant to phase 2 - leave As-Is with milestone “phase1”



Hi Roy,

You don’t actually need to edit the milestone values of the test cases. Those values are currently only for information purposes but don’t influence if/how a test case is executed. We plan to add a filter feature to the test run Add/Edit pages so you can select test cases for a run by specific criteria.

I suggest you do the following. First, make sure that all phase 1 test runs are closed.

  1. Leave existing test cases that you will rerun for phase 2 as is
  2. Modify updated test cases as needed
  3. Delete test cases that you don’t need to execute again. You will still be able to see the test case details in closed test runs, as closed test runs archive all associated test case details.

Does this work in your situation? We have designed TestRail so that you can basically update and change test cases and suites as you need. Closed test runs aren’t influenced by those changes.