COBOLSTACK.COM
//CS530  EXEC PGM=COURSE,PARM='CS530'

Modernization track · Core · self-paced ~20h with labs (3 days as a cohort) · prerequisite: CS100 (reads JCL output and a 3270 screen) and basic scripting in Java, Python or Node; the labs use Java and the sf CLI

Modernization Testing & Equivalence: Old and New Side by Side

Testing is 40–50% of every migration budget and the one activity the market cannot staff. Design and run an equivalence programme with the legacy side as an executable oracle: fixture capture with checksums and clock pinning, batch equivalence through record layouts, screen and API equivalence by BMS field, data reconciliation to the mainframe’s own control totals, declared-difference governance, parallel run and dual run, and an auditor-grade evidence pack. The legacy side is CardDemo running on SteelFrame; the "new" side is a provided Java build with five defects injected per student and two legitimate declared differences — you judge it. 36 short videos (about 4h30m).

Self-paced available Cohort

Open for enrollment now. The lesson videos for this course are in production — release order across the track: CS510 → CS520 → CS530 → CS521 → CS535 → CS500 → CS550 → CS525 → CS540 → CS545 — and every session below is published as its lessons and lab now and marked Coming soon until its videos are released. CS530 is third in the release order.

Plans: Free individual at no cost, or Paid individual at $349 per course, one-time — code review, extra exercises, grading and priority support.

//SYLLABUS DD DISP=SHR

Syllabus

Every session ends in a lab on your own environment. Labs are machine-checked against expected outputs — you and your L&D team always know exactly where you stand.

Why migrations fail on evidence

Coming soon The videos for this session are being produced; its lessons and lab are published here now.

Four videos. Testing at 40–50% and the Gartner finding as a verification failure, with the CardDemo chain in SDSF as what must be proven; the verdict vocabulary — identical, equivalent, different, missing — and the declared difference with an owner and an expiry, on a real verdict table from one run; the oracle problem and why an executable legacy side changes the economics, with run_capture and cics_run_script producing oracle output in seconds.

LAB Run the CardDemo chain on SteelFrame and the provided Java build on the same input and list every observable artefact on both sides — jobs, RCs, spool files, datasets, table states, screens, console.

Fixture capture

Coming soon The videos for this session are being produced; its lessons and lab are published here now.

Six videos. What to capture — inputs, state before, state after, outputs, console — as one envelope; run_capture and export_state with checksums, retrieved by get_run; clock pinning and the determinism checklist, with the masks that cover exactly what moves and the over-masking mistake; capturing from a licensed mainframe with the protocol a shop runs; which verdict for which style — zero-tolerance bytes, record/replay, rules-file, behaviour contract, continuous reconciliation — one scenario, five verdict tables.

LAB Gate 1: complete, deterministic fixture envelopes for POSTTRAN, INTCALC and TRANREPT under your userid, two runs equivalent; the 10-question verdict-mapping check.

Batch equivalence

Coming soon The videos for this session are being produced; its lessons and lab are published here now.

Five videos. File diff done right — through the copybook layout so a finding names a record and a field, keyed, masked by field; table diff — keys, ordering, NUMERIC scale, NULL vs spaces, SPUFI beside PostgreSQL; return codes, rejects and side files as first-class outputs in the inventory; the identical report that hid a different reject file — 37 instead of 38.

LAB Gate 2: find the seeded rounding defect in the interest step — the three affected accounts, the one-cent deltas, the field and the cause.

Screen and API equivalence

Coming soon The videos for this session are being produced; its lessons and lab are published here now.

Five videos. 3270 transcript capture with cics_run_script — fields by BMS name from bms_preview, attribute bytes; what must match between screens and REST/UI and what may be declared; COTRN02C’s validation ladder and message wording as a contract, twelve inputs twelve messages; one scenario file driving both sides.

LAB Gate 3: across forty scenarios, find the changed message text and the card-list paging off-by-one with transcripts — and do not flag the two declared differences.

Data reconciliation

Coming soon The videos for this session are being produced; its lessons and lab are published here now.

Five videos. The control totals the mainframe already computes — TRANREPT’s totals, TCATBALF, the CDTOTALS job — as the reconciliation spine; reconciliation queries with zero tolerance for a load and a documented decision for anything else, the 0.01 tolerance that hid gate 2’s defect; migration-load vs ongoing parallel-run reconciliation; suspense and the unexplained-difference register with owners.

LAB Gate 4: the date-edge defect that moved a posting across a business day — found by keyed per-day reconciliation against the SteelFrame after-image, the transaction and both days named.

Parallel run and governance

Coming soon The videos for this session are being produced; its lessons and lab are published here now.

Six videos. Parallel-run designs — shadow, dual-run with single output, replay — with two SteelFrame runs beside one Java run; divergence triage and the fix-the-drift loop; declared differences — the rules file, review, expiry — beside the USRSEC bytes and the report header they mask; the evidence pack an auditor and a regulator accept, capture ids resolved live; dual run and shadow traffic through the router’s second instance, and when it is worth the cost.

LAB Gate 5: seven simulated nights of parallel run with nightly reconciliation; the two injected drifts (a changed rate, a dropped reject) caught and nothing else; the register updated.

Capstone

Coming soon The videos for this session are being produced; its lessons and lab are published here now.

Five videos. The one-page test strategy for a wave written while looking at its jobs in SDSF; the suite in CI with sf compare exit codes (0 identical, 2 declared-only, 3 defect); the steering-committee report with its screenshots taken live; the capstone; the certificate.

LAB Capstone: a fresh injected build — five defects (rounding, dropped reject reason, date edge, paging off-by-one, message text) found with evidence, the two declared differences not flagged, the evidence pack complete; the 25-question check (80%).

//SKILLS  DD DSN=AFTER.THIS.COURSE

After this course, you can

//CERT    DD DSN=CS530.CERTIFICATE,DISP=(NEW,CATLG)

How the certificate is earned

CobolStack Certificate — Migration Verification (CS530) is issued from the lab harness’s own record of your runs — not from attendance. To earn it you must clear every gate below:

The certificate attests that you can design and run the verification half of a migration — fixtures, equivalence, reconciliation, parallel run and governance — with recall and false-positive rate measured against seeded defects, and produce the evidence a regulator accepts.

The environment

Your seat is a private, full z/OS-compatible environment with the AWS CardDemo estate and the oracle tools (run_capture, export_state, cics_run_script, get_run), the sf CLI and the course equiv runner; a provided Java build of CardDemo with defects injected per student in the browser — nothing to install, snapshot and reset per exercise. By the end of the course the lab harness will have verified: five lab gates — a complete deterministic fixture set for three batch jobs, the seeded rounding defect found by account and field, the dropped validation message and the paging defect found across forty screen scenarios with zero false positives, the date-edge defect found by keyed per-day reconciliation, two drifts caught in a week of simulated parallel run — the verdict-mapping check, and the capstone: five defects found with evidence while the two declared differences are correctly not flagged.