Migration

The Migration tab is for two scenarios:

  1. Bringing manual test cases in from another platform (TestRail, Zephyr, Xray, qTest, plain CSV)
  2. Marking manual cases as automated when their automated counterpart starts showing up in runs

Both flows share the same Migration tab inbox.

1. Importing manual cases

From Project → Migration → Import:

  1. Pick a source: TestRail · Zephyr Scale · Xray · qTest · CSV
  2. Authenticate (or upload the CSV file)
  3. Select the source suites / folders to bring in
  4. Map columns — Kaizen needs at minimum: name, steps[], expected. Optional: severity, owner, labels, linked_jira
  5. Preview the diff (new vs already-known) and click Import

Imported cases land in the Test Cases tab marked with a manual badge. They don't have a stable Kensho ID yet — that gets assigned when an automated counterpart starts flowing in.

2. Linking manual to automated

When Kensho runs start arriving, the Migration tab inbox surfaces:

  • Manual cases whose name (after normalization) matches the fullName of an automated case
  • Confidence score: exact match · normalized match · fuzzy match
  • Side-by-side preview: manual steps vs automated steps

For each match you can:

  • Link — collapse the two cases into one. The case keeps its history (manual notes + automated runs both attach to it). Stable Kensho ID becomes the canonical ID
  • Reject — they're different tests despite the name; keep them separate
  • Manual still relevant — link them but keep the manual workflow active alongside the automation (useful when manual covers UX subjective judgment, automation covers regression)

Auto-link rules

Configure under Settings → Migration:

  • exact — only link on exact normalized name match
  • fuzzy ≥ 0.9 — link automatically at 90%+ similarity
  • prompt — never link automatically; always show in the inbox

Default is prompt so nothing surprising happens to your case inventory.

CSV format

name,steps,expected,severity,owner,labels,linked_jira
"Login: happy path","1. Open /login\n2. Enter creds\n3. Submit","Lands on /dashboard",critical,mchen,smoke;auth,ACME-101
"Login: locked account","1. Open /login\n2. Enter creds for locked user\n3. Submit","Sees 'Account locked' error",normal,mchen,auth,ACME-208
  • Steps are newline-separated; we'll split + render as a numbered list
  • Labels are semicolon-separated
  • linked_jira (and friends) attaches an external defect

Caveats

  • Migration is additive — we never delete existing cases on import
  • Once a manual case is linked to an automated one, manual edits flow to the merged case; the automated steps stay as-is (can't edit code from the platform)
  • Bulk re-link: Migration → Bulk Tools → Re-run matcher if you change normalization rules