Vineet Kumar profile picture

Vineet Kumar

+1 437-428-2199   |   contactkrvineet@gmail.com
Reference Methodology · Companion to the Migration Case Study

Legacy System Migration — End-to-End Test Plan

How I would plan, run and govern testing for a legacy source-to-target migration — scope through go/no-go, with migration validation (profiling, record counts, field-level reconciliation) sitting inside the broader programme.

Scope label. This is a proposed reference methodology, not a claim that I executed every one of these activities on the companion case-study project. The confirmed hands-on activities from that project are called out on the case study page. Everything else here is how I would set up migration quality end-to-end at Test Manager / QE Manager level.
Stakeholder View · 10 phases

End-to-end execution at a glance

What the team does, what evidence it produces, and how it decides whether to proceed. Deeper methodology for each phase is in Sections 01–16 below.

Phase What the team does Evidence / exit decision
1Assess Confirm scope, mappings, dependencies and risks. Approved scope & acceptance criteria
2Baseline Profile source data and capture expected counts and quality issues. Source baseline & profiling report
3Migrate Run the migration and capture logs, counts and rejected records. Migration execution report
4Reconcile Compare counts, business keys, field values, relationships and aggregates. Reconciliation report & exceptions
5Investigate & repair Find root causes; correct source data, mapping or migration logic through approved changes. Defect records & remediation evidence
6Rerun & retest Repeat affected checks and regression tests after corrections. Passing retest evidence or documented exceptions
7Recover Test restart, checkpoint, backup restoration and rollback / roll-forward where applicable. Recovery results & operational readiness
8Validate business flows Test critical workflows, integrations and downstream reports. Functional & integration results
9Decide Review remaining risks, acceptance criteria and sign-offs. Go / no-go recommendation
10Verify after cutover Reconcile production data and monitor downstream processing. Post-migration validation & issue closure
Repair & Rerun Loop

What happens when validation finds a discrepancy

This loop is what makes a migration plan practical rather than a generic testing checklist. Every reconciliation failure runs through investigate → approved correction → rerun → reconcile again, with a logged outcome at the end.

STEP 1 Run validation Counts · Keys · Fields · Aggregates STEP 2 Investigate Source · Mapping · Transform · Batch STEP 3 Apply approved correction Fix root cause & rerun STEP 4 Reconcile again Pass · log outcome or escalate exception If still failing → investigate again REPAIR & RERUN LOOP · APPLIES TO EVERY DISCREPANCY SURFACED BY RECONCILIATION
Keep recovery and rollback as a separate branch. The loop above is for data defects found by validation. Recovery & rollback testing (Phase 7 in the table) is a different workstream — it tests whether the migration itself can be safely resumed, restarted or reversed when something at the system level fails. See Section 09 and Section 14 below.
01

Migration scope, assumptions, dependencies & impact assessment

What's in, what's out, what we depend on

Open the plan with a signed-off scope statement — in-scope entities, out-of-scope exclusions, named assumptions (data freeze window, source read-access, mapping ownership) and the dependencies the migration validation workstream cannot deliver without. The impact assessment names every downstream consumer that will see the target data and the regression effort each one implies.

Purpose

Make the boundary explicit so no team argues scope mid-cutover.

Activities
  • In-scope entities inventory
  • Out-of-scope list, with rationale
  • Assumptions log, versioned
  • Dependency map to source/ETL/target owners
  • Downstream-impact catalogue
Evidence / deliverables
  • Signed scope statement
  • Assumptions register
  • RACI for dependencies
02

Risk assessment & requirements traceability

Rank the risks, trace the requirements

Score each in-scope entity for likelihood and business impact (data volume, mapping complexity, criticality, history of source-side quality issues). Trace each business requirement, mapping rule and data-contract item to the validation test(s) that will cover it. The traceability matrix becomes the "did we test what we promised" evidence at exit.

Purpose

Point validation effort at the highest-risk areas and prove coverage.

Activities
  • Entity-level risk score (impact × likelihood)
  • Mapping-rule inventory
  • Requirement → test traceability matrix
Evidence / deliverables
  • Risk-ranked scope
  • Traceability matrix
  • Gap list & mitigation plan
03

Test objectives & acceptance criteria

What "done" looks like, in writing

State the test objectives first, then the measurable acceptance criteria. Separate technical acceptance (counts reconcile, zero orphan rows, zero duplicate business keys, defined tolerance for known transformations) from business acceptance (sign-off from each business-domain owner against sampled records).

Purpose

Remove ambiguity from the sign-off conversation.

Activities
  • Define per-entity acceptance criteria
  • Define tolerance bands & approved exceptions
  • Separate technical from business sign-off
Evidence / deliverables
  • Acceptance-criteria document
  • Approved-tolerance register
04

Test phases & schedule

Phased plan with gates

Phase the plan so each stage produces evidence the next depends on. The diagram below shows a typical six-phase shape: Discovery and scope lock → Design and traceability → Source baseline (profiling) → Rehearsal and reconciliation cycles → Cutover and verification → Hypercare.

PHASE 1 Discovery Scope lock Risk assess. PHASE 2 Design Traceability Test design PHASE 3 Source baseline Profiling Data-quality log PHASE 4 Rehearsal cycles Record counts Field recon. PHASE 5 Cutover Dress rehearsal Go/No-go PHASE 6 Hypercare Post-cutover Verification GATE TYPICAL PHASING — [Confirm: durations per phase] Validation (profiling, record counts, field reconciliation) concentrates in Phases 3–4; carries through Phase 5 as verification evidence.
05

Data profiling & source baseline

Know the source before you compare the target

Profile the source first. Record completeness, cardinality, distributions, nulls, duplicates and known data-quality issues against the mapping. The baseline becomes the frame of reference for every subsequent reconciliation and prevents the "we found bugs after cutover that were in the source all along" conversation.

Purpose

Establish ground truth before migration begins.

Activities
  • Per-entity completeness & cardinality
  • Null, duplicate, out-of-range inventories
  • Mapping validation against observed data
Evidence / deliverables
  • Profiling report per entity
  • Pre-existing quality log with carry-forward decisions
06

Record-count & field-level reconciliation

The core of migration validation

At each rehearsal cycle: compare row counts at the agreed grain, then field-level reconcile matched rows against the mapping. Count matches alone are not acceptance evidence; every mismatch (and every agreed delta) is logged with a reason. A field-level diff with zero rows against the agreed tolerance is the strongest evidence this plan produces.

Purpose

Prove the right rows arrived, with the right values.

Activities
  • Record-count reconciliation per entity
  • Field-level diff on matched business keys
  • Agreed-exception register per cycle
Evidence / deliverables
  • Count-reconciliation report per cycle
  • Field-level diff reports
  • Exception log with disposition
07

Referential-integrity & business-rule validation

Beyond individual rows

Row-level correctness is necessary but not sufficient. Check that parent-child relationships survived, that lookup codes still resolve, and that domain rules (balances tie out, dates sequence correctly, enumerations stay within the allowed set) still hold on the target side.

Purpose

Catch "rows are right, data is wrong" bugs.

Activities
  • Orphan / dangling-reference probes
  • Lookup-domain resolution tests
  • Business-rule invariants (balances, sequences, enums)
Evidence / deliverables
  • Referential-integrity report
  • Business-rule compliance log
08

Functional, integration, regression & downstream validation

End-to-end with the target in the loop

Once the target data holds, exercise it through the systems that consume it. Functional tests against the applications; integration tests against the inbound/outbound interfaces; regression tests against any downstream job that reads from the migrated store; sampled reports and operational workflows reviewed with business owners.

Purpose

Prove the target data works in the real flows.

Activities
  • Functional smoke & targeted regression
  • Interface / integration tests
  • Downstream job verification
  • Report / dashboard reconciliation vs source baseline
Evidence / deliverables
  • Functional & regression results
  • Interface sign-off per partner
  • Downstream reconciliation log
09

Performance, security, resilience & recovery

Where applicable

Scope these to the migration's actual risk profile. A target platform that will serve the same load as the source doesn't need a new load-test campaign; a replatform does. Security review covers access control on the new store and any new data pathways. Resilience and recovery exercises prove the cutover is reversible.

Purpose

Make sure the new environment is fit for the workload.

Activities
  • Performance baseline on target (where relevant)
  • Access-control & data-handling review
  • Backup / restore / rollback drill
  • Resilience tests on critical paths
Evidence / deliverables
  • Perf test report with SLA mapping
  • Security sign-off
  • Rollback drill log
10

Test data, environment & access requirements

Infrastructure for the validation workstream

Document the datasets, environments, credentials and read-permissions the validation team needs. A production-like non-prod environment with a representative source snapshot is table-stakes; the plan names when it must be available, who refreshes it, and how PII is handled.

Purpose

Remove “we couldn't test because we didn't have access” as an excuse.

Activities
  • Environment plan with refresh cadence
  • Test-data strategy (sampling, masking, synthesis)
  • Access-request matrix per team member
Evidence / deliverables
  • Env plan signed by DevOps/DBA
  • Data strategy approved by security
11

Resource & responsibility model

Who does what, who signs
RoleResponsibilityDeliverable they sign
Test Manager / QE LeadPlan, risk, acceptance evidence, release readiness reportGo/no-go recommendation
Validation SDETSQL profiling, reconciliation queries, exception logReconciliation report per cycle
Migration EngineerETL authoring, mapping implementation, cutoverETL run log, mapping change notes
Business OwnerScope sign-off, acceptance of sampled recordsBusiness acceptance sign-off
DBA / PlatformEnvironments, backup/restore, accessEnv & access sign-off
Release / Change MgmtCutover window, communications, rollback triggerCutover plan approval
12

Example SQL validation queries

Illustrative — not from any specific project

Representative query shapes the validation SDET would run. Schema and table names are fictional.

Row-count reconciliation with filters
SELECT  'customers' AS entity,
        (SELECT COUNT(*) FROM src_customers
            WHERE status IN ('ACTIVE','DORMANT')) AS src_cnt,
        (SELECT COUNT(*) FROM tgt_customer)      AS tgt_cnt;
Field-level diff on matched business keys
SELECT  s.customer_id,
        s.email       AS src_email, t.email       AS tgt_email,
        s.updated_at  AS src_updated, t.updated_at AS tgt_updated
FROM    src_customers s
JOIN    tgt_customer  t ON s.customer_id = t.customer_id
WHERE   COALESCE(s.email, '') <> COALESCE(t.email, '')
   OR   COALESCE(s.updated_at, '1900-01-01') <>
       COALESCE(t.updated_at, '1900-01-01');
Referential-integrity probe (orphans)
SELECT  o.order_id, o.customer_id
FROM    tgt_order o
LEFT   JOIN tgt_customer c ON o.customer_id = c.customer_id
WHERE   c.customer_id IS NULL;
Business-rule invariant (balance tie-out)
-- Sum of account balances by product line should match source control report
SELECT  product_line, SUM(current_balance) AS tgt_total
FROM    tgt_account
GROUP BY product_line
ORDER BY product_line;
Duplicate business-key detection
SELECT  customer_id, COUNT(*) AS occurrences
FROM    tgt_customer
GROUP BY customer_id
HAVING  COUNT(*) > 1;
13

Defect management & reconciliation reporting

Make the exceptions legible to management

Classify every exception the moment it is logged: mapping defect, transform defect, source data-quality issue (pre-existing), ETL implementation bug, test data issue, approved exception. Report trend lines on each class per rehearsal cycle so leadership sees whether the migration is converging or diverging.

Purpose

Convert raw query results into a decision-grade signal.

Activities
  • Exception classification
  • Per-cycle trend reporting
  • Defect burn-down vs cutover gate
Evidence / deliverables
  • Weekly reconciliation report
  • Defect scorecard by class and severity
14

Migration rehearsal, cutover, rollback & post-migration verification

The cutover weekend

Rehearse the full cutover more than once in a production-like environment. Define the rollback trigger before the real cutover window begins — specific thresholds on reconciliation failures, duplicate keys, orphan rows or performance SLA breaches. Post-cutover verification runs a defined subset of the reconciliation suite against the live target.

Purpose

Make cutover a practiced operation, not a leap of faith.

Activities
  • Rehearsal cycles (count & cadence [Confirm])
  • Rollback trigger definition
  • Cutover-weekend reconciliation subset
  • Post-cutover verification plan
Evidence / deliverables
  • Rehearsal results log
  • Rollback decision tree (signed)
  • Post-cutover sign-off report
15

Entry criteria, exit criteria & go/no-go decisions

Written, measurable, signed

Entry criteria (before each cycle)

  • Scope and mapping signed off for the entities in this cycle
  • Source baseline / profiling complete for in-scope entities
  • Target environment refreshed and accessible
  • Previous cycle’s exceptions triaged or formally accepted
  • Test data, credentials and run plan ready

Exit criteria (before go-live)

  • Zero open P1 defects; P2 defects within agreed aging threshold
  • Record counts reconcile within approved tolerance
  • Field-level diff clean against approved exceptions
  • Referential integrity & business-rule invariants pass
  • Downstream reports reconcile vs source baseline
  • Rollback drill executed successfully in the last rehearsal
  • Business and technical sign-offs filed by named owners

Go/no-go is a Release Board decision, taken against the above exit criteria plus the latest risk assessment. The validation workstream brings evidence; the board brings authority.

16

Management reporting & risk escalation

What leadership sees, and when

Keep the leadership view small and consistent across cycles. One page per week: RAG for the overall migration, reconciliation trend lines (counts, field-level, exceptions), top three risks with owners and ETAs, and the decisions needed this week. Escalate anything that threatens the go-live date the moment it crosses the agreed threshold — waiting until the next status meeting erodes options.

Purpose

Give leadership a decision-grade view of migration quality.

Activities
  • Weekly one-page RAG report
  • Reconciliation trend lines
  • Risk register with owners & ETAs
  • Decisions-needed list, time-bound
Evidence / deliverables
  • Weekly steering pack
  • Risk-escalation log
  • Release-readiness report at exit