Open methodology / Strust v1
Differential verification,COBOL to Java.
Strust v1 describes running a COBOL reference and Java candidate under an explicit test contract, comparing their observable behavior, and retaining evidence needed to challenge the verdict.
- Workload and source revisions
- Runtime settings and fixtures
- Observations and comparison policy
The question
Did the candidate preserve the behavior that matters?
Compilation success and source similarity cannot answer that question. A migration can still change a rounding boundary, fixed-width field, collation order, error path, output artifact, or persistent side effect.
The method fixes the workload, source revisions, runtime settings, fixtures, adapters, normalization policy, comparator, resource limits, and observation scope before executing either system. It returns MATCH, DIVERGE, or INCONCLUSIVE instead of forcing every run into a misleading pass/fail result.
- Inputs
- Same declared workload
- Observations
- Only contract-relevant behavior
- Output
- Reviewable evidence, not a score alone
Evidence boundary
What the current evidence does and does not show.
The declared ledger can be inspected, but the original execution artifacts are unavailable. This is not an independently reproduced benchmark run.
Supported by the paper
- The verification contract is specified.
- The declared ledger arithmetic can be checked.
- Verdicts preserve an inconclusive state.
Not established by the paper
- The original executions cannot be independently replayed.
- The historical artifacts are not available for audit.
- The ledger is not a current product benchmark.
Have a software change Strust should verify?
Tell us what you are changing and what behavior must stay the same.