Source-derived document; review findings and open questions with the application owner.
Candidate Characterisation Tests
In this document
Scope and interpretation
The supplied evidence describes a partially reconstructed CardDemo environment containing COBOL, CICS, BMS, VSAM, DB2, IMS, MQ, JCL, REXX, and utilities. It establishes artifacts and stated intent, but not successful execution, complete topology, compiler semantics, sequencing, or production behaviour. These are therefore candidate characterisation tests, not evidence that the system is semantically complete or operational. E0001 E0010 E0017 E0020 E0021
Inference: The tests should first establish which artifacts can be built, deployed, connected, and executed together before attempting to validate business behaviour. Evidence conflicts about whether all artifacts participate in one executable system. E0002 E0003 E0005 E0006 E0018
Build, deployment, and topology tests
- Build reproducibility test: Run the supplied batch, online, DB2, and BMS compilation paths and record input sources, copybooks, generated maps, return codes, and produced load modules. Compare the disputed `NEWCOPY` behaviour in `CICCMP.jcl` with the explicit BMS build path. E0026 E0027
- Dependency and linkage test: For each candidate executable, identify referenced copybooks, maps, datasets, transactions, programs, and external services, then determine whether those dependencies exist in the same environment and version set. The evidence names such dependencies but does not establish compatibility or successful linkage. E0001 E0006 E0018 E0020 E0021 E0035 E0039
- Deployment-context test: Verify whether CARDDEMO is deployed in a CICS region and whether the named transactions, programs, maps, VSAM files, DB2 or IMS resources, and MQ flows are available there. Deployment is stated but unverified. E0018 E0038 E0039
Online transaction tests
- Authentication and routing test: Exercise `CC00` and record handling of valid, invalid, administrator, and non-administrator credentials, including the resulting `XCTL` destination and commarea contents. The supplied flow identifies administrator and non-administrator routing, while ownership, permissions, and enforcement remain unknown. E0028 E0034 E0036 E0038
- Account inquiry and maintenance test: Exercise account view and update paths, recording validation, displayed customer and account data, accepted changes, rejected changes, and persistence. `COACTVWC` and `COACTUPC` are associated with these functions, but runtime outcomes and complete rules are not established. E0001 E0002 E0017 E0022
- Payment and transaction test: Submit valid, duplicate, boundary, and invalid payment or transaction inputs, then compare account lookup, balance validation, confirmation, rejection handling, and writes to `TRANSACT` or `DALYREJS`. The evidence identifies these paths but leaves calculations, limits, and return-code semantics incomplete. E0029 E0007 E0008 E0011 E0013 E0017
Security and data-integrity tests
- User-record lifecycle test: Exercise add, update, view, and delete operations for `USRSEC`; verify read, write, rewrite, delete, duplicate handling, and failure behaviour. The component-level operations are identified, but authorization enforcement, audit, masking, and encryption are unknown. E0016 E0017 E0028 E0032 E0033 E0036
- Referential-integrity test: Attempt category deletion with referencing transaction types, duplicate identifiers, missing foreign keys, and concurrent updates. The stated `ON DELETE RESTRICT` rule and duplicate-key behaviour provide candidate assertions, but the complete schema and transaction boundaries are unresolved. E0011 E0010 E0017 E0045
- Representation test: Compare copybooks, VSAM records, DB2 or IMS definitions, imports, exports, timestamps, indexes, and the reported six-byte unload discrepancy. Encoding, offsets, naming, and layout agreement are not established. E0004 E0009 E0021 E0037 E0043 E0045
Batch, scheduling, and file tests
- Batch sequencing test: Trace the monthly flow from `WAITSTEP` to `OPENFIL`, administrative dispatch, posting, reporting, and completion, recording waits, dependencies, return codes, reruns, and abends. The trigger is stated, but full sequencing and restart behaviour are unknown. E0031 E0044 E0045
- Condition-code test: Execute representative JCL paths and record whether downstream steps run under the supplied conditions, especially disputed `COND=(4,LT)` semantics. The evidence does not resolve the intended interpretation. E0026 E0041
- VSAM processing test: Exercise loading, indexing, extraction, `REPRO`, concurrent update, end-of-file, duplicate-key, and critical-error paths. Confirm that `FILEIN` is read and `FILEOUT` is written, and compare program references with actual datasets. E0020 E0021 E0022 E0045 E0046
- Scheduling and submission test: Verify Control-M, internal-reader, TDQ, UNIX, FTP, and mainframe submission boundaries, including ownership, permissions, failure reporting, and rerun behaviour. These integrations are described but not operationally confirmed. E0025 E0026 E0039 E0042 E0044
Optional integrations and operational recovery
- DB2, IMS, and MQ isolation test: Run each optional integration independently, then test combined use, recording connectivity, transformations, commits, failures, and unavailable-service behaviour. The evidence identifies optional DB2 and IMS maintenance, IMS links, and MQ integration without establishing runtime compatibility or atomicity. E0004 E0010 E0039 E0047
- Recovery and backup test: Perform backup, generation, failure, rollback, restart, and restoration exercises and verify whether records, indexes, reports, and external effects remain consistent. Backup and GDG activity are described, but recovery guarantees, disaster recovery, and two-phase commit are disputed or unknown. E0015 E0039 E0044 E0045
- Observability test: Confirm what logs, reports, abend information, return codes, alerts, and audit records are produced for accepted, rejected, failed, and partially completed operations. Monitoring, alerting, and completion guarantees are not established. E0015 E0017 E0018 E0040 E0045
Limits of these tests
Unknown: The supplied evidence does not establish executable test results, complete business rules, production suitability, ownership, security effectiveness, topology, version alignment, or end-to-end semantic correctness. Characterisation should preserve contradictory observations rather than treating successful execution of one path as proof of system-wide completeness. E0009 E0011 E0014 E0017 E0020 E0021 E0036 E0039 E0047
Harten analysis of AWS Samples CardDemo, a public demonstration application. The retained source content matches AWS revision 59cc6c2fd7ebd7ef7925cad552a01a4b8b6e4d5e. The documents describe source analysis and a proposed modernisation plan, not an implemented migration. No AWS endorsement is implied.
Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. Apache 2.0 source licence · Amazon notice. Read the case study and source measurement.