skip to content

Versions and Baselines

How a managed case repository survives change over time: edits made while a cycle is open, the revision trail behind each case, per-release copies, and retiring a case without losing its evidence.

on this pageshow

explore

questions

18

In a managed test-case repository, what does cloning a folder of cases for a new release actually copy, and what does it leave behind?

level: juniorimportance: must knowfreq 68%

answer

  1. a copy, not a link
  2. definitions travel, evidence does not
  3. new identifiers, fresh revision trail
  4. results stay with the runs
  5. fields land only if the destination has them

basics

~20 s

A clone copies the case definitions - titles, steps, expected results, field values and attachments - into brand-new cases with new identifiers. It leaves behind the executions, recorded results and the revision trail, which stay with the originals.

solid answer

~40 s

Cloning for a release is a bulk copy of a subtree of the case structure, and the emphasis is on *copy*. Each new case is an independent record with its own identifier, created at clone time. What travels is the definition: title, precondition, steps and expected results, custom field values where the destination defines the same fields, attachments, and the folder shape. What does not travel is the evidence: executions and recorded results hang off runs that name the original identifiers, and the copy's revision trail starts at `created`. Inbound links from tickets or requirements also keep pointing at the originals. So after a clone you have two unrelated records that happen to read the same today, and no built-in view that joins their histories.

go deeper

for a junior

Be able to say plainly that a clone produces new, independent cases with new identifiers, and that recorded results stay with the originals rather than moving to the copy.

for a middle

Explain the mechanics: results belong to runs that name a case identifier, so the copy has no history; and custom field values only survive if the destination defines the same fields.

for a senior

Show that you check the consequences before the first clone - inbound links left on the originals, freshness views flooded by the new subtree, and whether a mis-clone can be undone at all.

for a principal

Own the question of whether the copy should exist. Cloning duplicates definitions to solve a problem the run layer may already solve, and every copy is an ongoing upkeep commitment.

## What cloning a subtree actually does In a managed case repository - a TestRail-class product, or a Jira-resident tool such as Xray or Zephyr that lives inside the tracker rather than beside it - a test case is a **record**: a title, an optional precondition, an ordered list of steps with expected results, a set of custom field values, attachments, and a position in a folder or suite tree. Cloning for a release is a **bulk copy of one subtree of that structure**: the folder that held the outgoing release's cases is copied, and the copy becomes the next release's folder. The copy is a copy. Each new case is a **new record with its own identifier**, created now. Nothing about it is a view onto the original, and nothing keeps the two in step afterwards. They are related only by your naming convention and by whatever provenance marker the product happened to write. ## What the copy carries - **The definition** - title, precondition, steps and expected results, exactly as they read at the moment of the copy. - **Custom field values**, to the extent that the destination defines the same fields with compatible types and option lists. A field the destination does not have has nowhere to land, and the value is quietly gone. - **Attachments**, usually re-attached as fresh copies so the new case does not depend on the old one surviving. - **The shape of the subtree** - folders, their nesting and their order, reproduced under the new root. - **Sometimes a provenance note** naming the source case, if the product writes one and nobody strips it. ## What the copy drops | Left behind | Why | |---|---| | Executions and recorded results | A result hangs off a run and names the case it was recorded against - the original's identifier, never the copy's | | The revision trail | The copy is a new record; its history begins at creation, with no entries from before the clone | | Inbound links | Tickets, requirements and external references were written against the original's identifier and keep resolving there | | Saved filters, dashboards and subscriptions keyed by identifier | They were built against identifiers the copy does not share | The drop that surprises people most is the **history**. A year of green runs against the outgoing release's cases is still there and still readable - but it is attached to those cases. The new copy starts with nothing. Any question of the form *how has this case behaved over time* now splits into two reads, one per identifier, with nothing in the product joining them. ## Why the drops matter in practice 1. **Per-case reporting fragments.** Trend views, flakiness views and last-result columns are all keyed by identifier, so the same logical case appears as two unrelated rows the moment it is cloned. Nothing is lost, but nothing is joined either. 2. **Inbound references stay on the original.** A defect ticket that links to the case it was found by still links to the outgoing release's copy. Readers following that link land on a case the current release is not executing. 3. **Freshness signals reset.** Every copied case looks newly created and never executed, so views such as *never run* or *not updated recently* fill up with the whole new subtree on day one, and stay noisy until the first cycle. 4. **Field loss is silent.** When the destination's field set differs, values do not error - they simply are not there. The cheapest moment to notice is immediately after the clone, on a spot check of a handful of copied cases. ## What to check before the first clone - Does the destination define **the same custom fields**, with the same types and the same allowed values? - Do attachments arrive as independent copies, or as references that break if the source case is later removed? - Does the product write a **provenance marker**, and is it something you can filter on months later? - Where do inbound external links end up - on the original, on the copy, or duplicated onto both? - Is the clone easy to undo? Removing a mis-cloned subtree of several hundred cases is not always a single action, and doing it by hand is how cases from the previous release get deleted by accident. Answering these once, before the first release copy, is far cheaper than discovering the answers on the third. The clone itself takes seconds; every consequence above is discovered weeks later by someone who did not run it.

  • If past results do not come with the clone, how do you still report on the previous release?
    Read it from where it lives: the old results stay attached to the original cases and to the runs that produced them, and that report is unaffected by the clone. What you cannot do is read one continuous per-case history across both releases, because that requires joining two identifiers and no built-in view does it.
  • What should you check about custom fields before cloning a subtree into a different project?
    That the destination defines the same fields, with the same types and the same option lists. Where a field is missing or its options differ, the copied value has nowhere to land and disappears without an error. Spot-check a few copied cases immediately after the clone, while it is still obvious what was lost.

saying these in an interview costs you the question

  • Assumes the clone brings past run results with it
  • Thinks the copy stays linked to the case it came from
  • Expects identifiers to be preserved so old links still resolve
  • Believes the revision trail is copied along with the steps
open as a page

In a TestRail-class test case repository, what does a single entry in a case's change history record?

level: juniorimportance: must knowfreq 62%

basics

~10 s

One change-history entry names the actor, the timestamp, and every field that save touched with its before and after values. Entries are per-field and append-only, so the trail never shrinks.

open as a page

In a managed test case repository, what is the difference between a test cycle that stores a snapshot copy of each case and one that holds a live reference to it?

level: juniorimportance: must knowfreq 68%

basics

~20 s

A snapshot cycle copies each case's text when the case joins it, so later edits never change what the cycle shows. A live-reference cycle stores only a pointer, so every edit to the master case appears immediately inside the open cycle.

open as a page

In a TestRail-class test case repository, how does archiving a case differ from deleting it, and what happens to the executions already recorded against it?

level: middleimportance: must knowfreq 66%

basics

~20 s

Archiving hides a case from authoring and selection while keeping its record and execution history intact. A hard delete removes the record itself, so past results and inbound references lose the row they resolved against.

open as a page

In a managed test case repository, how does comparing two revisions of a case differ from restoring one, and what does a restore leave behind in the trail?

level: middleimportance: must knowfreq 55%

basics

~20 s

Comparing two revisions is a read-only, field-by-field diff. Restoring writes the old values back as a brand-new revision attributed to you, now — it never deletes the revisions in between, so the trail only grows.

open as a page

A tester recorded a pass in an open cycle, and the next day the case's steps were rewritten in a repository whose cycles follow the master case live. What is that pass now evidence of, and how would you handle it?

level: seniorimportance: must knowfreq 58%

basics

~20 s

The pass is evidence that the previous wording passed on that build, and says nothing about the steps now displayed. Handle it by comparing the two texts: keep the result where only wording changed, re-execute where an expected result, a step or the data changed.

open as a page

In a test management tool that offers a soft delete for test cases, what actually happens when you delete a case, and what does the restore window let you do?

level: juniorimportance: should knowfreq 50%

basics

~20 s

A soft delete marks the case removed and hides it, but keeps the stored record for a limited window. Restoring inside that window returns the case with its identifier and history; after it, a cleanup removes the record permanently.

open as a page

A case subtree has been cloned once per release, and one release's copy gets a corrected step. How does that correction reach the other releases' copies?

level: middleimportance: should knowfreq 58%

basics

~20 s

Someone carries it by hand. A cloned case is an independent record with no link back to its source, so the repository propagates nothing. You find the sibling copies yourself and re-apply the edit to each one you still support.

open as a page

When a test management tool records which revision of a case an execution ran against, what does that pinned revision let you answer later, and what does it not fix?

level: middleimportance: should knowfreq 56%

basics

~20 s

A pinned revision binds one result to one identified version of the case text, so the wording a tester actually read can be rendered beside the outcome. It records the drift; it does not prevent it, and it does not judge whether the verdict survived the edit.

open as a page

Months after a test case was hard-deleted from a managed case repository, what do the executions and inbound references that still name it actually show, and why was the damage invisible on the day?

level: seniorimportance: should knowfreq 54%

basics

~20 s

Old executions either vanished with the case or survive naming an identifier that no longer resolves, so a run shows a bare number or a stale title. Nothing errors on the day: the removal succeeds and nobody is reading.

open as a page

Your case repository holds a cloned copy of the same suite for each of three supported releases, and after a year they have drifted apart. How do you stop them becoming three unrelated suites?

level: seniorimportance: should knowfreq 50%

basics

~20 s

Name one copy the source of truth, stamp a shared lineage value so siblings are findable, and make applying a correction to every supported release part of the fix routine. Then audit differences on a schedule and classify each.

open as a page

Your test cases live as issues inside the issue tracker, managed by a Jira-resident tool such as Xray or Zephyr. Why can the question who changed this case's steps, and when, be hard to answer?

level: seniorimportance: should knowfreq 48%

basics

~20 s

Two journals exist, not one. The tracker records changes to the issue's own fields, while the test tool keeps structured test data in its own storage with its own trail, retention and read permissions — so a step edit may be invisible in the tracker's history.

open as a page

How would you set a retention policy for archived test cases and their execution evidence in a managed case repository, so the tree stays navigable without discarding what a past release was signed off against?

level: principalimportance: should knowfreq 46%

basics

~20 s

Tier retention by what the record proves: archived cases stay while the releases they evidence are supported, executions live as long as their release, and the tree hides rather than destroys. Enforce the rule in the tool, not by hand.

open as a page

You support several release lines from one case repository. Would you clone the case tree per release, or keep one definition marked with the releases it applies to?

level: principalimportance: should knowfreq 44%

basics

~20 s

Copy only what genuinely differs. One definition marked with its applicable releases keeps a single fix site and one continuous history; clone a subtree only where behaviour really diverges, and expect permanent hand-carry for every copy.

open as a page

Your case repository's open cycles follow live edits, and testers keep asking whether a recorded pass still refers to the steps they ran. How would you decide whether to move to snapshot-at-cycle-creation?

level: principalimportance: should knowfreq 42%

basics

~20 s

Measure the overlap first: how often cases are edited while a cycle using them is open, and how long cycles stay open. If the overlap is rare, buy provenance instead - record the revision each result ran against. Switch models only when drift is routine and costly.

open as a page

Some case repositories copy a case's steps into a cycle but resolve its title, folder and links live. What surprises does that mixed model produce?

level: middleimportance: nice to knowfreq 38%

basics

~20 s

One item can disagree with itself: frozen steps under a title, folder or link that followed the master. Reports group and label by the live half while testers executed the copied half, and a referenced attachment can change even though the steps around it did not.

open as a page

A case subtree was cloned for a release a year ago and the repository kept no ancestry - how do you work out which copies correspond to which originals?

level: seniorimportance: nice to knowfreq 34%

basics

~20 s

Reconstruct it from evidence: a stamped lineage key if one exists, then step text, then title, then the creation batch. Reconstruction is lossy and decays with time, which is why the key belongs on the copy at clone time.

open as a page

A case's change trail is the only record of what a test case said when an old result was recorded. How do you decide how much of that trail your team needs, and how do you keep it readable?

level: principalimportance: nice to knowfreq 40%

basics

~20 s

Start from how long a recorded result must stay explainable, then check what the product actually keeps — in hosted tools the horizon is often fixed, not a setting. Readability is the bigger lever: keep mechanical churn out of versioned fields.

open as a page