测试基准说明
出典: 程序分类及测试基准.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 34,VSAM文件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 |
正常 |
分割数=1(50分割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 |
正常 |
INSERT(1件追加) |
新規レコード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 |
正常 |
INDEXED(KSDS)キー指定READ |
主キーで特定レコードREAD |
◎ |
| FO-N003 |
正常 |
KSDS START命令 |
STARTでキー位置指定→READ |
◎ |
| FO-N004 |
正常 |
RELATIVE(RRDS)RRN指定 |
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 |
正常 |
内联PERFORM(END-PERFORM) |
COBOL85内联循环 |
◎ |
| LP-N006 |
正常 |
嵌套PERFORM(3层) |
内层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同时READ(DISP=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 |