Files

31 KiB
Raw Permalink Blame History

测试基准说明

出典: 程序分类及测试基准.pdf (第2部:测试基准)

凡例

記号 意味
必須テスト
推奨テスト

2.1 通用测试基准

2.1.1 正常系通用(8项)

编号 项目 内容 优先级
COM-N001 最小数据(1条) 各输入文件1条
COM-N002 标准数据(多条) 正常业务量
COM-N003 最大数据(上限) 定义上限(含性能)
COM-N004 全部输出文件存在 期望输出文件全部生成
COM-N005 输出文件内容确认 与期望值完全一致
COM-N006 输出记录长度确认 与规格一致
COM-N007 输出排序确认 键序正确
COM-N008 JOBLOG确认 日期/件数/结束码

2.1.2 异常系通用(8项)

编号 项目 内容 期望结果 优先级
COM-A001 文件不存在 不存在文件 OPEN STATUS 35 ABEND
COM-A002 全部0件 所有输入为空 正常结束 输出0条
COM-A003 部分0件 部分文件为空 正常结束
COM-A004 记录长度不一致 LRECL不匹配 ABEND/STATUS错误
COM-A005 磁盘满 容量不足 顺序文件STATUS 34VSAM文件STATUS 24
COM-A006 OPEN模式违反 只读文件WRITE STATUS 37
COM-A007 再OPEN OPEN中再OPEN STATUS 41
COM-A008 异常结束码 Uxxxx确认 与期望一致

2.1.3 确认项通用(8项)

编号 确认项 确认内容 确认方法
COM-C001 程序开始 程序名/日時/版本 JOBLOG
COM-C002 OPEN确认 各文件OPEN正常 JOBLOG
COM-C003 输入件数 READ件数 JOBLOG/CSV
COM-C004 输出件数 WRITE件数 JOBLOG/CSV
COM-C005 正常结束 RETURN-CODE=0 JOBLOG
COM-C006 异常结束 错误码输出 JOBLOG
COM-C007 处理时间 作业经过时间 JOBLOG时刻
COM-C008 SYSOUT 报表输出确认 SYSOUT文件

2.2 类型别测试基准

匹配基础测试(1:1 / 1:N / N:1

编号 区分 项目 内容 优先级
MT-N001 正常 1:1 主键完全匹配 双方各N件,全部匹配成功
MT-N002 正常 1:N 主1件从N件 主件1件对应从件N件
MT-N003 正常 N:1 从1件主N件 从件1件对应主件N件
MT-N004 正常 主件有剩余键 从件读完,主件剩余→WRITE W03
MT-N005 正常 从件有剩余键 主件读完,从件剩余→WRITE W02
MT-N006 异常 主键值重复 主件内同键出现2次
MT-N007 异常 键值未排序 升序前提被违反→误匹配
MT-R001 确认 匹配件数合计 正常/剩余件数之和与输入一致

匹配系不平衡测试

编号 项目 内容 优先级
MT-N009 R01=1条 R02=N条 1:N 极端不平衡
MT-N010 R01=N条 R02=1条 N:1 极端不平衡
MT-N011 R01=100万条 R02=0条 极大量仅存测试
MT-N012 R01全部匹配 R02全部匹配 完美匹配(实务中很少见)

条件分支系测试(IF / EVALUATE

编号 区分 项目 内容 优先级
B-N001 正常 IF 2路分支(ELSE IF条件成立/不成立各处理
B-N002 正常 IF 3路分支(ELSE IF ELSE IF 链式分支
B-N003 正常 IF 复合条件 AND/OR 多个条件组合
B-N004 正常 IF 88-level 条件名 88条件直接判断
B-N005 正常 IF 嵌套3层 内部IF引用外部IF变量
B-N006 正常 EVALUATE WHEN 多值 多个WHEN分支
B-N007 正常 EVALUATE ALSO 多条件组合判断
B-N008 正常 EVALUATE TRUE/FALSE 条件表达式判定
B-N009 正常 EVALUATE WHEN OTHER 默认分支覆盖
B-N010 正常 CONTINUE / NEXT SENTENCE 空分支处理
B-A001 异常 IF 未闭合(缺少END-IF 编译错误,非运行时测试(属代码审查范畴)
B-A002 异常 EVALUATE 无WHEN OTHER 全不匹配→无操作
B-R001 确认 COBOL 85 条件表达式 关系运算符全部覆盖

内部表检索测试(SEARCH / SEARCH ALL

编号 区分 项目 内容 优先级
T-N001 正常 SEARCH ALL 等值查找(找到) KEY等于目标存在
T-N002 正常 SEARCH ALL 等值查找(未找到) KEY等于目标不存在
T-N003 正常 SEARCH ALL 多键查找 主键+副键组合
T-N004 正常 SEARCH 顺序查找 KEY条件不唯一用SEARCH
T-N005 正常 OCCURS 1件表 表只有1条时检索
T-N006 正常 OCCURS DEPENDING ON 可变长表边界检索
T-N007 正常 INDEXED BY 索引操作 SET/SEARCH ALL 使用 INDEX
T-A001 异常 SEARCH ALL 未排序表 二进制查找未排序→误命中
T-A002 异常 INDEX 越界 OCCURS范围外访问
T-A003 异常 OCCURS DEPENDING ON = 0 空表检索
T-R001 确认 SEARCH ALL 后INDEX位置 找到后INDEX指向正确位置

子程序调用测试(CALL / LINKAGE

编号 区分 项目 内容 优先级
C-N001 正常 CALL 字面量名 CALL 'SUBPGM' USING ...
C-N002 正常 CALL USING 参数传递 CALL侧+LINKAGE侧参数对应
C-N003 正常 CALL 变量名(动态CALL CALL WS-PGM-NAME USING ...
C-N004 正常 CALL + RETURN-CODE RETURN-CODE设置和检查
C-N005 正常 CALL + EXIT PROGRAM 子程序正常返回
C-N006 正常 CALL + GOBACK GOBACK返回(含RETURN-CODE
C-N007 正常 IS INITIAL 指定程序 每次CALL时WS初始化确认
C-N008 正常 非IS INITIAL 程序 CALL跨调用WS值保持
C-N009 正常 CALL 多层嵌套(A→B→C 3层CALL传递参数
C-A001 异常 CALL 不存在的程序 未加载→ABEND
C-A002 异常 CALL USING 参数长度不匹配 CALL侧与LINKAGE侧长度不同
C-A003 异常 CALL CANCEL 后再CALL CANCEL→INITIAL状态
C-A004 异常 CALL 递归调用自身 需RECURSIVE编译选项(实务罕见),无RECURSIVE→ABEND
C-R001 确认 CALL 前STOP RUN CALL前正常结束
C-R002 确认 CALL 后RETURN-CODE检查 子程序的返回码正确传递

SYSIN读取测试

编号 区分 项目 内容 优先级
SY-N001 正常 SYSIN正常参数读取 标准参数卡片→正确解析
SY-N002 正常 SYSIN多卡连续读取 多张参数卡片全部正确读取
SY-N003 正常 SYSIN结束处理 SYSIN读到文件尾后正常继续
SY-A001 异常 SYSIN参数格式错误 非法参数→错误处理/ABEND
SY-A002 异常 SYSIN空(0件) 无参数卡片→默认值处理
SY-A003 异常 SYSIN文件不存在 OPEN STATUS 35
SY-R001 确认 参数解析结果 确认解析后的参数值与预期一致

分割系测试(50分割 / 25分割 / 100分割)

编号 区分 项目 内容 优先级
S-N001 正常 50分割(正好50件) 1件ずつ50ファイル出力
S-N002 正常 50分割(51件→余1件) 余数文件处理
S-N003 正常 50分割(49件→1件不足) 最终文件不满
S-N004 正常 25分割(25件→正好) 整数倍
S-N005 正常 100分割(100件→正好) 整数倍
S-N006 正常 分割数=150分割1件) 1件入力→1ファイルのみ出力
S-N007 正常 分割数>记录数(50分割3件) 出力ファイル仅少数
S-A001 异常 分割文件OPEN失败 途中文件OPEN STATUS 35
S-A002 异常 分割文件磁盘满 途中文件WRITE STATUS 34
S-R001 确认 分割文件命名规则 规则通りのファイル名确认
S-R002 确认 各文件件数合计=入力件数 总件数一致确认

key切测试(汇总 / 聚合 / 非汇总)

编号 区分 项目 内容 优先级
KB-N001 正常 汇总型(ADD累加) 同键多件→金额合计正确
KB-N002 正常 聚合型(件数/最大值等) 同键多件→件数/最大/最小正确
KB-N003 正常 非汇总型(键变化做标记) 键切换时仅变化检测,无累加
KB-N004 正常 单键组(全部同键) 全体1个键值→1次中断
KB-N005 正常 多键组(N个不同键) 键值变化N-1次→N组输出
KB-N006 正常 单条记录单键组 1件1组→自身就是汇总值
KB-A001 异常 前键值字段未初始化 WS-PREV-KEY初始空格→首次误中断
KB-A002 异常 累加器溢出 金额超PIC定义→SIZE ERROR
KB-R001 确认 各组小计=合计 各组累加值之和与全局合计一致

SORT 类型测试

编号 区分 项目 内容 优先级
SR-N001 正常 SORT USING/GIVING(升序) 简单升序排序
SR-N002 正常 SORT DESCENDING 降序
SR-N003 正常 多键SORT 第1键+第2键
SR-N004 正常 重复键顺序维持 稳定排序确认
SR-N005 正常 0条SORT 空文件
SR-N006 正常 1条SORT 1件
SR-N007 正常 INPUT PROCEDURE 排序前筛选
SR-N008 正常 OUTPUT PROCEDURE 排序后汇总
SR-N009 正常 INPUT PROCEDURE(编辑) 排序前字段编辑
SR-N010 正常 OUTPUT PROCEDURE(报表) 排序后报表
SR-A001 异常 SORT区不足 超大量 → RC=20
SR-A002 异常 INPUT内未RELEASE 数据丢失
SR-A003 异常 OUTPUT内未RETURN 死循环
SR-R001 确认 RC=0 正常结束
SR-R002 确认 RC=16 SORT语法错误
SR-R003 确认 RC=20 工作区不足

MERGE 类型测试

编号 区分 项目 内容 优先级
MR-N001 正常 2文件MERGE 两个已排序文件合并
MR-N002 正常 3文件MERGE 三个
MR-N003 正常 重复键MERGE 同键顺序
MR-A001 异常 输入未排序文件 未排序→误合并

校验测试(含重复 / 不含重复 / 半角)

编号 区分 项目 内容 优先级
VF-N001 正常 字段校验通过 输入值在允许范围内→正常输出
VF-N002 正常 字段校验拒绝 输入值异常→错误输出文件
VF-N003 正常 重复检测(正常) 首次出现该键→通过
VF-N004 正常 重复检测(重复) 同一键第二次出现→错误输出
VF-N005 正常 半角长度20桁 半角20桁以内→通过
VF-N006 正常 半角长度4桁 半角4桁以内→通过
VF-A001 异常 半角超长(21桁) 半角21桁→截断/错误
VF-A002 异常 全角混入 半角字段全角文字进入PIC X(半角)域
VF-R001 确认 错误件数计数 正常件+错误件=输入件数

编辑输出测试

编号 区分 项目 内容 优先级
ED-N001 正常 WRITE AFTER ADVANCING 改页/改行的编辑输出
ED-N002 正常 编辑字段(PIC Z,9,* ゼロサプレス/編集文字
ED-N003 正常 HEADING/FOOTING输出 报表头尾正确
ED-N004 正常 明细行连续输出 N条明细行正确排序
ED-N005 正常 改页(AFTER PAGE 改页时HEADING重复
ED-A001 异常 编辑字段长度不足 数值超PIC编辑域→*溢出
ED-A002 异常 改页中改行 AFTER PAGE + AFTER n 组合
ED-R001 确认 输出行数确认 HEADING+明细+FOOTING合计

CSV→FB转换测试(无换行 / 有换行)

编号 区分 项目 内容 优先级
CF-N001 正常 无换行(STRING合并) 複数項目を1レコードに連結
CF-N002 正常 有换行(改行展开) 1行入力→複数行出力(改行位置)
CF-N003 正常 項目内カンマ引用符付き カンマ区切り
CF-N004 正常 引用符付き文字列 "..."内のカンマ/改行を保持
CF-N005 正常 空項目連続カンマ→空文字列処理
CF-N006 正常 全項目最大長 各項目がPIC定義ギリギリ
CF-A001 异常 改行位置がRECORD長超過 改行展開後1行が定義長超え
CF-A002 异常 引用符未閉じ 閉じ"がない→残り全部1項目

ASCII→EBCDIC编码转换测试

编号 区分 项目 内容 优先级
AE-N001 正常 ASCII→EBCDIC 全文字 印字可能文字全种正确转换
AE-N002 正常 EBCDIC→ASCII 全文字 逆方向一致确认
AE-N003 正常 制御文字保持 改行/タブ等制御文字保持
AE-A001 异常 変換表にない文字 未定義文字→替代文字/エラー
AE-A002 异常 往復一致性(ラウンドトリップ) ASCII→EBCDIC→ASCII 一致
AE-A003 异常 全角/半角混在の変換 全角文字がPIC X領域で化ける
AE-R001 确认 変換後レコード長 変換前後でレコード長一致

online/CICS测试

编号 区分 项目 内容 优先级
OL-N001 正常 DFHCOMMAREA受信 CALL側渡したデータを正しく受信
OL-N002 正常 MAP入出力 MAPの送受信(SEND/RECEIVE MAP
OL-N003 正常 画面入力→DB検索 画面入力値をキーにDB検索→結果表示
OL-N004 正常 複数画面遷移 画面A→B→Cのデータ引継ぎ
OL-A001 异常 DFHCOMMAREA長不一致 CALL側と受信側の長さが異なる
OL-A002 异常 トランザクションABEND 異常発生時のROLLBACK確認
OL-A003 异常 MAP未定義項目参照 MAPにない項目へのアクセス
OL-R001 确认 応答時間 オンライン処理の応答時間測定

DB操作/检索/SELECT条件测试

编号 区分 项目 内容 优先级
DB-N001 正常 SELECT 1件 WHERE条件で1件取得
DB-N002 正常 SELECT 複数件 条件に合う全件FETCH
DB-N003 正常 INSERT1件追加) 新規レコードINSERT→SELECT確認
DB-N004 正常 UPDATE(更新) 条件に合うレコード更新
DB-N005 正常 DELETE(削除) 条件に合うレコード削除
DB-N006 正常 SELECT 0件 条件に合うレコードなし
DB-A001 异常 キー重複INSERT 一意キー違反→SQLCODEエラー
DB-A002 异常 存在しないテーブル SELECT FROM 存在しない表
DB-A003 异常 NULL値処理 NULL項目のMOVE/FETCH
DB-R001 确认 SQLCODE確認 各SQL実行後のSQLCODE確認

高级匹配测试(二级 / M:N组合 / 混合)

编号 区分 项目 内容 优先级
AM-N001 正常 二级1:1→1:1 第一段匹配后→中间ファイル→第二段匹配
AM-N002 正常 二级N:1→N:1 两段均为N:1匹配
AM-N003 正常 M:N→M条(主件对应) 组合匹配输出M件
AM-N004 正常 M:N→N条(从件对应) 组合匹配输出N件
AM-N005 正常 M:N→M×N条(笛卡尔积) 组合匹配输出全组合
AM-N006 正常 1:N+同key切(混合) 匹配分支内有同键值key切
AM-N007 正常 1:N+异key切(混合) 匹配分支内有异键值key切
AM-N008 正常 二级M:N→M:N 第一段M:N匹配→中间文件→第二段M:N匹配
AM-A001 异常 中间文件OPEN失败 第二段匹配时中间文件STATUS 35
AM-A002 异常 二级匹配键不一致 第一段与第二段的键字段不同
AM-R001 确认 各段匹配件数 第一段/第二段各自输出件数确认

文件编成测试

编号 区分 项目 内容 优先级
FO-N001 正常 SEQUENTIAL順次読書 先頭→最終まで全件正常READ
FO-N002 正常 INDEXEDKSDS)キー指定READ 主キーで特定レコードREAD
FO-N003 正常 KSDS START命令 STARTでキー位置指定→READ
FO-N004 正常 RELATIVERRDSRRN指定 RELATIVE KEYで番号指定READ
FO-N005 正常 LINE SEQUENTIAL読書 改行区切りテキストファイルREAD
FO-A001 异常 VSAM OPEN STATUS 95 ファイル状態不一致
FO-A002 异常 KSDSキー重複WRITE 既存キーでWRITE→STATUS 22
FO-A003 异常 RRDS範囲外 RRN定義済みRRN範囲外アクセス
FO-A004 异常 ファイル編成不一致OPEN 順次プログラムでVSAMをOPEN
FO-R001 确认 FILE STATUS確認 各I/O後のSTATUS値確認

2.3 横跨功能测试基准

2.3.1 可变长入出力

编号 区分 项目 内容 优先级
VL-N001 正常 RECORD IS VARYING(可变长记录) 定义可变长记录,正常读写
VL-N002 正常 OCCURS DEPENDING ON(可变长表) ODO表正常读写,DEPENDING值变化
VL-N003 正常 LINE SEQUENTIAL 文件读写 行可変长文件(LF结尾)一行ずつREAD
VL-N004 正常 固定长→可变长转换 固定长记录WRITE到可变长文件
VL-N005 正常 可变长→固定长转换 可变长记录READ到固定长记录域
VL-N006 正常 RECORD VARYING FROM 1 TO 99 最小~最大件数之间的任意长度
VL-A001 异常 ODO最大值超限 OCCURS DEPENDING ON超定义值
VL-A002 异常 可变长记录截断 WRITE时记录长度超文件定义
VL-A003 异常 LINE SEQUENTIAL 改行缺失 文件末尾无LF
VL-A004 异常 可变长文件STATUS 47 记录长度与文件定义不一致
VL-R001 确认 RECORD LENGTH 确认 WRITE后文件LRECL与定义一致
VL-R002 确认 ODO表件数确认 DEPENDING ON值与实际件数一致

2.3.2 循环处理

编号 区分 项目 内容 优先级
LP-N001 正常 PERFORM VARYING(计数循环) VARYING I FROM 1 BY 1 UNTIL I > N
LP-N002 正常 PERFORM UNTIL(条件循环) 条件达到后退出
LP-N003 正常 PERFORM TIMES(固定次数) N回执行
LP-N004 正常 PERFORM THRU(段落跨入) THRU指定多个段落
LP-N005 正常 内联PERFORMEND-PERFORM COBOL85内联循环
LP-N006 正常 嵌套PERFORM3层) 内层PERFORM完整执行后外层继续
LP-N007 正常 EXIT PERFORM / EXIT PERFORM CYCLE 中途退出/跳过本次循环
LP-A001 异常 PERFORM VARYING 0回 初始值已超终值→0回执行
LP-A002 异常 无限循环(条件永不满足) UNTIL条件永不成立→超时
LP-A003 异常 PERFORM嵌套越界 内层PERFORM THRU跨入外层段落
LP-A004 异常 EXIT SECTION/GOBACK误用 循环内意外退出程序
LP-R001 确认 循环回数确认 实际执行回数与期望一致

2.3.3 数值精度

编号 区分 项目 内容 优先级
NP-N001 正常 COMP-3小数位对齐 PIC S9(7)V99与S9(9)V9的ADD对齐
NP-N002 正常 ROUNDED选项 计算结果四舍五入到指定小数位
NP-N003 正常 ON SIZE ERROR 结果超过PIC定义域时触发
NP-N004 正常 除算余数(REMAINDER DIVIDE...REMAINDER
NP-N005 正常 COMP(二进制)符号处理 S9(4) COMP的符号位正确
NP-N006 正常 COMPUTE中间精度 中间结果精度确保最终结果正确
NP-N007 正常 符号付/符号なし混算 S9(5)与9(5)的ADD/SUBTRACT
NP-A001 异常 超过PIC定义域(无SIZE ERROR 高位截断→数据错误
NP-A002 异常 COMP-3符号误判 符号ニブル('C'/'D')不一致
NP-A003 异常 除算0除 DIVIDE BY ZERO→ABEND
NP-A004 异常 COMP赋值溢出 超范围的数值MOVE到COMP字段
NP-R001 确认 演算结果精度一致 同一演算反复执行→结果一致
NP-R002 确认 小数点位置一致 编辑字段(PIC Z,9等)十进制位正确

2.3.4 日文文字处理

2.3.4.1 PIC N 全角字段

编号 区分 项目 内容 优先级
J-N001 正常 PIC N全角转记 全角英数/汉字正确存储
J-N002 正常 PIC N比较(等值) 同全角字符串→EQUAL
J-N003 正常 PIC N比较(异值) 异→NOT EQUAL
J-N004 正常 PIC N→PIC X转记 全角→半角域(防乱码)
J-N005 正常 PIC N DISPLAY-1 I/O确认

2.3.4.2 半角假名

编号 区分 项目 内容 优先级
J-K001 正常 半角假名转记 アイウエオ正确转记
J-K002 正常 半角假名比较 アイウエオ比较
J-K003 正常 半角假名排序 排序顺序确认
J-K004 异常 全角/半角混用 混用数据处理
J-K005 异常 半角假名排序顺序差异 EBCDIC顺序 vs SJIS顺序 vs 五十音顺序

2.3.4.3 外字(厂商别)

编号 区分 项目 内容 优先级
J-G001 正常 JEF外字(日立) JEF外字领域读写
J-G002 正常 KEIS外字(富士通) KEIS外字领域
J-G003 正常 IBM外字 IBM扩展文字
J-G004 异常 外字转换(SJIS→EBCDIC 厂商间外字差异
J-G005 异常 未定义外字 未定义→替代文字
J-G006 异常 中文汉字与日文外字冲突 中日混在环境

2.3.4.4 Shift-JIS 5C/7C

编号 区分 项目 内容 优先级
J-D001 正常 第2字节5C 「ソ」「噂」「能」
J-D002 正常 第2字节7C 「本」「問」
J-D003 正常 5C/7C字符串长度 字节长度≠字符数
J-D004 异常 5C/7C误转换 误转成\或|

2.3.4.5 编码转换

编号 区分 项目 内容 优先级
J-X001 正常 EBCDIC→SJIS转换 全字符正确
J-X002 正常 SJIS→UTF-8转换 UTF8转换
J-X003 正常 3段转换一致性 往返对比
J-X004 异常 不可转换字符 替代字符/错误
J-X005 异常 全角半角转换精度 全角数字→半角数字等业务数据
J-X006 正常 CODEPAGE指定转换(IBM-930→SJIS CODEPAGE经由的文字转换
J-X007 异常 CODEPAGE未定义文字 转换表中不存在的文字→替代文字
J-X008 异常 ASCII→EBCDIC映射误差 UNISYS等ASCII系主机

2.3.4.6 全角空格/编辑

编号 区分 项目 内容 优先级
J-S001 正常 全角空格TRIM TRIM对全角空格
J-S002 正常 全角空格INSPECT INSPECT计数
J-S003 异常 含全角空格比较 "ABC" vs "A BC"

2.3.5 日期处理

2.3.5.1 西历日期

编号 区分 项目 内容 优先级
D-N001 正常 通常日期(YYYYMMDD 正常日期处理
D-N002 正常 闰年判定 2000/2004/2100年
D-N003 正常 月末日 1月31日/2月28日/2月29日
D-N004 正常 日期计算(±日) FUNCTION INTEGER-OF-DATE
D-N005 正常 日期比较 日期前后比较
D-A001 异常 日期逻辑异常 2月30日/4月31日
D-A002 异常 西历/和历混在 YYYYMMDD与RYYMMDD混用
D-A003 异常 2桁年(YYMMDD 2000年区分问题(YYMMDD不能区分2000/1900
D-A004 异常 闰年边界 2000/02/28→29→03/01

2.3.5.2 和历(元号)处理

编号 区分 项目 内容 优先级
D-W001 正常 令和→西历 R010501 = 2019/05/01
D-W002 正常 平成→西历 H010108 = 1989/01/08
D-W003 正常 昭和→西历 S611231 = 1986/12/31
D-W004 正常 大正→西历 T011231 = 1912/12/31
D-W005 正常 明治→西历 M450129 = 1912/01/29
D-W006 正常 元号边界(令和初日) 平成年末日→令和初日 2019/04/30→05/01
D-W007 正常 元号边界(平成年初日) 昭和的末日→平成年初日 1989/01/07→01/08
D-W008 异常 不存在的和历日期 R元年度(R元年)扱い

2.3.5.3 日期格式转换

编号 区分 项目 内容 优先级
D-F001 正常 YYYYMMDD→YYMMDD 4桁→2桁
D-F002 正常 YYYYMMDD→和历 西历→RYYMMDD
D-F003 正常 和历→西历 RYYMMDD→YYYYMMDD
D-F004 异常 日期编辑文字 元号混じりの編集出力

2.3.6 RERUN / RESTART 测试

编号 区分 项目 内容 优先级
RR-N001 正常 同一数据再执行 幂等性确认(不重复更新)
RR-A001 异常 输出文件未删除 再执行STATUS 95
RR-A002 异常 中间ABEND→RESTART 中间状态重新开始
RR-A003 异常 ABEND时输出文件状态 中途废弃/部分输出

2.3.7 排他/竞争测试

编号 区分 项目 内容 优先级
EX-N001 正常 同时READ 多个JOB同时READDISP=SHR),正常读取,不报STATUS 47
EX-A001 异常 同时WRITE冲突 STATUS 48
EX-A002 异常 DISP=SHR违反 STATUS 95
EX-A003 异常 OPEN中他JOB DELETE STATUS 95/97

2.3.8 性能/容量测试

编号 区分 项目 内容 优先级
PV-N001 正常 10万件处理 批量处理性能
PV-N002 正常 SORT 100万件 SORT RC确认
PV-N003 正常 VSAM大量READ CI/CA分割性能
PV-A001 异常 SORT领域不足 RC=20

2.4 测试用例详细清单(部分代表性用例)

SORT 用例

编号 目标类型 测试名 输入 期望结果
TC-N035 SORT SORT USING/GIVING 10件升序 升序排序确认
TC-N036 SORT SORT INPUT PROCEDURE 10件→筛选5件 筛选后仅5件排序
TC-N037 SORT SORT OUTPUT PROCEDURE 10件→汇总 汇总值正确
TC-A041 SORT SORT区不足 100万件 RC=20
TC-A042 SORT INPUT未RELEASE 数据不RELEASE 数据丢失

MERGE 用例

编号 目标类型 测试名 输入 期望结果
TC-N044 MERGE MERGE 2文件合并 2个排序后文件 正确合并输出
TC-N045 MERGE MERGE 重复键 同键2件来自不同文件 同键顺序保持
TC-A048 MERGE 输入未排序 MERGE未排序文件 误合并结果

分支/内部表/CALL/分割 用例

编号 目标类型 测试名 输入 期望结果
TC-N046 IF分支 IF 2路分支 IF条件成立/不成立 各自处理正确
TC-N047 IF分支 IF 88-level条件名 88条件直接判断 正确分支
TC-N048 EVALUATE EVALUATE多值 多个WHEN覆盖 正确分支
TC-N049 EVALUATE EVALUATE WHEN OTHER 未匹配→OTHER 默认处理
TC-N050 内部表 SEARCH ALL等值查找(找到) KEY等于目标存在 找到→INDEX定位
TC-N051 内部表 SEARCH ALL等值查找(未找到) KEY等于目标不存在 未找到→INDEX超限
TC-N052 CALL CALL USING参数传递 CALL 'SUBPGM' USING A B 参数正确传递
TC-N053 CALL IS INITIAL指定 CALL后WS值 每次初始状态
TC-N054 分割 50分割(正好50件) 50件输入 各1文件1件
TC-A049 IF分支 IF未闭合 缺少END-IF 语法错误编译错误
TC-A050 内部表 INDEX越界 OCCURS范围外访问 ABEND
TC-A051 CALL CALL不存在程序 CALL 'NOPGM' ABEND
TC-A052 编码转换 CODEPAGE未定义文字 转换表中不存在的文字 替代文字输出

日期处理 用例

编号 目标类型 测试名 输入 期望结果
TC-N038 日期 闰年判定 2000/02/29 正常处理
TC-N039 日期 非闰年判定 2100/02/29 错误
TC-N040 日期 和历转换(令和初日) 2019/05/01 → R010501 正确转换
TC-N041 日期 和历转换(平成年末日) 2019/04/30 → H310430 正确转换
TC-A043 日期 不存在的日期 2月30日 错误
TC-A044 日期 日期逻辑异常 4月31日 错误

SYSIN/高级匹配 用例

编号 目标类型 测试名 输入 期望结果
TC-N055 SYSIN读取 SYSIN正常参数读取 标准参数卡5张 全部正确解析
TC-N056 二级M:N→M:N 二级M:N匹配 M:N第一段→中间文件→M:N第二段 正确匹配
TC-A053 SYSIN读取 SYSIN参数格式错误 非法参数 格式错误处理

不平衡/排他/RERUN 用例

编号 目标类型 测试名 输入 期望结果
TC-N042 匹配 1:N不平衡(1 vs 100万) R01=1 R02=100万 正常处理
TC-N043 匹配 N:1不平衡(100万 vs 1 R01=100万 R02=1 正常处理
TC-A045 排他 同时WRITE 2JOB同时WRITE同文件 STATUS 48
TC-A046 排他 再执行(文件未删除) 同一文件再WRITE STATUS 95
TC-A047 RESTART 中途ABEND→RESTART ABEND→再执行 正常RESTART