黑盒数据做成合并
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
# 1:N+キーブレイク(異キー) データ生成規則
|
||||
|
||||
## 概要
|
||||
|
||||
1:Nマッチングの処理中に、マッチしたグループ内でキーが異なるタイミング(異キーブレイク)を検知して処理を分岐する混合型プログラムのテストデータ。
|
||||
|
||||
本规则定义4组数据,覆盖基本异key切、多组/单件组、異常系、件数確認。
|
||||
|
||||
## 输入
|
||||
|
||||
- 詳細設計書のキー項目一覧(マッチキー、ブレイクキー)
|
||||
- 各入力ファイルのCOPYBOOKフィールド定義
|
||||
- キー条件:マッチキー・ブレイクキーとも昇順ソート済み
|
||||
|
||||
## 生成データ組
|
||||
|
||||
| 组 | 用途 | 内容 |
|
||||
|----|------|------|
|
||||
| 1 | 基本异key切(AM-N007) | 1:Nマッチ内でブレイクキーが変わるグループを複数含むデータ |
|
||||
| 2 | 多组/单件组 | グループ数が複数、1件のみのグループを含むデータ |
|
||||
| 3 | 異常系(KB-A001/KB-A002) | 前ブレイクキー未初期化、累加器/カウンタ溢出 |
|
||||
| 4 | 件数確認(AM-R001/KB-R001) | マッチ件数とグループ数の整合確認データ |
|
||||
|
||||
### 组1:基本异key切(AM-N007)
|
||||
|
||||
マッチキー a001 に対し R02 が3件(ブレイクキー b001,b002,b003)。1:Nマッチしながらブレイクキーが変わるたびに処理が分岐することを確認。
|
||||
|
||||
### 组2:多组/单件组
|
||||
|
||||
マッチキー a001(3件)・a002(1件)・a003(2件)。複数グループと単件グループの両方を含むデータ。
|
||||
|
||||
### 组3:異常系(KB-A001/KB-A002)
|
||||
|
||||
- 先頭レコードのブレイクキーが通常値(WS-PREV-KEY未初期化時の誤中断確認)
|
||||
- 集約対象(件数・合計)がPIC定義を超えるデータ(SIZE ERROR確認)
|
||||
|
||||
### 组4:件数確認(AM-R001/KB-R001)
|
||||
|
||||
マッチ件数(正常+剩余)の合計が入力件数と一致し、グループ数=キー変化回数+1 となるデータ。
|
||||
|
||||
## 多keyテスト
|
||||
|
||||
マッチキーまたはブレイクキーが複数項目の場合、各組末尾に多keyテストを追加(既存マッチング規則と同じ手順)。
|
||||
|
||||
## データ生成手順
|
||||
|
||||
1. マッチキー・ブレイクキーの特定
|
||||
2. 组1/组2: 正常系データ
|
||||
3. 组3: 異常系データ
|
||||
4. 各組末尾に多keyテスト
|
||||
5. 生成後自检:マッチ件数合計とグループ数の整合確認
|
||||
|
||||
## 出力
|
||||
|
||||
每组输出1个JSON文件:`{プログラムID}_g{groupId}.json`
|
||||
|
||||
组数约束:输出组数必须与本规则定义的4组一致(g1〜g4),组号连续从1开始。禁止添加本规则未定义的组,禁止缺组。
|
||||
@@ -0,0 +1,34 @@
|
||||
# 100分割 データ生成規則
|
||||
|
||||
## 概要
|
||||
|
||||
入力ファイルのレコードを100件ずつ分割し、複数の出力ファイルに振り分けるプログラムのテストデータ。
|
||||
|
||||
本规则定义5组数据,覆盖分割数的边界场景(整数倍、余数、不足、最小、分割数>记录数)。
|
||||
|
||||
## 输入
|
||||
|
||||
- 入力ファイルのCOPYBOOKフィールド定義
|
||||
|
||||
## 生成データ組
|
||||
|
||||
| 组 | 用途 | 记录数 | 说明 |
|
||||
|----|------|--------|------|
|
||||
| 1 | 正好100件 | 100 | 1ファイルに100件|
|
||||
| 2 | 超过100件(余1件) | 101 | 100件ファイル+余1件ファイル|
|
||||
| 3 | 不足100件 | 99 | 最終ファイルが99件|
|
||||
| 4 | 分割数=1 | 1 | 1件入力→1ファイルのみ出力 |
|
||||
| 5 | 分割数>记录数 | 3 | 出力ファイルは少数 |
|
||||
|
||||
## データ生成手順
|
||||
|
||||
1. 入力ファイルのフィールド定義を取得
|
||||
2. 各組の记录数に従いレコードを生成
|
||||
3. 各フィールドはPIC定義に従い実在しそうな値を生成し、隣接レコード間で同じ項目に異なる値を設定
|
||||
4. 生成後自检(S-R001/S-R002):出力ファイル命名规则通りであること、各ファイル件数の合計=入力件数であることを確認
|
||||
|
||||
## 出力
|
||||
|
||||
每组输出1个JSON文件:`{プログラムID}_g{groupId}.json`
|
||||
|
||||
组数约束:输出组数必须与本规则定义的5组一致(g1〜g5),组号连续从1开始。禁止添加本规则未定义的组,禁止缺组。
|
||||
@@ -0,0 +1,34 @@
|
||||
# 25分割 データ生成規則
|
||||
|
||||
## 概要
|
||||
|
||||
入力ファイルのレコードを25件ずつ分割し、複数の出力ファイルに振り分けるプログラムのテストデータ。
|
||||
|
||||
本规则定义5组数据,覆盖分割数的边界场景(整数倍、余数、不足、最小、分割数>记录数)。
|
||||
|
||||
## 输入
|
||||
|
||||
- 入力ファイルのCOPYBOOKフィールド定義
|
||||
|
||||
## 生成データ組
|
||||
|
||||
| 组 | 用途 | 记录数 | 说明 |
|
||||
|----|------|--------|------|
|
||||
| 1 | 正好25件 | 25 | 1ファイルに25件 |
|
||||
| 2 | 超过25件(余1件) | 26 | 25件ファイル+余1件ファイル |
|
||||
| 3 | 不足25件 | 24 | 最終ファイルが24件 |
|
||||
| 4 | 分割数=1 | 1 | 1件入力→1ファイルのみ出力 |
|
||||
| 5 | 分割数>记录数 | 3 | 出力ファイルは少数 |
|
||||
|
||||
## データ生成手順
|
||||
|
||||
1. 入力ファイルのフィールド定義を取得
|
||||
2. 各組の记录数に従いレコードを生成
|
||||
3. 各フィールドはPIC定義に従い実在しそうな値を生成し、隣接レコード間で同じ項目に異なる値を設定
|
||||
4. 生成後自检(S-R001/S-R002):出力ファイル命名规则通りであること、各ファイル件数の合計=入力件数であることを確認
|
||||
|
||||
## 出力
|
||||
|
||||
每组输出1个JSON文件:`{プログラムID}_g{groupId}.json`
|
||||
|
||||
组数约束:输出组数必须与本规则定义的5组一致(g1〜g5),组号连续从1开始。禁止添加本规则未定义的组,禁止缺组。
|
||||
@@ -0,0 +1,34 @@
|
||||
# 50分割 データ生成規則
|
||||
|
||||
## 概要
|
||||
|
||||
入力ファイルのレコードを50件ずつ分割し、複数の出力ファイルに振り分けるプログラムのテストデータ。
|
||||
|
||||
本规则定义5组数据,覆盖分割数的边界场景(正好、余数、不足、最小、分割数>记录数)。
|
||||
|
||||
## 输入
|
||||
|
||||
- 入力ファイルのCOPYBOOKフィールド定義
|
||||
|
||||
## 生成データ組
|
||||
|
||||
| 组 | 用途 | 记录数 | 说明 |
|
||||
|----|------|--------|------|
|
||||
| 1 | 正好50件 | 50 | 1ファイルに50件 |
|
||||
| 2 | 超过50件(余1件) | 51 | 50件ファイル+余1件ファイル |
|
||||
| 3 | 不足50件 | 49 | 最終ファイルが49件 |
|
||||
| 4 | 分割数=1 | 1 | 1件入力→1ファイルのみ出力 |
|
||||
| 5 | 分割数>记录数 | 3 | 出力ファイルは少数 |
|
||||
|
||||
## データ生成手順
|
||||
|
||||
1. 入力ファイルのフィールド定義を取得
|
||||
2. 各組の记录数に従いレコードを生成
|
||||
3. 各フィールドはPIC定義に従い実在しそうな値を生成し、隣接レコード間で同じ項目に異なる値を設定
|
||||
4. 生成後自检(S-R001/S-R002):出力ファイル命名规则通りであること、各ファイル件数の合計=入力件数であることを確認
|
||||
|
||||
## 出力
|
||||
|
||||
每组输出1个JSON文件:`{プログラムID}_g{groupId}.json`
|
||||
|
||||
组数约束:输出组数必须与本规则定义的5组一致(g1〜g5),组号连续从1开始。禁止添加本规则未定义的组,禁止缺组。
|
||||
@@ -0,0 +1,58 @@
|
||||
# ASCII→EBCDIC変換 データ生成規則
|
||||
|
||||
## 概要
|
||||
|
||||
ASCIIコードの入力データを変換表によりEBCDICコードに変換して出力するプログラムのテストデータ。
|
||||
|
||||
本规则定义5组数据,覆盖全文字変換、逆方向、制御文字、異常系、レコード長確認。
|
||||
|
||||
## 输入
|
||||
|
||||
- 詳細設計書の変換表定義(コード対応表)
|
||||
- 入力・出力レコード定義
|
||||
|
||||
## 生成データ組
|
||||
|
||||
| 组 | 用途 | 内容 |
|
||||
|----|------|------|
|
||||
| 1 | ASCII→EBCDIC 全文字(AE-N001) | 印字可能文字全種を含むデータ |
|
||||
| 2 | EBCDIC→ASCII 逆方向(AE-N002) | 逆変換の一致確認データ |
|
||||
| 3 | 制御文字保持(AE-N003) | 改行・タブ等の制御文字 |
|
||||
| 4 | 異常系(AE-A001〜AE-A003) | 変換表にない文字、往復不一致、全角/半角混在 |
|
||||
| 5 | レコード長確認(AE-R001) | 変換前後でレコード長が一致するデータ |
|
||||
|
||||
### 组1:ASCII→EBCDIC 全文字(AE-N001)
|
||||
|
||||
英大文字・英小文字・数字・記号など、印字可能文字全種を含むデータ。変換表の全エントリが正しく変換されることを確認。
|
||||
|
||||
### 组2:EBCDIC→ASCII 逆方向(AE-N002)
|
||||
|
||||
逆方向の変換データ。組1の変換結果を逆変換したときに元の値と一致することを確認。
|
||||
|
||||
### 组3:制御文字保持(AE-N003)
|
||||
|
||||
改行・タブなどの制御文字を含むデータ。変換後も制御文字が保持されることを確認。
|
||||
|
||||
### 组4:異常系(AE-A001〜AE-A003)
|
||||
|
||||
- 変換表にない文字(未定義コード)→ 代替文字またはエラー処理
|
||||
- 往復一致しない文字(ASCII→EBCDIC→ASCII で値が変わる)
|
||||
- 全角文字がPIC X領域に入った場合の文字化け
|
||||
|
||||
### 组5:レコード長確認(AE-R001)
|
||||
|
||||
変換前後のレコード長が一致することを確認するデータ(固定長前提)。
|
||||
|
||||
## データ生成手順
|
||||
|
||||
1. 変換表とレコード定義の特定
|
||||
2. 组1〜组3: 正常系データ
|
||||
3. 组4: 異常系データ
|
||||
4. 组5: レコード長確認データ
|
||||
5. 生成後自检(AE-R001):変換後レコード長=変換前レコード長
|
||||
|
||||
## 出力
|
||||
|
||||
每组输出1个JSON文件:`{プログラムID}_g{groupId}.json`
|
||||
|
||||
组数约束:输出组数必须与本规则定义的5组一致(g1〜g5),组号连续从1开始。禁止添加本规则未定义的组,禁止缺组。
|
||||
@@ -0,0 +1,58 @@
|
||||
# CSV→FB変換 データ生成規則
|
||||
|
||||
## 概要
|
||||
|
||||
CSV形式の入力ファイルを読み取り、固定長(FB)レコードに変換して出力するプログラムのテストデータ。
|
||||
CSVのカンマ区切り分解、引用符内改行処理、項目チェックを含む。改行なし(STRING合并、CF-N001)と改行あり(改行展開、CF-N002)の両方の変換方式に対応する。
|
||||
|
||||
本规则定义4组数据,覆盖正常、异常、引用符・改行、空項目・最大長。
|
||||
|
||||
## 输入
|
||||
|
||||
- 入力CSVの項目定義(処理詳細から特定)
|
||||
- 出力COPYBOOKのフィールド定義
|
||||
|
||||
## 生成データ組
|
||||
|
||||
| 组 | 用途 | 内容 |
|
||||
|----|------|------|
|
||||
| 1 | 正常データ | 全項目が正しいCSVレコード 3〜5件。異なる値のバリエーションを確保。改行なし変換(STRING合并、CF-N001)のケースを含む |
|
||||
| 2 | 異常データ | 項目数不足、項目数過剰、不正な値、改行位置がRECORD長超過(CF-A001)、引用符未閉じ(CF-A002)のレコード |
|
||||
| 3 | 引用符・改行(CF-N002〜N004) | 改行展開(1行入力→複数行出力)、項目内カンマ引用符付き、引用符内改行保持 |
|
||||
| 4 | 空項目・最大長(CF-N005/N006) | 連続カンマ→空文字列処理、各項目がPIC定義ギリギリの最大長 |
|
||||
|
||||
### 组1:正常データ
|
||||
|
||||
全項目が正しいCSVレコード。値をPIC定義に従い生成し、隣接レコード間で異なる値のバリエーションを確保。
|
||||
|
||||
### 组2:異常データ
|
||||
|
||||
- 項目数不足・項目数過剰
|
||||
- 不正な値(フォーマット違反)
|
||||
- 改行位置がRECORD長超過(CF-A001: 改行展開後1行が定義長を超える)
|
||||
- 引用符未閉じ(CF-A002: 閉じ"がない→残り全部1項目)
|
||||
|
||||
### 组3:引用符・改行(CF-N002〜N004)
|
||||
|
||||
- 有换行(改行展开): 1行入力→複数行出力(改行位置)
|
||||
- 項目内カンマ引用符付き(CF-N003)
|
||||
- 引用符付き文字列(CF-N004): "..."内のカンマ/改行を保持
|
||||
|
||||
### 组4:空項目・最大長(CF-N005/N006)
|
||||
|
||||
- 空項目連続カンマ→空文字列処理(CF-N005)
|
||||
- 全項目最大長(CF-N006): 各項目がPIC定義ギリギリ
|
||||
|
||||
## データ生成手順
|
||||
|
||||
1. CSVの項目数と項目名を処理詳細から特定
|
||||
2. 正常データ: カンマ区切りCSV行文字列を生成。値はPIC定義に従う
|
||||
3. 異常データ: 項目数不一致、空値、不正フォーマット、改行位置超過、引用符未閉じを含む
|
||||
4. 引用符・改行データ: 引用符内カンマ・改行、改行展開を含む
|
||||
5. 空項目・最大長データ: 連続カンマと各項目最大長を含む
|
||||
|
||||
## 出力
|
||||
|
||||
入力はCSV文字列(カンマ区切り)として1フィールドに格納。每组输出1个JSON文件:`{プログラムID}_g{groupId}.json`
|
||||
|
||||
组数约束:输出组数必须与本规则定义的4组一致(g1〜g4),组号连续从1开始。禁止添加本规则未定义的组,禁止缺组。
|
||||
@@ -0,0 +1,88 @@
|
||||
# DB更新 データ生成規則
|
||||
|
||||
## 概要
|
||||
|
||||
入力ファイルのレコードをDBテーブルにINSERT/UPDATE/DELETEするプログラムのテストデータを生成する。
|
||||
出力はSQL INSERTファイル。
|
||||
|
||||
本规则定义4组数据:组1正常INSERT、组2 INSERT+UPDATE、组3 DELETE対象(无DELETE则以UPDATE/INSERT代替)、组4重复INSERT异常(DB-A001)。
|
||||
|
||||
## 输入
|
||||
|
||||
- 詳細設計書の処理詳細(SQL操作と分岐条件)
|
||||
- 入力ファイルのCOPYBOOKフィールド定義
|
||||
- DBテーブル定義と主キー
|
||||
- キー項目一覧
|
||||
|
||||
## 生成データ組
|
||||
|
||||
| 组 | 用途 | 内容 | 条件 |
|
||||
|----|------|------|------|
|
||||
| 1 | 正常INSERT | 5件以上の新規INSERT + 末尾に多keyテスト | 必須 |
|
||||
| 2 | INSERT+UPDATE | 3件以上の重複主キーレコード(UPDATEトリガー用)+ 末尾に多keyテスト | 必須 |
|
||||
| 3 | DELETE対象 | 2件以上のDELETE対象レコード + 末尾に多keyテスト | 処理詳細にDELETE操作がある場合はDELETE対象、ない場合はUPDATE/INSERT対象で代替 |
|
||||
| 4 | 重复INSERT异常(DB-A001) | 既存主キーを再度INSERTするレコード(一意キー違反→SQLCODEエラー確認)+ 末尾に多keyテスト | 必須 |
|
||||
|
||||
## 多keyテスト(各組の末尾に追加)
|
||||
|
||||
キーが複数項目(例: A001, A002, A003)で構成される場合、以下のテストデータを追加する(キー項目が1つの場合は追加しない)。
|
||||
|
||||
**手順:**
|
||||
1. 該当グループ内から1件のレコードを選び、基準データとする
|
||||
2. キー項目がN個ある場合、N件の追加レコードを生成する
|
||||
3. 各追加レコードは「1つのキー項目のみ基準データと異なり、残りのキー項目は基準データと完全一致」とする
|
||||
4. 非キー項目(DATA部分)は基準データと同じ値でよい
|
||||
|
||||
**例: キーが (A001, A002, A003) の場合、基準データ (a001, b001, c001) に対し:**
|
||||
- 追加1: (a002, b001, c001) → A001のみ異なる → INSERTされるべき(別レコード)
|
||||
- 追加2: (a001, b002, c001) → A002のみ異なる → INSERTされるべき(別レコード)
|
||||
- 追加3: (a001, b001, c002) → A003のみ異なる → INSERTされるべき(別レコード)
|
||||
|
||||
これにより、プログラムが正しいキー項目で比較していることを検証する。
|
||||
|
||||
## データ生成手順
|
||||
|
||||
1. **SQL操作の特定**: 処理詳細からINSERT/UPDATE/DELETE/UPSERTの有無を確認する
|
||||
2. **キー項目の特定**: キー項目一覧からDBテーブルの主キーを特定する
|
||||
3. **フィールド値生成**: 入力COPYBOOKの各フィールドに対しPIC定義に従い値を生成:
|
||||
- PIC X(n): 左詰め・スペース埋め
|
||||
- PIC 9(n): 右詰め・先行ゼロ
|
||||
- PIC S9(n) COMP / COMP-3: 通常の10進数文字列(符号付き・なし)
|
||||
- DATE / 日付系フィールド: 実在しそうな日付(YYYYMMDD形式)
|
||||
- TIME / 時刻系フィールド: 実在しそうな時刻(HHMM形式)
|
||||
- ID / 番号系フィールド: 連番
|
||||
- NAME系フィールド: 実在しそうな氏名
|
||||
- 金額 / SALARY系: 現実的な金額
|
||||
4. **組1 (正常INSERT)**:
|
||||
- 全レコードの主キーを重複なしで生成
|
||||
- 各レコードの非キーフィールドは異なる値を設定
|
||||
- 末尾に多keyテストデータを追加
|
||||
5. **組2 (INSERT+UPDATE)**:
|
||||
- 一部のレコードの主キーを組1と重複させる
|
||||
- 重複レコードの非キーフィールド値は組1と異なる値にする
|
||||
- 末尾に多keyテストデータを追加
|
||||
6. **組3 (DELETE対象)**:
|
||||
- STATUS='9'などの削除フラグ付きデータ(処理詳細にDELETE操作がない場合はUPDATE/INSERT対象データで代替)
|
||||
- 末尾に多keyテストデータを追加
|
||||
7. **組4 (重复INSERT异常)**:
|
||||
- 組1で既に存在する主キーを再度INSERTするレコードを生成
|
||||
- 期待: 一意キー違反→SQLCODEエラー/設計書どおりのエラー処理
|
||||
- 末尾に多keyテストデータを追加
|
||||
|
||||
## 出力形式
|
||||
|
||||
各組1つのSQLファイル: `{プログラムID}_g{groupId}.sql`
|
||||
|
||||
```sql
|
||||
-- Group: 1
|
||||
-- 用途: 正常INSERT + 多keyテスト
|
||||
INSERT INTO TABLE_NAME (COL1, COL2, ...) VALUES
|
||||
('val1', 'val2', ...),
|
||||
('val3', 'val4', ...);
|
||||
```
|
||||
|
||||
**注意:**
|
||||
- 出力は純粋なSQL INSERT文のみ(コードブロックで囲まない)
|
||||
- 複数行を1つのINSERT文にまとめる(VALUESの後にカンマ区切りで複数行)
|
||||
|
||||
组数约束:输出组数必须与本规则定义的4组一致(g1〜g4),组号连续从1开始。禁止添加本规则未定义的组,禁止缺组。
|
||||
@@ -0,0 +1,28 @@
|
||||
# GETPUT(編集出力)データ生成規則
|
||||
|
||||
## 概要
|
||||
|
||||
DBまたはファイルからデータを読み取り、編集・整形して出力するプログラムのテストデータ。
|
||||
レイアウト編集のみ(GETPUT)と同様のシンプルなREAD→編集→WRITEパターン。
|
||||
|
||||
## 入力
|
||||
|
||||
- 入力ソースのフィールド定義(COPYBOOKまたはDBテーブル定義)
|
||||
- 出力レコード定義
|
||||
|
||||
## 生成データ組
|
||||
|
||||
| 组 | 用途 | 内容 |
|
||||
|----|------|------|
|
||||
| 1 | 基本データ | 通常値2〜5件。各フィールドに有効な値を設定。異なる値のバリエーションを確保 |
|
||||
|
||||
## データ生成手順
|
||||
|
||||
1. 入力フィールドを特定
|
||||
2. 各フィールドのPIC定義に従い値を生成
|
||||
3. 実在しそうな値(日付・時刻・金額・氏名等)を生成
|
||||
4. レコード間で異なる値を設定
|
||||
|
||||
## 出力
|
||||
|
||||
各組1 JSONファイル。DBからの入力の場合はSQLファイルも出力。
|
||||
@@ -0,0 +1,77 @@
|
||||
# MERGE(複数ファイル結合) データ生成規則
|
||||
|
||||
## 概要
|
||||
|
||||
複数の入力ファイルをキーでソート・マージし、統合された1つの出力ファイルを生成するプログラムのテストデータ。
|
||||
|
||||
本规则定义4组数据,覆盖全文件合并、键边界、重复键、未排序输入。
|
||||
|
||||
## 输入
|
||||
|
||||
- 詳細設計書のキー項目一覧(マージキー)
|
||||
- 各入力ファイルのCOPYBOOKフィールド定義
|
||||
- キー条件:正常系は昇順ソート済み入力、異常系(组4)は故意に乱序
|
||||
|
||||
## 生成データ組
|
||||
|
||||
| 组 | 用途 | 内容 |
|
||||
|----|------|------|
|
||||
| 1 | 全ファイルカバー | 全入力ファイルのデータが出力に反映されるデータ + 末尾多keyテスト |
|
||||
| 2 | キー境界 | 同一キー値が複数ファイルに分散しているケース + 末尾多keyテスト |
|
||||
| 3 | 重复键(MR-N003) | 同一キーが複数ファイルに同値で出現するケース(同キー順序保持確認)+ 末尾多keyテスト |
|
||||
| 4 | 未排序输入(MR-A001) | 入力ファイルが昇順でないデータ(誤マージ確認) |
|
||||
|
||||
### 组1:全ファイルカバー(MR-N001)
|
||||
|
||||
R01: a001→a003→a004
|
||||
R02: a001→a002→a003
|
||||
|
||||
マージ後キー順序(期待): a001→a002→a003→a004
|
||||
|
||||
### 组2:キー境界(MR-N002)
|
||||
|
||||
R01: a001→a002→a003
|
||||
R02: a002
|
||||
|
||||
同一キーa002が両ファイルに存在(境界でのマージ順序確認)。
|
||||
|
||||
### 组3:重复键(MR-N003)
|
||||
|
||||
R01: a001→a002→a002→a003
|
||||
R02: a002→a002→a004
|
||||
|
||||
同一キーa002が両ファイルに計4件(同キーの順序保持を確認)。
|
||||
|
||||
### 组4:未排序输入(MR-A001)
|
||||
|
||||
R01: a001→a003→a002→a004(a003先于a002,违反升序)
|
||||
R02: a001→a002→a003→a004(正常升序)
|
||||
|
||||
说明:昇順前提が破られた入力でプログラムの誤マージ/未期待動作を確認する(不要求"正确合并")。
|
||||
|
||||
## 多keyテスト
|
||||
|
||||
キーが複数項目の場合、各組末尾に追加。各キー項目のみ異なるN件を生成し、正しいキーでマージされることを検証。
|
||||
|
||||
需要注意当key为n个项目组合而成时,需要在各組末尾追加n条数据。以基准数据的所有key为准,只有当前第n个key与基准不一致。保证key的比较没有问题。
|
||||
|
||||
例(n=3,基准 (a001, b001, c001)):
|
||||
- 追加1: (a002, b001, c001) → 仅第1个key不同
|
||||
- 追加2: (a001, b002, c001) → 仅第2个key不同
|
||||
- 追加3: (a001, b001, c002) → 仅第3个key不同
|
||||
|
||||
n为实际解析出的key项目数(例中n=3仅为示意,追加条数必须等于实际key项目数)。键项目数n=1时不追加多key测试数据。追加的每条记录必须恰好只改变一个key项目,且不得与既有记录完全重复。
|
||||
|
||||
## データ生成手順
|
||||
|
||||
1. マージキー項目を特定(キー項目一覧から)
|
||||
2. 各組のキー構成に従いレコードを生成(键值升序,组4除外)
|
||||
3. 非キーフィールドはPIC定義に従い実在しそうな値を生成し、隣接レコード間で異なる値を設定
|
||||
4. 組1〜組3末尾に多keyテストデータを追加
|
||||
5. 生成後自检(MR-R001相当):マージ後件数 = 全入力ファイル件数の合計 を確認
|
||||
|
||||
## 出力
|
||||
|
||||
每组输出1个JSON文件:`{プログラムID}_g{groupId}.json`
|
||||
|
||||
组数约束:输出组数必须与本规则定义的4组一致(g1〜g4),组号连续从1开始。禁止添加本规则未定义的组,禁止缺组。
|
||||
@@ -0,0 +1,50 @@
|
||||
# SELECT処理 データ生成規則
|
||||
|
||||
## 概要
|
||||
|
||||
DBテーブルから条件付きSELECTでデータを取得し、取得結果に基づいて処理を行うプログラムのテストデータ。入力はDB(SELECT結果)であり、出力はSQL INSERTファイル。
|
||||
|
||||
本规则定义3组数据,覆盖基本匹配/非匹配、0件、NULL处理。
|
||||
|
||||
## 输入
|
||||
|
||||
- 詳細設計書の処理詳細(SELECT文のWHERE条件)
|
||||
- DBテーブル定義(テーブル名、カラム、主キー)
|
||||
|
||||
## 生成データ組
|
||||
|
||||
| 组 | 用途 | 内容 |
|
||||
|----|------|------|
|
||||
| 1 | 基本データ | SELECT条件にマッチするデータ + マッチしないデータ + 末尾多keyテスト |
|
||||
| 2 | SELECT 0件(DB-N006) | 条件に合うレコードが0件になるデータ + 末尾多keyテスト |
|
||||
| 3 | NULL処理(DB-A003) | NULL項目を含むデータ(MOVE/FETCH時のNULL扱い確認)+ 末尾多keyテスト |
|
||||
|
||||
## 多keyテスト
|
||||
|
||||
WHERE条件に複数キーが関わる場合、基準データに対し各キー項目のみ異なるN件を生成。マッチするパターンとマッチしないパターンの両方をカバー。
|
||||
|
||||
需要注意当key为n个项目组合而成时,需要追加n条数据。以基准数据的所有key为准,只有当前第n个key与基准不一致。保证key的比较没有问题。
|
||||
|
||||
例(n=3,基准 (a001, b001, c001)):
|
||||
- 追加1: (a002, b001, c001) → 仅第1个key不同
|
||||
- 追加2: (a001, b002, c001) → 仅第2个key不同
|
||||
- 追加3: (a001, b001, c002) → 仅第3个key不同
|
||||
|
||||
n为实际解析出的key项目数(例中n=3仅为示意,追加条数必须等于实际key项目数)。键项目数n=1时不追加多key测试数据。追加的每条记录必须恰好只改变一个key项目,且不得与既有记录完全重复。
|
||||
|
||||
## データ生成手順
|
||||
|
||||
1. SELECT文のWHERE条件を抽出
|
||||
2. 条件にマッチするレコードを生成(组1)
|
||||
3. 条件にマッチしないレコード(境界値)を生成(组1)
|
||||
4. 条件に合うレコードが存在しないデータを生成(组2)
|
||||
5. NULL項目を含むデータを生成(组3)
|
||||
6. 各組末尾に多keyテストデータを追加
|
||||
|
||||
注:存在しないテーブルへのSELECT(DB-A002)はSQL実行環境で確認する。
|
||||
|
||||
## 出力
|
||||
|
||||
每组1个SQL INSERT文件:`{プログラムID}_g{groupId}.sql`
|
||||
|
||||
组数约束:输出组数必须与本规则定义的3组一致(g1〜g3),组号连续从1开始。禁止添加本规则未定义的组,禁止缺组。
|
||||
@@ -0,0 +1,64 @@
|
||||
# SORT データ生成規則
|
||||
|
||||
## 概要
|
||||
|
||||
SORT文(USING/GIVING、INPUT PROCEDURE、OUTPUT PROCEDURE)によりデータを並べ替えるプログラムのテストデータ。
|
||||
|
||||
本规则定义6组数据,覆盖升序、降序/多键、重复键/0条/1条、INPUT PROCEDURE、OUTPUT PROCEDURE、異常系。
|
||||
|
||||
## 输入
|
||||
|
||||
- 詳細設計書の処理詳細(SORTキー、昇順/降順、PROCEDUREの有無)
|
||||
- 入出力ファイルのCOPYBOOKフィールド定義
|
||||
|
||||
## 生成データ組
|
||||
|
||||
| 组 | 用途 | 内容 |
|
||||
|----|------|------|
|
||||
| 1 | 简单升序(SR-N001) | SORT USING/GIVING 昇順、複数レコード |
|
||||
| 2 | 降序+多键(SR-N002/SR-N003) | DESCENDING指定、第1キー+第2キーの複合キー |
|
||||
| 3 | 重复键/边界(SR-N004〜SR-N006) | 同キー順序保持、0件、1件 |
|
||||
| 4 | INPUT PROCEDURE(SR-N007/SR-N009) | ソート前の選別・編集(RELEASE送出) |
|
||||
| 5 | OUTPUT PROCEDURE(SR-N008/SR-N010) | ソート後の集計・レポート(RETURN受取) |
|
||||
| 6 | 異常系(SR-A002/SR-A003) | INPUT内でRELEASE漏れ(データ消失)、OUTPUT内でRETURN漏れ(無限ループ) |
|
||||
|
||||
### 组1:简单升序(SR-N001)
|
||||
|
||||
キー: c003→a001→b002(任意順の入力)→ 昇順 a001→b002→c003 に並ぶデータ。
|
||||
|
||||
### 组2:降序+多键(SR-N002/SR-N003)
|
||||
|
||||
- 降順(DESCENDING)データ
|
||||
- 第1キー+第2キー(例: 部署コード昇順+社員番号昇順)の複合キーデータ
|
||||
|
||||
### 组3:重复键/边界(SR-N004〜SR-N006)
|
||||
|
||||
- 同一キーが複数件あるデータ(安定ソートで入力順が維持されること)
|
||||
- 0件のデータ(空ファイル)
|
||||
- 1件のデータ
|
||||
|
||||
### 组4:INPUT PROCEDURE(SR-N007/SR-N009)
|
||||
|
||||
ソート前に条件で選別するデータ(例: ステータス='1'のみRELEASE)。選別漏れがないことを確認。
|
||||
|
||||
### 组5:OUTPUT PROCEDURE(SR-N008/SR-N010)
|
||||
|
||||
ソート後にRETURNで受け取り集計・レポート出力するデータ。グループ集計が正しいことを確認。
|
||||
|
||||
### 组6:異常系(SR-A002/SR-A003)
|
||||
|
||||
- INPUT PROCEDURE内でRELEASE漏れが起きるケース(データ消失の検証)
|
||||
- OUTPUT PROCEDURE内でRETURN漏れが起きるケース(無限ループの検証)
|
||||
|
||||
## データ生成手順
|
||||
|
||||
1. SORTキー・昇降順・PROCEDURE有無の特定
|
||||
2. 组1〜组5: 正常系データ
|
||||
3. 组6: 異常系データ
|
||||
4. 生成後自检(SR-R001):RC=0で正常終了。RC=16/20は環境依存(SR-R002/R003)
|
||||
|
||||
## 出力
|
||||
|
||||
每组输出1个JSON文件:`{プログラムID}_g{groupId}.json`
|
||||
|
||||
组数约束:输出组数必须与本规则定义的6组一致(g1〜g6),组号连续从1开始。禁止添加本规则未定义的组,禁止缺组。
|
||||
@@ -0,0 +1,57 @@
|
||||
# SYSIN読込 データ生成規則
|
||||
|
||||
## 概要
|
||||
|
||||
JCLのSYSIN(制御カード)を読み込み、パラメータを解析して処理を分岐するプログラムのテストデータ。
|
||||
|
||||
本规则定义5组数据,覆盖正常参数、多卡连续、终了处理、異常系、解析結果確認。
|
||||
|
||||
## 输入
|
||||
|
||||
- 詳細設計書の処理詳細(SYSINカードのレイアウト、カード種別)
|
||||
- パラメータ項目定義
|
||||
|
||||
## 生成データ組
|
||||
|
||||
| 组 | 用途 | 内容 |
|
||||
|----|------|------|
|
||||
| 1 | 正常参数读取(SY-N001) | 標準パラメータカード→正しく解析 |
|
||||
| 2 | 多卡连续(SY-N002) | 複数カードを順次読み取り |
|
||||
| 3 | 终了处理(SY-N003) | SYSINを読み終えた後の正常継続 |
|
||||
| 4 | 異常系(SY-A001〜SY-A003) | フォーマット不正、0件(デフォルト処理)、OPEN失敗(環境テスト) |
|
||||
| 5 | 解析結果確認(SY-R001) | 解析後のパラメータ値が期待どおり |
|
||||
|
||||
### 组1:正常参数读取(SY-N001)
|
||||
|
||||
標準的なパラメータカード1枚のデータ(例: 'T' カード)。カード種別の識別とパラメータ解析が正しいことを確認。
|
||||
|
||||
### 组2:多卡连续(SY-N002)
|
||||
|
||||
複数カード(例: 'T' カード+'P' カード+'M' カード)を順次読み取るデータ。全カードが正しく処理されることを確認。
|
||||
|
||||
### 组3:终了处理(SY-N003)
|
||||
|
||||
SYSINを読み終えた(EOF)後に正常に後続処理へ進むデータ。ファイル終了時の処理漏れがないことを確認。
|
||||
|
||||
### 组4:異常系(SY-A001〜SY-A003)
|
||||
|
||||
- カードのフォーマット不正(項目数不足・不正値)→ エラー処理/ABEND
|
||||
- SYSIN 0件(カードなし)→ デフォルト値で処理
|
||||
- SYSINファイル不存在(OPEN STATUS 35)→ 環境テスト項目
|
||||
|
||||
### 组5:解析結果確認(SY-R001)
|
||||
|
||||
解析後のパラメータ値が期待どおりであることを確認するデータ(カード種別ごとの分岐結果を含む)。
|
||||
|
||||
## データ生成手順
|
||||
|
||||
1. カードレイアウト・カード種別の特定
|
||||
2. 组1〜组3: 正常系データ
|
||||
3. 组4: 異常系データ
|
||||
4. 组5: 解析結果の自检
|
||||
|
||||
## 出力
|
||||
|
||||
每组输出1个JSON文件:`{プログラムID}_g{groupId}.json`
|
||||
|
||||
组数约束:输出组数必须与本规则定义的5组一致(g1〜g5),组号连续从1开始。禁止添加本规则未定义的组,禁止缺组。
|
||||
@@ -0,0 +1,53 @@
|
||||
# オンラインPGM データ生成規則
|
||||
|
||||
## 概要
|
||||
|
||||
CICSオンライン(DFHCOMMAREA・MAP送受信)で画面入出力とDBアクセスを行うプログラムのテストデータ。
|
||||
|
||||
※ 現システム(バッチ中心)には該当プログラムがないため、将来のオンライン追加用に用意する。
|
||||
|
||||
本规则定义4组数据,覆盖COMMAREA受信、MAP入出力/画面遷移、異常系、応答確認。
|
||||
|
||||
## 输入
|
||||
|
||||
- 詳細設計書の処理詳細(DFHCOMMAREA項目、MAP名、画面遷移)
|
||||
- 連絡領域(COMMAREA)のレイアウト定義
|
||||
|
||||
## 生成データ組
|
||||
|
||||
| 组 | 用途 | 内容 |
|
||||
|----|------|------|
|
||||
| 1 | COMMAREA受信+MAP入出力(OL-N001/N002) | 渡されたCOMMAREAを正しく受信、SEND/RECEIVE MAP |
|
||||
| 2 | 画面入力→DB検索→遷移(OL-N003/N004) | 画面入力値をキーにDB検索→結果表示、画面A→B→Cのデータ引継ぎ |
|
||||
| 3 | 異常系(OL-A001/OL-A002) | COMMAREA長不一致、トランザクションABEND→ROLLBACK |
|
||||
| 4 | 応答確認(OL-R001) | 応答時間測定用の件数バリエーション |
|
||||
|
||||
### 组1:COMMAREA受信+MAP入出力(OL-N001/N002)
|
||||
|
||||
CALL側から渡されたDFHCOMMAREAの内容を正しく受信するデータ。SEND MAP / RECEIVE MAP の入出力パターンをカバー。
|
||||
|
||||
### 组2:画面入力→DB検索→遷移(OL-N003/OL-N004)
|
||||
|
||||
画面入力値をキーにDB検索し結果を表示するデータ。複数画面(A→B→C)間でデータが引き継がれるケースを含む。
|
||||
|
||||
### 组3:異常系(OL-A001/OL-A002)
|
||||
|
||||
- DFHCOMMAREA長がCALL側と受信側で異なるデータ
|
||||
- トランザクション内で異常が発生しROLLBACKされるケース
|
||||
|
||||
### 组4:応答確認(OL-R001)
|
||||
|
||||
応答時間測定用に件数を変えたデータ(少量・大量のバリエーション)。
|
||||
|
||||
## データ生成手順
|
||||
|
||||
1. COMMAREA・MAP定義の特定
|
||||
2. 组1/组2: 正常系データ
|
||||
3. 组3: 異常系データ
|
||||
4. 组4: 応答時間確認データ
|
||||
|
||||
## 出力
|
||||
|
||||
每组输出1个JSON文件:`{プログラムID}_g{groupId}.json`
|
||||
|
||||
组数约束:输出组数必须与本规则定义的4组一致(g1〜g4),组号连续从1开始。禁止添加本规则未定义的组,禁止缺组。
|
||||
@@ -0,0 +1,102 @@
|
||||
# キーブレイク(集約) データ生成規則
|
||||
|
||||
## 概要
|
||||
|
||||
キー項目でソート済みの入力ファイルを読み取り、キーブレイク時に集約レコード(件数・最大・最小など)を出力するプログラムのテストデータを生成する。
|
||||
|
||||
本规则定义7组数据,覆盖测试基准说明 §2.2「key切测试(汇总 / 聚合 / 非汇总)」中聚合型相关的 KB-N002、KB-N004、KB-N005、KB-N006、KB-A001、KB-A002、KB-R001。汇总型(ADD累加)は「キーブレイク(集計).md」、非汇总型(键变化做标记)は「キーブレイク(非集計).md」を参照。
|
||||
|
||||
## 输入
|
||||
|
||||
- 詳細設計書のキー項目一覧(ソートキー)
|
||||
- 入力ファイルのCOPYBOOKフィールド定義
|
||||
- 集約対象フィールド(処理詳細から件数・最大・最小の算出対象を特定)
|
||||
- キー条件:键值升序,键项目为复合键时按多keyテスト追加
|
||||
|
||||
## 生成データ組
|
||||
|
||||
| 组 | 用途 | 内容 |
|
||||
|----|------|------|
|
||||
| 1 | 基本聚合(KB-N002) | 同键多件→件数/最大/最小が正しいデータ(複数グループ、各グループ複数レコード)+ 末尾に多keyテスト |
|
||||
| 2 | 单键组(KB-N004) | 全件同一キー→キーブレイク1回のデータ + 末尾に多keyテスト |
|
||||
| 3 | 多键组(KB-N005) | N個の異なるキー→Nグループ出力のデータ + 末尾に多keyテスト |
|
||||
| 4 | 单条记录(KB-N006) | 1件1グループ(自身が集約値)のデータ + 末尾に多keyテスト |
|
||||
| 5 | 前键值未初始化(KB-A001) | 先頭レコードのキーが通常値(非スペース)のデータ。WS-PREV-KEYが初期化されていない場合に先頭で誤中断しないか確認 |
|
||||
| 6 | 累加器溢出(KB-A002) | 集約対象フィールドの合計がPIC定義を超えるデータ(SIZE ERROR/エラー処理確認) |
|
||||
| 7 | 各组小计=合计(KB-R001) | 各グループの集約値の合計と全体合計が一致することを確認するデータ |
|
||||
|
||||
### 组1:基本聚合(KB-N002)
|
||||
|
||||
キー: a001(3件)→a002(2件)→a003(1件)(3グループ以上、各グループ内複数レコード、キー昇順)
|
||||
|
||||
同键内の件数・最大・最小などが設計書どおり算出されることを確認する。
|
||||
|
||||
### 组2:单键组(KB-N004)
|
||||
|
||||
キー: a001(5件)(全件同一キー)
|
||||
|
||||
全体が1つのキーグループ→キーブレイク1回のみ。集約値(件数・最大・最小)が全件から算出されることを確認する。
|
||||
|
||||
### 组3:多键组(KB-N005)
|
||||
|
||||
キー: a001(2件)→a002(1件)→a003(3件)(N個の異なるキー)
|
||||
|
||||
キー変化N-1回→Nグループ出力されることを確認する。
|
||||
|
||||
### 组4:单条记录(KB-N006)
|
||||
|
||||
キー: a001(1件)→a002(3件)→a003(1件)(単一レコードグループを含む)
|
||||
|
||||
1件1グループの場合、そのレコード自身が集約値(件数1・値そのもの)になることを確認する。
|
||||
|
||||
### 组5:前键值未初始化(KB-A001)
|
||||
|
||||
キー: a001(2件)→a002(2件)(先頭レコードのキーが通常値)
|
||||
|
||||
期待:先頭で誤中断せず、1グループ目は1回の中断のみ(前鍵値フィールドが正しく初期化されていること)。
|
||||
|
||||
### 组6:累加器溢出(KB-A002)
|
||||
|
||||
集約対象フィールドの合計がPIC定義を超えるデータ(例: PIC 9(3)金額 999 × 2件 → 合計1,998でオーバーフロー)。
|
||||
|
||||
期待:SIZE ERROR/設計書どおりのエラー処理が発生することを確認。
|
||||
|
||||
### 组7:各组小计=合计(KB-R001)
|
||||
|
||||
各グループの集約値の合計と全体合計が一致することを確認するデータ(组1〜组4相当のグループ構成)。
|
||||
|
||||
## 多keyテスト(各組の末尾に追加)
|
||||
|
||||
キーが複数項目で構成される場合:
|
||||
1. 該当グループ内から1件のレコードを選び基準データとする
|
||||
2. N個のキー項目に対し、それぞれ1項目のみ異なるN件の追加レコードを生成
|
||||
3. これらのレコードは別グループとして扱われるべき(集約値が別になる)
|
||||
|
||||
需要注意当key为n个项目组合而成时,需要在各組末尾追加n条数据。以基准数据的所有key为准,只有当前第n个key与基准不一致。保证key的比较没有问题。
|
||||
|
||||
例(n=3,基准 (a001, b001, c001)):
|
||||
- 追加1: (a002, b001, c001) → 仅第1个key不同
|
||||
- 追加2: (a001, b002, c001) → 仅第2个key不同
|
||||
- 追加3: (a001, b001, c002) → 仅第3个key不同
|
||||
|
||||
n为实际解析出的key项目数(例中n=3仅为示意,追加条数必须等于实际key项目数)。键项目数n=1时不追加多key测试数据。追加的每条记录必须恰好只改变一个key项目,且不得与既有记录完全重复。
|
||||
|
||||
## データ生成手順
|
||||
|
||||
1. キー項目を特定(キー項目一覧のソート条件から)
|
||||
2. 集約フィールドを特定(処理詳細から件数・最大・最小の算出対象を抽出)
|
||||
3. 组1: 3グループ以上、各グループ内複数レコード
|
||||
4. 组2: 全件同一キー
|
||||
5. 组3: N個の異なるキー
|
||||
6. 组4: 単一レコードグループを含む
|
||||
7. 组5: 先頭キーが通常値のデータ
|
||||
8. 组6: 集約合計がPIC定義を超えるデータ
|
||||
9. 组7: グループ小計と全体合計の整合確認データ
|
||||
10. 各組末尾に多keyテストデータを追加
|
||||
11. 生成後自检(KB-R001):各グループの集約値の合計 = 全体合計 を確認
|
||||
|
||||
## 出力
|
||||
|
||||
每组输出1个JSON文件:`{プログラムID}_g{groupId}.json`
|
||||
|
||||
组数约束:输出组数必须与本规则定义的7组一致(g1〜g7),组号连续从1开始。禁止添加本规则未定义的组,禁止缺组。
|
||||
@@ -0,0 +1,102 @@
|
||||
# キーブレイク(集計) データ生成規則
|
||||
|
||||
## 概要
|
||||
|
||||
キー項目でソート済みの入力ファイルを読み取り、キーが変わるタイミング(キーブレイク)で集計値(ADD累加による金額合計等)を計算し、1グループにつき1件の集計レコードを出力するプログラムのテストデータを生成する。
|
||||
|
||||
本规则定义7组数据,覆盖测试基准说明 §2.2「key切测试(汇总 / 聚合 / 非汇总)」中汇总型相关的 KB-N001、KB-N004、KB-N005、KB-N006、KB-A001、KB-A002、KB-R001。集約型(件数・最大・最小)は「キーブレイク(集約).md」、非汇总型(键变化做标记)は「キーブレイク(非集計).md」を参照。
|
||||
|
||||
## 输入
|
||||
|
||||
- 詳細設計書のキー項目一覧(ソートキー)
|
||||
- 入力ファイルのCOPYBOOKフィールド定義
|
||||
- 集計対象フィールド(処理詳細からADD/COMPUTE対象を特定)
|
||||
- キー条件:键值升序,键项目为复合键时按多keyテスト追加
|
||||
|
||||
## 生成データ組
|
||||
|
||||
| 组 | 用途 | 内容 |
|
||||
|----|------|------|
|
||||
| 1 | 基本汇总(KB-N001) | 同键多件→金額合計が正しいデータ(複数グループ、各グループ複数レコード)+ 末尾に多keyテスト |
|
||||
| 2 | 单键组(KB-N004) | 全件同一キー→キーブレイク1回のデータ + 末尾に多keyテスト |
|
||||
| 3 | 多键组(KB-N005) | N個の異なるキー→Nグループ出力のデータ + 末尾に多keyテスト |
|
||||
| 4 | 单条记录(KB-N006) | 1件1グループ(自身が集計値)のデータ + 末尾に多keyテスト |
|
||||
| 5 | 前键值未初始化(KB-A001) | 先頭レコードのキーが通常値(非スペース)のデータ。WS-PREV-KEYが初期化されていない場合に先頭で誤中断しないか確認 |
|
||||
| 6 | 累加器溢出(KB-A002) | 集計値(金額合計)がPIC定義を超えるデータ(SIZE ERROR/エラー処理確認) |
|
||||
| 7 | 各组小计=合计(KB-R001) | 各グループの集計値の合計と全体合計が一致することを確認するデータ |
|
||||
|
||||
### 组1:基本汇总(KB-N001)
|
||||
|
||||
キー: a001(3件)→a002(2件)→a003(1件)(3グループ以上、各グループ内複数レコード、キー昇順)
|
||||
|
||||
同键内の集計対象フィールド(例: 金額)をADD累加し、グループごとの合計が正しいことを確認する。
|
||||
|
||||
### 组2:单键组(KB-N004)
|
||||
|
||||
キー: a001(5件)(全件同一キー)
|
||||
|
||||
全体が1つのキーグループ→キーブレイク1回のみ。合計が全件の累加値と一致することを確認する。
|
||||
|
||||
### 组3:多键组(KB-N005)
|
||||
|
||||
キー: a001(2件)→a002(1件)→a003(3件)(N個の異なるキー)
|
||||
|
||||
キー変化N-1回→Nグループ出力されることを確認する。
|
||||
|
||||
### 组4:单条记录(KB-N006)
|
||||
|
||||
キー: a001(1件)→a002(3件)→a003(1件)(単一レコードグループを含む)
|
||||
|
||||
1件1グループの場合、そのレコード自身が集計値になることを確認する。
|
||||
|
||||
### 组5:前键值未初始化(KB-A001)
|
||||
|
||||
キー: a001(2件)→a002(2件)(先頭レコードのキーが通常値)
|
||||
|
||||
期待:先頭で誤中断せず、1グループ目は1回の中断のみ(前鍵値フィールドが正しく初期化されていること)。
|
||||
|
||||
### 组6:累加器溢出(KB-A002)
|
||||
|
||||
集計対象フィールドの合計がPIC定義を超えるデータ(例: PIC 9(3)金額 999 × 2件 → 合計1,998でオーバーフロー)。
|
||||
|
||||
期待:SIZE ERROR/設計書どおりのエラー処理が発生することを確認。
|
||||
|
||||
### 组7:各组小计=合计(KB-R001)
|
||||
|
||||
各グループの集計値の合計と全体合計が一致することを確認するデータ(组1〜组4相当のグループ構成)。
|
||||
|
||||
## 多keyテスト(各組の末尾に追加)
|
||||
|
||||
キーが複数項目で構成される場合:
|
||||
1. 該当グループ内から1件のレコードを選び基準データとする
|
||||
2. N個のキー項目に対し、それぞれ1項目のみ異なるN件の追加レコードを生成
|
||||
3. これらのレコードは別グループとして扱われるべき(集計値が別になる)
|
||||
|
||||
需要注意当key为n个项目组合而成时,需要在各組末尾追加n条数据。以基准数据的所有key为准,只有当前第n个key与基准不一致。保证key的比较没有问题。
|
||||
|
||||
例(n=3,基准 (a001, b001, c001)):
|
||||
- 追加1: (a002, b001, c001) → 仅第1个key不同
|
||||
- 追加2: (a001, b002, c001) → 仅第2个key不同
|
||||
- 追加3: (a001, b001, c002) → 仅第3个key不同
|
||||
|
||||
n为实际解析出的key项目数(例中n=3仅为示意,追加条数必须等于实际key项目数)。键项目数n=1时不追加多key测试数据。追加的每条记录必须恰好只改变一个key项目,且不得与既有记录完全重复。
|
||||
|
||||
## データ生成手順
|
||||
|
||||
1. キー項目を特定(キー項目一覧のソート条件から)
|
||||
2. 集計フィールドを特定(処理詳細からADD/COMPUTE対象を抽出)
|
||||
3. 组1: 3グループ以上、各グループ2〜5レコード、キー昇順
|
||||
4. 组2: 全件同一キー
|
||||
5. 组3: N個の異なるキー
|
||||
6. 组4: 単一レコードグループを含む
|
||||
7. 组5: 先頭キーが通常値のデータ
|
||||
8. 组6: 集計値がPIC定義を超えるデータ
|
||||
9. 组7: グループ小計と全体合計の整合確認データ
|
||||
10. 各組末尾に多keyテストデータを追加
|
||||
11. 生成後自检(KB-R001):各グループの集計値の合計 = 全体合計 を確認
|
||||
|
||||
## 出力
|
||||
|
||||
每组输出1个JSON文件:`{プログラムID}_g{groupId}.json`
|
||||
|
||||
组数约束:输出组数必须与本规则定义的7组一致(g1〜g7),组号连续从1开始。禁止添加本规则未定义的组,禁止缺组。
|
||||
@@ -0,0 +1,73 @@
|
||||
# キーブレイク(非集計) データ生成規則
|
||||
|
||||
## 概要
|
||||
|
||||
キーが変わるタイミングで集計値を持たずにキー変化の検知・フラグ設定・レコード出力のみを行うプログラム(集計・集約以外のキーブレイク)のテストデータ。
|
||||
|
||||
本规则定义5组数据,覆盖键变化检测、单键组、多键组、单条记录、前键值未初始化。
|
||||
|
||||
## 输入
|
||||
|
||||
- 詳細設計書のキー項目一覧(ソートキー)
|
||||
- 入力ファイルのCOPYBOOKフィールド定義
|
||||
- キー条件:键值升序,键项目为复合键时按多keyテスト追加
|
||||
|
||||
## 生成データ組
|
||||
|
||||
| 组 | 用途 | 内容 |
|
||||
|----|------|------|
|
||||
| 1 | 键变化检测(KB-N003) | 複数グループでキー切替時のみ変化検知・マーク出力 |
|
||||
| 2 | 单键组(KB-N004) | 全件同一キー→キーブレイク1回 |
|
||||
| 3 | 多键组(KB-N005) | N個の異なるキー→Nグループ |
|
||||
| 4 | 单条记录(KB-N006) | 1件1グループ(自身がグループ) |
|
||||
| 5 | 前键值未初始化(KB-A001) | 先頭キーが通常値(非スペース)のデータ |
|
||||
|
||||
### 组1:键变化检测(KB-N003)
|
||||
|
||||
キー: a001(3件)→a002(2件)→a003(1件)。キー切替のタイミングで変化検知・マークが正しく出力されることを確認。
|
||||
|
||||
### 组2:单键组(KB-N004)
|
||||
|
||||
キー: a001(5件)(全件同一キー)。キーブレイクが1回だけ発生することを確認。
|
||||
|
||||
### 组3:多键组(KB-N005)
|
||||
|
||||
キー: a001→a002→a003→a004→a005(5件すべて異なるキー)。キー変化4回→5グループの出力を確認。
|
||||
|
||||
### 组4:单条记录(KB-N006)
|
||||
|
||||
キー: a001(1件)(1件1グループ)。単独レコードが正しく1グループとして処理されることを確認。
|
||||
|
||||
### 组5:前键值未初始化(KB-A001)
|
||||
|
||||
キー: a001(2件)→a002(2件)(先頭キーが通常値)。WS-PREV-KEYが初期化されていない場合に先頭で誤中断しないことを確認。
|
||||
|
||||
## 多keyテスト
|
||||
|
||||
キーが複数項目の場合、各組末尾に追加。1レコードを基準に、各キー項目のみ異なるN件を生成。
|
||||
|
||||
需要注意当key为n个项目组合而成时,需要在各組末尾追加n条数据。以基准数据的所有key为准,只有当前第n个key与基准不一致。保证key的比较没有问题。
|
||||
|
||||
例(n=3,基准 (a001, b001, c001)):
|
||||
- 追加1: (a002, b001, c001) → 仅第1个key不同
|
||||
- 追加2: (a001, b002, c001) → 仅第2个key不同
|
||||
- 追加3: (a001, b001, c002) → 仅第3个key不同
|
||||
|
||||
n为实际解析出的key项目数(例中n=3仅为示意,追加条数必须等于实际key项目数)。键项目数n=1时不追加多key测试数据。
|
||||
|
||||
## データ生成手順
|
||||
|
||||
1. キー項目の特定
|
||||
2. 组1: 複数グループの変化検知データ
|
||||
3. 组2: 単一キーグループデータ
|
||||
4. 组3: 全キー異なるデータ
|
||||
5. 组4: 単件データ
|
||||
6. 组5: 先頭キー通常値データ
|
||||
7. 各組末尾に多keyテスト
|
||||
8. 生成後自检:グループ数=キー変化回数+1 を確認
|
||||
|
||||
## 出力
|
||||
|
||||
每组输出1个JSON文件:`{プログラムID}_g{groupId}.json`
|
||||
|
||||
组数约束:输出组数必须与本规则定义的5组一致(g1〜g5),组号连续从1开始。禁止添加本规则未定义的组,禁止缺组。
|
||||
@@ -0,0 +1,60 @@
|
||||
# サブプログラム データ生成規則
|
||||
|
||||
## 概要
|
||||
|
||||
サブプログラムをCALLで呼び出すメインプログラムのテストデータ。CALL文のバリエーション、引数渡し、RETURN-CODE、CALL先の状態保持を検証する。
|
||||
|
||||
※ 本規則はCALLER側(PGMタイプ=メイン)を対象とする。Callee単体(PGMタイプ=サブ)は generate() の対象外(AGENTS.md参照)。
|
||||
|
||||
本规则定义5组数据,覆盖基本CALL、动态CALL、返回处理、状态保持、异常系。
|
||||
|
||||
## 输入
|
||||
|
||||
- 詳細設計書の処理詳細(CALL文、引数、RETURN-CODE判定)
|
||||
- CALL先サブプログラムのLINKAGE定義
|
||||
|
||||
## 生成データ組
|
||||
|
||||
| 组 | 用途 | 内容 |
|
||||
|----|------|------|
|
||||
| 1 | CALL 字面量+参数传递(C-N001/N002) | CALL 'SUBPGM' USING ...、CALL側とLINKAGE側のパラメータ対応 |
|
||||
| 2 | 动态CALL+RETURN-CODE(C-N003/N004) | CALL WS-PGM-NAME USING ...、RETURN-CODEの設定・検査 |
|
||||
| 3 | 返回处理(C-N005/N006) | EXIT PROGRAMによる正常復帰、GOBACK(RETURN-CODE付き) |
|
||||
| 4 | 状态保持(C-N007/C-N008) | IS INITIAL指定プログラム(毎CALL初期化)/非指定(値保持) |
|
||||
| 5 | 异常系(C-A001〜C-A003) | CALL先不存在(ABEND)、パラメータ長不一致、CANCEL後再CALL |
|
||||
|
||||
### 组1:CALL 字面量+参数传递(C-N001/N002)
|
||||
|
||||
CALL 'SUB01DAT' USING ... のように字面量でCALLするデータ。CALL側のUSING引数とLINKAGE側のレイアウトが対応すること。
|
||||
|
||||
### 组2:动态CALL+RETURN-CODE(C-N003/N004)
|
||||
|
||||
CALL WS-PGM-NAME USING ... のように変数名でCALLするデータ。サブプログラム側でRETURN-CODEを設定し、CALL側で検査するケースを含む。
|
||||
|
||||
### 组3:返回处理(C-N005/C-N006)
|
||||
|
||||
EXIT PROGRAMで正常復帰するケースと、GOBACK(RETURN-CODE付き)で復帰するケースのデータ。
|
||||
|
||||
### 组4:状态保持(C-N007/C-N008)
|
||||
|
||||
- IS INITIAL指定のサブプログラム: CALL毎にWSが初期化されることを確認するデータ
|
||||
- 非IS INITIALのサブプログラム: CALL跨ぎでWS値が保持されることを確認するデータ
|
||||
|
||||
### 组5:异常系(C-A001〜C-A003)
|
||||
|
||||
- CALL先プログラムが存在しない(未ロード→ABEND)
|
||||
- CALL USINGのパラメータ長がLINKAGE側と不一致
|
||||
- CANCEL後に再CALL(INITIAL状態に戻ること)
|
||||
|
||||
## データ生成手順
|
||||
|
||||
1. CALL文・引数・RETURN-CODE判定の特定
|
||||
2. 组1〜组4: 正常系データ
|
||||
3. 组5: 異常系データ
|
||||
4. 生成後自检(C-R001/C-R002):CALL前の正常終了、CALL後のRETURN-CODE確認
|
||||
|
||||
## 出力
|
||||
|
||||
每组输出1个JSON文件:`{プログラムID}_g{groupId}.json`
|
||||
|
||||
组数约束:输出组数必须与本规则定义的5组一致(g1〜g5),组号连续从1开始。禁止添加本规则未定义的组,禁止缺组。
|
||||
@@ -0,0 +1,172 @@
|
||||
# マッチング(1:1) 数据生成规则
|
||||
|
||||
## 概要
|
||||
|
||||
2个输入文件按指定键进行1:1匹配,输出匹配成功/仅R01/仅R02三种结果。
|
||||
|
||||
本规则定义8组数据:组1〜组4为正常系(覆盖MT-N001完全匹配、MT-N004主件剩余、MT-N005从件剩余),组5〜组8为异常系(覆盖MT-N006主键重复、MT-N007键值乱序,R01/R02两侧均测)。
|
||||
|
||||
## 输入
|
||||
|
||||
- 前提条件:从详细设计书解析匹配键(A001>A002>A003...)
|
||||
- 输入文件:2个(R01、R02)
|
||||
- 键条件:组1〜组4(正常系)键值唯一(重複NG)且升序排序
|
||||
- 组5(异常系):R01内故意生成重复键值
|
||||
- 组6(异常系):R01故意违反升序前提
|
||||
- 组7(异常系):R02内故意生成重复键值
|
||||
- 组8(异常系):R02故意违反升序前提
|
||||
|
||||
## 生成的数据组
|
||||
|
||||
| 组 | 用途 | R01记录数 | R02记录数 | 说明 |
|
||||
|----|------|-----------|-----------|------|
|
||||
| 1 | 两端不匹配 | 4 | 4 | 第1条R01-only、最后1条R02-only、中间3条以上匹配 |
|
||||
| 2 | 反向两端不匹配 | 4 | 4 | 第1条R02-only、最后1条R01-only、中间3条以上匹配 |
|
||||
| 3 | 中间不匹配 | 4 | 4 | 首尾匹配、中间有R01-only和R02-only各1条 |
|
||||
| 4 | 完全匹配 | 4 | 4 | 双方各N件全部匹配成功,无剩余(MT-N001) |
|
||||
| 5 | 主键重复-R01(异常) | 4 | 3 | R01内同一键出现2次(MT-N006) |
|
||||
| 6 | 键值乱序-R01(异常) | 4 | 4 | R01违反升序前提(MT-N007) |
|
||||
| 7 | 主键重复-R02(异常) | 3 | 4 | R02内同一键出现2次(MT-N006) |
|
||||
| 8 | 键值乱序-R02(异常) | 4 | 4 | R02违反升序前提(MT-N007) |
|
||||
|
||||
### 组1:两端不匹配
|
||||
|
||||
R01键:a001(R01-only) → a002 → a003 → a004
|
||||
R02键:a002 → a003 → a004 → a005(R02-only)
|
||||
|
||||
records数组(按处理顺序):
|
||||
| 处理顺序 | 内容 | 说明 |
|
||||
|---------|------|------|
|
||||
| 第1条 | R01(a001) | R01-only |
|
||||
| 第2条 | R01(a002) + R02(a002) | 匹配 |
|
||||
| 第3条 | R01(a003) + R02(a003) | 匹配 |
|
||||
| 第4条 | R01(a004) + R02(a004) | 匹配 |
|
||||
| 第5条 | R02(a005) | R02-only |
|
||||
|
||||
组1:需要注意当key为n个项目组合而成时,在R01的最后需要加上n条数据。和R02(a005)的所有key相比,只有当前第n个key与R02(a005)的key不一致。保证key的比较没有问题。
|
||||
|
||||
例(n=3):
|
||||
| R01 key1 | R01 key2 | R01 key3 | R02 key1 | R02 key2 | R02 key3 | 说明 |
|
||||
|----------|----------|----------|----------|----------|----------|------|
|
||||
| a004 | b005 | c005 | a005 | b005 | c005 | 仅第1个key不一致 |
|
||||
| a005 | b004 | c005 | a005 | b005 | c005 | 仅第2个key不一致 |
|
||||
| a005 | b005 | c00c | a005 | b005 | c005 | 仅第3个key不一致 |
|
||||
|
||||
n为实际解析出的key项目数(例中n=3仅为示意,追加条数必须等于实际key项目数,严禁按示例机械生成3条)。键项目数n=1时不追加多key测试数据。追加的每条记录必须恰好只改变一个key项目,且不得与R01既有记录完全重复。
|
||||
|
||||
### 组2:反向两端不匹配
|
||||
|
||||
R01键:a002 → a003 → a004 → a005(R01-only)
|
||||
R02键:a001(R02-only) → a002 → a003 → a004
|
||||
|
||||
records数组(按处理顺序):
|
||||
| 处理顺序 | 内容 | 说明 |
|
||||
|---------|------|------|
|
||||
| 第1条 | R02(a001) | R02-only |
|
||||
| 第2条 | R01(a002) + R02(a002) | 匹配 |
|
||||
| 第3条 | R01(a003) + R02(a003) | 匹配 |
|
||||
| 第4条 | R01(a004) + R02(a004) | 匹配 |
|
||||
| 第5条 | R01(a005) | R01-only |
|
||||
|
||||
### 组3:中间不匹配
|
||||
|
||||
R01键:a001 → a003(R01-only) → a004 → a005
|
||||
R02键:a001 → a002(R02-only) → a004 → a005
|
||||
|
||||
records数组(按处理顺序):
|
||||
| 处理顺序 | 内容 | 说明 |
|
||||
|---------|------|------|
|
||||
| 第1条 | R01(a001) + R02(a001) | 匹配 |
|
||||
| 第2条 | R02(a002) | R02-only |
|
||||
| 第3条 | R01(a003) | R01-only |
|
||||
| 第4条 | R01(a004) + R02(a004) | 匹配 |
|
||||
| 第5条 | R01(a005) + R02(a005) | 匹配 |
|
||||
|
||||
### 组4:完全匹配(MT-N001)
|
||||
|
||||
R01键:a001 → a002 → a003 → a004
|
||||
R02键:a001 → a002 → a003 → a004
|
||||
|
||||
records数组(按处理顺序):
|
||||
| 处理顺序 | 内容 | 说明 |
|
||||
|---------|------|------|
|
||||
| 第1条 | R01(a001) + R02(a001) | 匹配 |
|
||||
| 第2条 | R01(a002) + R02(a002) | 匹配 |
|
||||
| 第3条 | R01(a003) + R02(a003) | 匹配 |
|
||||
| 第4条 | R01(a004) + R02(a004) | 匹配 |
|
||||
|
||||
### 组5:主键重复-R01(异常系,MT-N006)
|
||||
|
||||
R01键:a001 → a002 → a002(重复) → a003
|
||||
R02键:a001 → a002 → a003
|
||||
|
||||
说明:R01中键a002出现2次,违反"键值唯一"前提。期望程序检出重复键并执行设计书规定的错误处理(错误输出/异常结束),不得静默处理。
|
||||
|
||||
records数组(按处理顺序):
|
||||
| 处理顺序 | 内容 | 说明 |
|
||||
|---------|------|------|
|
||||
| 第1条 | R01(a001) + R02(a001) | 匹配 |
|
||||
| 第2条 | R01(a002) + R02(a002) | 匹配 |
|
||||
| 第3条 | R01(a002) | 重复键(第2次出现) |
|
||||
| 第4条 | R01(a003) + R02(a003) | 匹配 |
|
||||
|
||||
### 组6:键值乱序-R01(异常系,MT-N007)
|
||||
|
||||
R01键:a001 → a003 → a002 → a004(a003先于a002,违反升序)
|
||||
R02键:a001 → a002 → a003 → a004(正常升序)
|
||||
|
||||
说明:R01违反升序前提,程序可能产生误匹配或未预期结果。本组用于确认程序对乱序输入的行为(按设计书确认期望结果),不要求生成"正确匹配"。
|
||||
|
||||
records数组(按文件读取顺序):
|
||||
| 处理顺序 | 内容 | 说明 |
|
||||
|---------|------|------|
|
||||
| 第1条 | R01(a001) + R02(a001) | 匹配 |
|
||||
| 第2条 | R01(a003) + R02(a002) | 乱序错位(键不一致) |
|
||||
| 第3条 | R01(a002) + R02(a003) | 乱序错位(键不一致) |
|
||||
| 第4条 | R01(a004) + R02(a004) | 匹配 |
|
||||
|
||||
### 组7:主键重复-R02(异常系,MT-N006)
|
||||
|
||||
R01键:a001 → a002 → a003
|
||||
R02键:a001 → a002 → a002(重复) → a003
|
||||
|
||||
说明:R02中键a002出现2次,违反"键值唯一"前提。期望程序检出重复键并执行设计书规定的错误处理(错误输出/异常结束),不得静默处理。
|
||||
|
||||
records数组(按处理顺序):
|
||||
| 处理顺序 | 内容 | 说明 |
|
||||
|---------|------|------|
|
||||
| 第1条 | R01(a001) + R02(a001) | 匹配 |
|
||||
| 第2条 | R01(a002) + R02(a002) | 匹配 |
|
||||
| 第3条 | R02(a002) | 重复键(第2次出现) |
|
||||
| 第4条 | R01(a003) + R02(a003) | 匹配 |
|
||||
|
||||
### 组8:键值乱序-R02(异常系,MT-N007)
|
||||
|
||||
R01键:a001 → a002 → a003 → a004(正常升序)
|
||||
R02键:a001 → a003 → a002 → a004(a003先于a002,违反升序)
|
||||
|
||||
说明:R02违反升序前提,程序可能产生误匹配或未预期结果。本组用于确认程序对乱序输入的行为(按设计书确认期望结果),不要求生成"正确匹配"。
|
||||
|
||||
records数组(按文件读取顺序):
|
||||
| 处理顺序 | 内容 | 说明 |
|
||||
|---------|------|------|
|
||||
| 第1条 | R01(a001) + R02(a001) | 匹配 |
|
||||
| 第2条 | R01(a002) + R02(a003) | 乱序错位(键不一致) |
|
||||
| 第3条 | R01(a003) + R02(a002) | 乱序错位(键不一致) |
|
||||
| 第4条 | R01(a004) + R02(a004) | 匹配 |
|
||||
|
||||
## 数据生成步骤
|
||||
|
||||
1. 从前提条件解析匹配键字段(如 A001>A002>A003)
|
||||
2. 从COPYBOOK获取各字段的PIC定义
|
||||
3. 生成键值:键值以 a001/b001/c001 格式递增。组1〜组4保证键值唯一且升序;组5/组7生成重复键;组6/组8故意乱序
|
||||
4. 非键字段的数据生成:根据字段名关键词生成符合实际的数据,同时尽量保证每条相邻的数据的相同项目不一致。
|
||||
5. 按各组规则组装records数组
|
||||
6. 组号从1开始连续编号
|
||||
7. 生成后自检(MT-R001):统计每组匹配件数M、R01-only件数r1、R02-only件数r2,校验 M + r1 = R01输入件数 且 M + r2 = R02输入件数(组6/组8乱序组因匹配结果不确定,仅确认records数组包含R01与R02的全部输入记录)
|
||||
|
||||
## 输出
|
||||
|
||||
每个组输出一个json文件:`{プログラムID}_g{groupId}.json`
|
||||
|
||||
组数约束:输出组数必须与本规则定义的8组一致(g1〜g8),组号连续从1开始。禁止添加本规则未定义的组,禁止缺组。每组生成的records必须与对应组的定义完全一致。
|
||||
@@ -0,0 +1,195 @@
|
||||
# マッチング(1:N) 数据生成规则
|
||||
|
||||
## 概要
|
||||
|
||||
2个输入文件,R01为主件(1侧),R02为从件(N侧)。1件R01可对应多件R02(1:N)。
|
||||
|
||||
本规则定义9组数据:组1〜组5为正常系(覆盖MT-N001完全匹配、MT-N002的1:N匹配、MT-N004主件剩余、MT-N005从件剩余、MT-N009极端不平衡),组6〜组9为异常系(覆盖MT-N006主键重复R01/R02、MT-N007键值乱序R01/R02)。
|
||||
|
||||
## 输入
|
||||
|
||||
- 前提条件:从详细设计书解析匹配键(A001>A002>A003...)
|
||||
- 输入文件:2个(R01主件、R02从件)
|
||||
- 键条件:组1〜组5(正常系)键值唯一(主件重複NG)且升序排序
|
||||
- 组6(异常系):R01内故意生成重复键值
|
||||
- 组7/组8(异常系):R01/R02故意违反升序前提
|
||||
- 组9(异常系):R02内故意生成重复键值
|
||||
|
||||
## 生成的数据组
|
||||
|
||||
| 组 | 用途 | R01记录数 | R02记录数 | 说明 |
|
||||
|----|------|-----------|-----------|------|
|
||||
| 1 | 1:1匹配 | 4 | 4 | 双方各N件全部1:1匹配(MT-N001),R01末尾追加n条多key变体(仅一个key不同→R01-only,验证键比较) |
|
||||
| 2 | 1:N匹配 | 3 | 5 | R01一件对应R02多件,同key多条(MT-N002) |
|
||||
| 3 | 主件剩余-R01 | 4 | 2 | 从件读完主件剩余→W03(MT-N004) |
|
||||
| 4 | 从件剩余-R02 | 2 | 4 | 主件读完从件剩余→W02(MT-N005) |
|
||||
| 5 | 极端不平衡1:N | 1 | 5 | R01=1条、R02=N条同key(MT-N009) |
|
||||
| 6 | 主键重复-R01(异常) | 4 | 3 | R01内同一键出现2次(MT-N006) |
|
||||
| 7 | 键值乱序-R01(异常) | 4 | 4 | R01违反升序前提(MT-N007) |
|
||||
| 8 | 键值乱序-R02(异常) | 4 | 4 | R02违反升序前提(MT-N007) |
|
||||
| 9 | 主键重复-R02(异常) | 3 | 4 | R02内同一键出现2次(MT-N006) |
|
||||
|
||||
### 组1:1:1匹配(MT-N001)
|
||||
|
||||
R01: a001→a002→a003→a004
|
||||
R02: a001→a002→a003→a004
|
||||
|
||||
records数组(按处理顺序):
|
||||
| 处理顺序 | 内容 | 说明 |
|
||||
|---------|------|------|
|
||||
| 第1条 | R01(a001)+R02(a001) | 匹配 |
|
||||
| 第2条 | R01(a002)+R02(a002) | 匹配 |
|
||||
| 第3条 | R01(a003)+R02(a003) | 匹配 |
|
||||
| 第4条 | R01(a004)+R02(a004) | 匹配 |
|
||||
|
||||
组1:需要注意当key为n个项目组合而成时,在R01的最后需要加上n条数据。和R02(a004)的所有key相比,只有当前第n个key与R02(a004)的key不一致。保证key的比较没有问题。
|
||||
|
||||
例(n=3):
|
||||
| R01 key1 | R01 key2 | R01 key3 | R02 key1 | R02 key2 | R02 key3 | 说明 |
|
||||
|----------|----------|----------|----------|----------|----------|------|
|
||||
| a003 | b004 | c004 | a004 | b004 | c004 | 仅第1个key不一致 |
|
||||
| a004 | b003 | c004 | a004 | b004 | c004 | 仅第2个key不一致 |
|
||||
| a004 | b004 | c003 | a004 | b004 | c004 | 仅第3个key不一致 |
|
||||
|
||||
|
||||
n为实际解析出的key项目数(例中n=3仅为示意,追加条数必须等于实际key项目数,严禁按示例机械生成3条)。键项目数n=1时不追加多key测试数据。追加的每条记录必须恰好只改变一个key项目,且不得与R01既有记录完全重复。这n条追加记录与R02的任何key都不完全一致,作为R01-only追加在R01末尾(不影响前面全部匹配)。
|
||||
|
||||
### 组2:1:N匹配(MT-N002)
|
||||
|
||||
R01: a001→a002→a003
|
||||
R02: a001→a002→a002→a002→a003(a002同key 3条)
|
||||
|
||||
records数组(按处理顺序):
|
||||
| 处理顺序 | 内容 | 说明 |
|
||||
|---------|------|------|
|
||||
| 第1条 | R01(a001)+R02(a001) | 匹配 |
|
||||
| 第2条 | R01(a002)+R02(a002) | 匹配(第1件) |
|
||||
| 第3条 | R01(a002)+R02(a002) | 匹配(第2件) |
|
||||
| 第4条 | R01(a002)+R02(a002) | 匹配(第3件) |
|
||||
| 第5条 | R01(a003)+R02(a003) | 匹配 |
|
||||
|
||||
### 组3:主件剩余-R01(MT-N004)
|
||||
|
||||
R01: a001→a002→a003→a004
|
||||
R02: a001→a002
|
||||
|
||||
records数组(按处理顺序):
|
||||
| 处理顺序 | 内容 | 说明 |
|
||||
|---------|------|------|
|
||||
| 第1条 | R01(a001)+R02(a001) | 匹配 |
|
||||
| 第2条 | R01(a002)+R02(a002) | 匹配 |
|
||||
| 第3条 | R01(a003) | R01-only(主件剩余→W03) |
|
||||
| 第4条 | R01(a004) | R01-only(主件剩余→W03) |
|
||||
|
||||
组3:需要注意当key为n个项目组合而成时,在R01的最后需要加上n条数据。和R02(a002)的所有key相比,只有当前第n个key与R02(a002)的key不一致。保证key的比较没有问题。
|
||||
|
||||
n为实际解析出的key项目数(追加条数必须等于实际key项目数)。键项目数n=1时不追加多key测试数据。追加的每条记录必须恰好只改变一个key项目,且不得与R01既有记录完全重复。
|
||||
|
||||
例(n=3):
|
||||
| R01 key1 | R01 key2 | R01 key3 | R02 key1 | R02 key2 | R02 key3 | 说明 |
|
||||
|----------|----------|----------|----------|----------|----------|------|
|
||||
| a002 | b002 | c003 | a002 | b002 | c002 | 仅第3个key不一致 |
|
||||
| a002 | b003 | c002 | a002 | b002 | c002 | 仅第2个key不一致 |
|
||||
| a003 | b002 | c002 | a002 | b002 | c002 | 仅第1个key不一致 |
|
||||
|
||||
### 组4:从件剩余-R02(MT-N005)
|
||||
|
||||
R01: a001→a002
|
||||
R02: a001→a002→a003→a004
|
||||
|
||||
records数组(按处理顺序):
|
||||
| 处理顺序 | 内容 | 说明 |
|
||||
|---------|------|------|
|
||||
| 第1条 | R01(a001)+R02(a001) | 匹配 |
|
||||
| 第2条 | R01(a002)+R02(a002) | 匹配 |
|
||||
| 第3条 | R02(a003) | R02-only(从件剩余→W02) |
|
||||
| 第4条 | R02(a004) | R02-only(从件剩余→W02) |
|
||||
|
||||
### 组5:极端不平衡 1:N(MT-N009)
|
||||
|
||||
R01: a001(1条)
|
||||
R02: a001→a001→a001→a001→a001(5条同key)
|
||||
|
||||
records数组(按处理顺序):
|
||||
| 处理顺序 | 内容 | 说明 |
|
||||
|---------|------|------|
|
||||
| 第1条 | R01(a001)+R02(a001) | 匹配(第1件) |
|
||||
| 第2条 | R01(a001)+R02(a001) | 匹配(第2件) |
|
||||
| 第3条 | R01(a001)+R02(a001) | 匹配(第3件) |
|
||||
| 第4条 | R01(a001)+R02(a001) | 匹配(第4件) |
|
||||
| 第5条 | R01(a001)+R02(a001) | 匹配(第5件) |
|
||||
|
||||
### 组6:主键重复-R01(异常系,MT-N006)
|
||||
|
||||
R01: a001→a002→a002(重复) →a003
|
||||
R02: a001→a002→a003
|
||||
|
||||
说明:R01中键a002出现2次,违反"键值唯一"前提(1:N程序中主件键值必须唯一)。期望程序检出重复键并执行设计书规定的错误处理(错误输出/异常结束),不得静默处理。
|
||||
|
||||
records数组(按处理顺序):
|
||||
| 处理顺序 | 内容 | 说明 |
|
||||
|---------|------|------|
|
||||
| 第1条 | R01(a001)+R02(a001) | 匹配 |
|
||||
| 第2条 | R01(a002)+R02(a002) | 匹配 |
|
||||
| 第3条 | R01(a002) | 重复键(第2次出现) |
|
||||
| 第4条 | R01(a003)+R02(a003) | 匹配 |
|
||||
|
||||
### 组7:键值乱序-R01(异常系,MT-N007)
|
||||
|
||||
R01: a001→a003→a002→a004(a003先于a002,违反升序)
|
||||
R02: a001→a002→a003→a004(正常升序)
|
||||
|
||||
说明:R01违反升序前提,程序可能产生误匹配或未预期结果。本组用于确认程序对乱序输入的行为(按设计书确认期望结果),不要求生成"正确匹配"。
|
||||
|
||||
records数组(按文件读取顺序):
|
||||
| 处理顺序 | 内容 | 说明 |
|
||||
|---------|------|------|
|
||||
| 第1条 | R01(a001)+R02(a001) | 匹配 |
|
||||
| 第2条 | R01(a003)+R02(a002) | 乱序错位(键不一致) |
|
||||
| 第3条 | R01(a002)+R02(a003) | 乱序错位(键不一致) |
|
||||
| 第4条 | R01(a004)+R02(a004) | 匹配 |
|
||||
### 组8:键值乱序-R02(异常系,MT-N007)
|
||||
|
||||
R01: a001→a002→a003→a004(正常升序)
|
||||
R02: a001→a003→a002→a004(a003先于a002,违反升序)
|
||||
|
||||
说明:R02违反升序前提,程序可能产生误匹配或未预期结果。本组用于确认程序对乱序输入的行为(按设计书确认期望结果),不要求生成"正确匹配"。
|
||||
|
||||
records数组(按文件读取顺序):
|
||||
| 处理顺序 | 内容 | 说明 |
|
||||
|---------|------|------|
|
||||
| 第1条 | R01(a001)+R02(a001) | 匹配 |
|
||||
| 第2条 | R01(a002)+R02(a003) | 乱序错位(键不一致) |
|
||||
| 第3条 | R01(a003)+R02(a002) | 乱序错位(键不一致) |
|
||||
| 第4条 | R01(a004)+R02(a004) | 匹配 |
|
||||
|
||||
### 组9:主键重复-R02(异常系,MT-N006)
|
||||
|
||||
R01: a001→a002→a003
|
||||
R02: a001→a002→a002(重复) →a003
|
||||
|
||||
说明:1:N程序中R02(从件)同key多条属于正常(N件匹配),本组验证从件重复键时程序的处理(R01一条对应R02两条)。若设计书对R02也要求键值唯一(重複NG),则本组用于验证重复键检出/错误处理,不得静默处理。
|
||||
|
||||
records数组(按处理顺序):
|
||||
| 处理顺序 | 内容 | 说明 |
|
||||
|---------|------|------|
|
||||
| 第1条 | R01(a001)+R02(a001) | 匹配 |
|
||||
| 第2条 | R01(a002)+R02(a002) | 匹配(第1件) |
|
||||
| 第3条 | R01(a002)+R02(a002) | 同key第2条(N件处理/重复检出) |
|
||||
| 第4条 | R01(a003)+R02(a003) | 匹配 |
|
||||
|
||||
## 数据生成步骤
|
||||
|
||||
1. 从前提条件解析匹配键字段(如 A001>A002>A003)
|
||||
2. 从COPYBOOK获取各字段的PIC定义
|
||||
3. 生成键值:键值以 a001/b001/c001 格式递增。组1〜组5保证键值唯一且升序;组6/组9生成重复键;组7/组8故意乱序
|
||||
4. 非键字段的数据生成:根据字段名关键词生成符合实际的数据,同时尽量保证每条相邻的数据的相同项目不一致。
|
||||
5. 按各组规则组装records数组
|
||||
6. 组号从1开始连续编号
|
||||
7. 生成后自检(MT-R001):统计每组匹配件数m1(R01中被匹配的件数)、m2(R02中被匹配的件数)、R01-only件数r1、R02-only件数r2,校验 m1 + r1 = R01输入件数 且 m2 + r2 = R02输入件数(组7/组8乱序组因匹配结果不确定,仅确认records数组包含R01与R02的全部输入记录)
|
||||
|
||||
## 输出
|
||||
|
||||
每个组输出一个json文件:`{プログラムID}_g{groupId}.json`
|
||||
|
||||
组数约束:输出组数必须与本规则定义的9组一致(g1〜g9),组号连续从1开始。禁止添加本规则未定义的组,禁止缺组。每组生成的records必须与对应组的定义完全一致。
|
||||
@@ -0,0 +1,102 @@
|
||||
# マッチング(M:N) 数据生成规则
|
||||
|
||||
## 概要
|
||||
|
||||
R01(主件)与R02(从件)按指定键进行M:N匹配:同一键下R01有M件、R02有N件时,程序按设计书输出M件、N件或M×N件(笛卡尔积)。
|
||||
|
||||
本规则定义4组数据:组1为完全匹配(MT-N001),组2〜组4覆盖M:N的三种输出形态(AM-N005笛卡尔积、AM-N003输出M件、AM-N004输出N件)。
|
||||
|
||||
## 输入
|
||||
|
||||
- 前提条件:从详细设计书解析匹配键(A001>A002>A003...)
|
||||
- 输入文件:2个(R01、R02)
|
||||
- 键条件:各组键值升序;同一键下R01/R02按组定义生成M条/N条同key数据
|
||||
|
||||
## 生成的数据组
|
||||
|
||||
| 组 | 用途 | R01记录数 | R02记录数 | 说明 |
|
||||
|----|------|-----------|-----------|------|
|
||||
| 1 | 完全匹配 | 4 | 4 | 双方各N件全部1:1匹配,无剩余(MT-N001) |
|
||||
| 2 | M:N笛卡尔积 | 3 | 3 | 同key下R01×2、R02×2→M×N=4件(AM-N005) |
|
||||
| 3 | M:N→M件 | 3 | 2 | 同key下R01×2、R02×1→输出M件(AM-N003) |
|
||||
| 4 | M:N→N件 | 2 | 3 | 同key下R01×1、R02×2→输出N件(AM-N004) |
|
||||
|
||||
### 组1:完全匹配(MT-N001)
|
||||
|
||||
R01: a001→a002→a003→a004
|
||||
R02: a001→a002→a003→a004
|
||||
|
||||
records数组(按处理顺序):
|
||||
| 处理顺序 | 内容 | 说明 |
|
||||
|---------|------|------|
|
||||
| 第1条 | R01(a001)+R02(a001) | 匹配 |
|
||||
| 第2条 | R01(a002)+R02(a002) | 匹配 |
|
||||
| 第3条 | R01(a003)+R02(a003) | 匹配 |
|
||||
| 第4条 | R01(a004)+R02(a004) | 匹配 |
|
||||
|
||||
### 组2:M:N笛卡尔积(AM-N005)
|
||||
|
||||
R01: a001→a001→a002(a001×2)
|
||||
R02: a001→a001→a002(a001×2)
|
||||
|
||||
records数组(按处理顺序):
|
||||
| 处理顺序 | 内容 | 说明 |
|
||||
|---------|------|------|
|
||||
| 第1条 | R01(a001)+R02(a001) | 组合1 |
|
||||
| 第2条 | R01(a001)+R02(a001) | 组合2 |
|
||||
| 第3条 | R01(a001)+R02(a001) | 组合3 |
|
||||
| 第4条 | R01(a001)+R02(a001) | 组合4 |
|
||||
| 第5条 | R01(a002)+R02(a002) | 匹配 |
|
||||
|
||||
### 组3:M:N→M件(AM-N003)
|
||||
|
||||
R01: a001→a001→a002(a001×2)
|
||||
R02: a001→a002
|
||||
|
||||
records数组(按处理顺序):
|
||||
| 处理顺序 | 内容 | 说明 |
|
||||
|---------|------|------|
|
||||
| 第1条 | R01(a001)+R02(a001) | 匹配(主件第1条) |
|
||||
| 第2条 | R01(a001)+R02(a001) | 匹配(主件第2条)→输出M件 |
|
||||
| 第3条 | R01(a002)+R02(a002) | 匹配 |
|
||||
|
||||
### 组4:M:N→N件(AM-N004)
|
||||
|
||||
R01: a001→a002
|
||||
R02: a001→a001→a002(a001×2)
|
||||
|
||||
records数组(按处理顺序):
|
||||
| 处理顺序 | 内容 | 说明 |
|
||||
|---------|------|------|
|
||||
| 第1条 | R01(a001)+R02(a001) | 匹配(从件第1条) |
|
||||
| 第2条 | R01(a001)+R02(a001) | 匹配(从件第2条)→输出N件 |
|
||||
| 第3条 | R01(a002)+R02(a002) | 匹配 |
|
||||
|
||||
## 多keyテスト
|
||||
|
||||
需要注意当key为n个项目组合而成时,需要在末尾追加n条数据。以基准数据的所有key为准,只有当前第n个key与基准不一致。保证key的比较没有问题。
|
||||
|
||||
例(n=3,基准 a002 = (a002, b002, c002)):
|
||||
| 追加 key1 | 追加 key2 | 追加 key3 | 基准 key1 | 基准 key2 | 基准 key3 | 说明 |
|
||||
|----------|----------|----------|----------|----------|----------|------|
|
||||
| a001 | b002 | c002 | a002 | b002 | c002 | 仅第1个key不一致 |
|
||||
| a002 | b001 | c002 | a002 | b002 | c002 | 仅第2个key不一致 |
|
||||
| a002 | b002 | c001 | a002 | b002 | c002 | 仅第3个key不一致 |
|
||||
|
||||
n为实际解析出的key项目数(例中n=3仅为示意,追加条数必须等于实际key项目数)。键项目数n=1时不追加多key测试数据。追加的每条记录必须恰好只改变一个key项目,且不得与既有记录完全重复。
|
||||
|
||||
## 数据生成步骤
|
||||
|
||||
1. 从前提条件解析匹配键字段(如 A001>A002>A003)
|
||||
2. 从COPYBOOK获取各字段的PIC定义
|
||||
3. 生成键值:键值以 a001/b001/c001 格式递增,各组按定义生成M/N条同key数据,键值升序
|
||||
4. 非键字段的数据生成:根据字段名关键词生成符合实际的数据,同时尽量保证每条相邻的数据的相同项目不一致
|
||||
5. 按各组规则组装records数组
|
||||
6. 组号从1开始连续编号
|
||||
7. 生成后自检(MT-R001):统计每组匹配件数m1(R01中被匹配的件数)、m2(R02中被匹配的件数)、R01-only件数r1、R02-only件数r2,校验 m1 + r1 = R01输入件数 且 m2 + r2 = R02输入件数
|
||||
|
||||
## 输出
|
||||
|
||||
每个组输出一个json文件:`{プログラムID}_g{groupId}.json`
|
||||
|
||||
组数约束:输出组数必须与本规则定义的4组一致(g1〜g4),组号连续从1开始。禁止添加本规则未定义的组,禁止缺组。每组生成的records必须与对应组的定义完全一致。
|
||||
@@ -0,0 +1,188 @@
|
||||
# マッチング(N:1) 数据生成规则
|
||||
|
||||
## 概要
|
||||
|
||||
2个输入文件,R01为主件(N侧),R02为从件(1侧)。N件R01可对应1件R02(N:1)。
|
||||
|
||||
本规则定义9组数据:组1〜组5为正常系(覆盖MT-N001完全匹配、MT-N003的N:1匹配、MT-N004主件剩余、MT-N005从件剩余、MT-N010极端不平衡N:1),组6〜组9为异常系(覆盖MT-N006主键重复R01/R02、MT-N007键值乱序R01/R02)。
|
||||
|
||||
## 输入
|
||||
|
||||
- 前提条件:从详细设计书解析匹配键(A001>A002>A003...)
|
||||
- 输入文件:2个(R01主件、R02从件)
|
||||
- 键条件:组1/组3/组4(正常系)键值唯一且升序;组2/组5はR01同key多条(N件匹配)を意図的に生成、R02側は键值唯一
|
||||
- 组6(异常系):R01内故意生成重复键值(設計書が主件キーの一意性を要求する場合)
|
||||
- 组7/组8(异常系):R01/R02故意违反升序前提
|
||||
- 组9(异常系):R02内故意生成重复键值(1侧・从件键值唯一違反)
|
||||
|
||||
## 生成的数据组
|
||||
|
||||
| 组 | 用途 | R01记录数 | R02记录数 | 说明 |
|
||||
|----|------|-----------|-----------|------|
|
||||
| 1 | 1:1匹配 | 4 | 4 | 双方各N件全部1:1匹配(MT-N001),R01末尾追加n条多key变体(仅一个key不同→R01-only,验证键比较) |
|
||||
| 2 | N:1匹配 | 5 | 3 | R02一件对应R01多件,R01同key多条(MT-N003) |
|
||||
| 3 | 主件剩余-R01 | 4 | 2 | 从件读完主件剩余→W03(MT-N004) |
|
||||
| 4 | 从件剩余-R02 | 2 | 4 | 主件读完从件剩余→W02(MT-N005) |
|
||||
| 5 | 极端不平衡N:1 | 5 | 1 | R01=N条同key、R02=1条(MT-N010) |
|
||||
| 6 | 主键重复-R01(异常) | 4 | 3 | R01内同一键出现2次(MT-N006) |
|
||||
| 7 | 键值乱序-R01(异常) | 4 | 4 | R01违反升序前提(MT-N007) |
|
||||
| 8 | 键值乱序-R02(异常) | 4 | 4 | R02违反升序前提(MT-N007) |
|
||||
| 9 | 主键重复-R02(异常) | 3 | 4 | R02内同一键出现2次(MT-N006) |
|
||||
|
||||
### 组1:1:1匹配(MT-N001)
|
||||
|
||||
R01: a001→a002→a003→a004
|
||||
R02: a001→a002→a003→a004
|
||||
|
||||
records数组(按处理顺序):
|
||||
| 处理顺序 | 内容 | 说明 |
|
||||
|---------|------|------|
|
||||
| 第1条 | R01(a001)+R02(a001) | 匹配 |
|
||||
| 第2条 | R01(a002)+R02(a002) | 匹配 |
|
||||
| 第3条 | R01(a003)+R02(a003) | 匹配 |
|
||||
| 第4条 | R01(a004)+R02(a004) | 匹配 |
|
||||
|
||||
组1:需要注意当key为n个项目组合而成时,在R01的最后需要加上n条数据。和R02(a004)的所有key相比,只有当前第n个key与R02(a004)的key不一致。保证key的比较没有问题。
|
||||
|
||||
例(n=3):
|
||||
| R01 key1 | R01 key2 | R01 key3 | R02 key1 | R02 key2 | R02 key3 | 说明 |
|
||||
|----------|----------|----------|----------|----------|----------|------|
|
||||
| a004 | b003 | c004 | a004 | b004 | c004 | 仅第2个key不一致 |
|
||||
| a003 | b004 | c004 | a004 | b004 | c004 | 仅第1个key不一致 |
|
||||
| a004 | b004 | c003 | a004 | b004 | c004 | 仅第3个key不一致 |
|
||||
|
||||
n为实际解析出的key项目数(例中n=3仅为示意,追加条数必须等于实际key项目数,严禁按示例机械生成3条)。键项目数n=1时不追加多key测试数据。追加的每条记录必须恰好只改变一个key项目,且不得与R01既有记录完全重复。这n条追加记录与R02的任何key都不完全一致,作为R01-only追加在R01末尾(不影响前面全部匹配)。
|
||||
|
||||
### 组2:N:1匹配(MT-N003)
|
||||
|
||||
R01: a001→a002→a002→a002→a003(a002同key 3条)
|
||||
R02: a001→a002→a003
|
||||
|
||||
说明:R02(从件・1侧)1件に対しR01(主件・N侧)N件が対応するN:1匹配(MT-N003)。
|
||||
|
||||
records数组(按处理顺序):
|
||||
| 处理顺序 | 内容 | 说明 |
|
||||
|---------|------|------|
|
||||
| 第1条 | R01(a001)+R02(a001) | 匹配 |
|
||||
| 第2条 | R01(a002)+R02(a002) | 匹配(第1件) |
|
||||
| 第3条 | R01(a002)+R02(a002) | 匹配(第2件) |
|
||||
| 第4条 | R01(a002)+R02(a002) | 匹配(第3件) |
|
||||
| 第5条 | R01(a003)+R02(a003) | 匹配 |
|
||||
|
||||
### 组3:主件剩余-R01(MT-N004)
|
||||
|
||||
R01: a001→a002→a003→a004
|
||||
R02: a001→a002
|
||||
|
||||
records数组(按处理顺序):
|
||||
| 处理顺序 | 内容 | 说明 |
|
||||
|---------|------|------|
|
||||
| 第1条 | R01(a001)+R02(a001) | 匹配 |
|
||||
| 第2条 | R01(a002)+R02(a002) | 匹配 |
|
||||
| 第3条 | R01(a003) | R01-only(主件剩余→W03) |
|
||||
| 第4条 | R01(a004) | R01-only(主件剩余→W03) |
|
||||
|
||||
### 组4:从件剩余-R02(MT-N005)
|
||||
|
||||
R01: a001→a002
|
||||
R02: a001→a002→a003→a004
|
||||
|
||||
records数组(按处理顺序):
|
||||
| 处理顺序 | 内容 | 说明 |
|
||||
|---------|------|------|
|
||||
| 第1条 | R01(a001)+R02(a001) | 匹配 |
|
||||
| 第2条 | R01(a002)+R02(a002) | 匹配 |
|
||||
| 第3条 | R02(a003) | R02-only(从件剩余→W02) |
|
||||
| 第4条 | R02(a004) | R02-only(从件剩余→W02) |
|
||||
|
||||
### 组5:极端不平衡 N:1(MT-N010)
|
||||
|
||||
R01: a001→a001→a001→a001→a001(5条同key)
|
||||
R02: a001(1条)
|
||||
|
||||
说明:N:1プログラムではR01(主件)の同key多条は本来N件匹配として正常だが、MT-N010(N:1 极端不平衡)として R01=N条・R02=1条 の極端な件数差を確認する。
|
||||
|
||||
records数组(按处理顺序):
|
||||
| 处理顺序 | 内容 | 说明 |
|
||||
|---------|------|------|
|
||||
| 第1条 | R01(a001)+R02(a001) | 匹配(第1件) |
|
||||
| 第2条 | R01(a001)+R02(a001) | 同key第2条(N:1极端不平衡) |
|
||||
| 第3条 | R01(a001)+R02(a001) | 同key第3条 |
|
||||
| 第4条 | R01(a001)+R02(a001) | 同key第4条 |
|
||||
| 第5条 | R01(a001)+R02(a001) | 同key第5条 |
|
||||
|
||||
### 组6:主键重复-R01(异常系,MT-N006)
|
||||
|
||||
R01: a001→a002→a002(重复) →a003
|
||||
R02: a001→a002→a003
|
||||
|
||||
说明:N:1程序中R01(主件)同key多条属于正常(N件匹配),本组验证主件重复键时程序的处理(N件R01对应1件R02)。若设计书对R01也要求键值唯一(1:1相当处理),则本组用于验证重复键检出/错误处理,不得静默处理。
|
||||
|
||||
records数组(按处理顺序):
|
||||
| 处理顺序 | 内容 | 说明 |
|
||||
|---------|------|------|
|
||||
| 第1条 | R01(a001)+R02(a001) | 匹配 |
|
||||
| 第2条 | R01(a002)+R02(a002) | 匹配(第1件) |
|
||||
| 第3条 | R01(a002)+R02(a002) | 同key第2条(N件处理/重复检出) |
|
||||
| 第4条 | R01(a003)+R02(a003) | 匹配 |
|
||||
|
||||
### 组7:键值乱序-R01(异常系,MT-N007)
|
||||
|
||||
R01: a001→a003→a002→a004(a003先于a002,违反升序)
|
||||
R02: a001→a002→a003→a004(正常升序)
|
||||
|
||||
说明:R01违反升序前提,程序可能产生误匹配或未预期结果。本组用于确认程序对乱序输入的行为(按设计书确认期望结果),不要求生成"正确匹配"。
|
||||
|
||||
records数组(按文件读取顺序):
|
||||
| 处理顺序 | 内容 | 说明 |
|
||||
|---------|------|------|
|
||||
| 第1条 | R01(a001)+R02(a001) | 匹配 |
|
||||
| 第2条 | R01(a003)+R02(a002) | 乱序错位(键不一致) |
|
||||
| 第3条 | R01(a002)+R02(a003) | 乱序错位(键不一致) |
|
||||
| 第4条 | R01(a004)+R02(a004) | 匹配 |
|
||||
|
||||
### 组8:键值乱序-R02(异常系,MT-N007)
|
||||
|
||||
R01: a001→a002→a003→a004(正常升序)
|
||||
R02: a001→a003→a002→a004(a003先于a002,违反升序)
|
||||
|
||||
说明:R02违反升序前提,程序可能产生误匹配或未预期结果。本组用于确认程序对乱序输入的行为(按设计书确认期望结果),不要求生成"正确匹配"。
|
||||
|
||||
records数组(按文件读取顺序):
|
||||
| 处理顺序 | 内容 | 说明 |
|
||||
|---------|------|------|
|
||||
| 第1条 | R01(a001)+R02(a001) | 匹配 |
|
||||
| 第2条 | R01(a002)+R02(a003) | 乱序错位(键不一致) |
|
||||
| 第3条 | R01(a003)+R02(a002) | 乱序错位(键不一致) |
|
||||
| 第4条 | R01(a004)+R02(a004) | 匹配 |
|
||||
|
||||
### 组9:主键重复-R02(异常系,MT-N006)
|
||||
|
||||
R01: a001→a002→a003
|
||||
R02: a001→a002→a002(重复) →a003
|
||||
|
||||
说明:R02中键a002出现2次,违反"键值唯一"前提(N:1程序中从件・1侧键值必须唯一)。期望程序检出重复键并执行设计书规定的错误处理(错误输出/异常结束),不得静默处理。
|
||||
|
||||
records数组(按处理顺序):
|
||||
| 处理顺序 | 内容 | 说明 |
|
||||
|---------|------|------|
|
||||
| 第1条 | R01(a001)+R02(a001) | 匹配 |
|
||||
| 第2条 | R01(a002)+R02(a002) | 匹配 |
|
||||
| 第3条 | R02(a002) | 重复键(第2次出现) |
|
||||
| 第4条 | R01(a003)+R02(a003) | 匹配 |
|
||||
|
||||
## 数据生成步骤
|
||||
|
||||
1. 从前提条件解析匹配键字段(如 A001>A002>A003)
|
||||
2. 从COPYBOOK获取各字段的PIC定义
|
||||
3. 生成键值:键值以 a001/b001/c001 格式递增。组1/组3/组4保证键值唯一且升序;组2/组5生成R01同key多条(N件匹配);组6/组9生成重复键;组7/组8故意乱序
|
||||
4. 非键字段的数据生成:根据字段名关键词生成符合实际的数据,同时尽量保证每条相邻的数据的相同项目不一致。
|
||||
5. 按各组规则组装records数组
|
||||
6. 组号从1开始连续编号
|
||||
7. 生成后自检(MT-R001):统计每组匹配件数m1(R01中被匹配的件数)、m2(R02中被匹配的件数)、R01-only件数r1、R02-only件数r2,校验 m1 + r1 = R01输入件数 且 m2 + r2 = R02输入件数(组8/组9乱序组因匹配结果不确定,仅确认records数组包含R01与R02的全部输入记录)
|
||||
|
||||
## 输出
|
||||
|
||||
每个组输出一个json文件:`{プログラムID}_g{groupId}.json`
|
||||
|
||||
组数约束:输出组数必须与本规则定义的9组一致(g1〜g9),组号连续从1开始。禁止添加本规则未定义的组,禁止缺组。每组生成的records必须与对应组的定义完全一致。
|
||||
@@ -0,0 +1,57 @@
|
||||
# ランキング生成 データ生成規則
|
||||
|
||||
## 概要
|
||||
|
||||
集計結果をスコア降順に順位付けし、ランキングレポートを出力するプログラムのテストデータ。
|
||||
|
||||
本规则定义5组数据,覆盖基本ランキング、同点処理、境界、異常系、件数確認。
|
||||
|
||||
## 输入
|
||||
|
||||
- 詳細設計書の処理詳細(順位キー、スコア項目、降順/昇順、同点時の順位規則)
|
||||
- 入力ファイルのCOPYBOOKフィールド定義
|
||||
|
||||
## 生成データ組
|
||||
|
||||
| 组 | 用途 | 内容 |
|
||||
|----|------|------|
|
||||
| 1 | 基本ランキング | スコア降順で順位が正しく付与されるデータ(5件以上) |
|
||||
| 2 | 同点処理 | 同スコアの順位規則(同順位・次順位スキップ等)を確認するデータ |
|
||||
| 3 | 境界 | 1件のみ・0件のデータ |
|
||||
| 4 | 異常系 | スコアがPIC定義を超える・不正値のデータ(エラー処理確認) |
|
||||
| 5 | 件数確認 | 出力件数が入力件数と一致することを確認するデータ |
|
||||
|
||||
### 组1:基本ランキング
|
||||
|
||||
スコア: 95→80→72→65→50 の5件。降順に順位1〜5が付与されることを確認。
|
||||
|
||||
### 组2:同点処理
|
||||
|
||||
スコア: 80,80,70,70,50 の5件。同点時の順位規則(同順位付与、次順位スキップ)が設計書どおりであることを確認。
|
||||
|
||||
### 组3:境界
|
||||
|
||||
- 1件のみ(自身が1位)のデータ
|
||||
- 0件(空ファイル)のデータ
|
||||
|
||||
### 组4:異常系
|
||||
|
||||
スコアがPIC定義(例: 9(3))を超える値、または不正な値(非数値)を含むデータ。エラー処理が設計書どおりであることを確認。
|
||||
|
||||
### 组5:件数確認
|
||||
|
||||
ランキング出力件数(正常+異常)の合計が入力件数と一致するデータ。
|
||||
|
||||
## データ生成手順
|
||||
|
||||
1. 順位キー・スコア項目・順位規則の特定
|
||||
2. 组1〜组3: 正常系データ
|
||||
3. 组4: 異常系データ
|
||||
4. 组5: 件数確認データ
|
||||
5. 生成後自检:順位の連続性と出力件数の整合確認
|
||||
|
||||
## 出力
|
||||
|
||||
每组输出1个JSON文件:`{プログラムID}_g{groupId}.json`
|
||||
|
||||
组数约束:输出组数必须与本规则定义的5组一致(g1〜g5),组号连续从1开始。禁止添加本规则未定义的组,禁止缺组。
|
||||
@@ -0,0 +1,32 @@
|
||||
# レイアウト編集のみ(GETPUT) データ生成規則
|
||||
|
||||
## 概要
|
||||
|
||||
入力ファイルまたはDBからレコードを読み取り、項目の編集・変換を行ってそのまま出力ファイルに書き出すプログラムのテストデータを生成する。
|
||||
|
||||
処理パターン:READ → 編集/計算/変換 → WRITE(シンプルなパイプライン)
|
||||
|
||||
## 入力
|
||||
|
||||
- 詳細設計書の処理詳細(編集・変換内容)
|
||||
- 入力ファイルのCOPYBOOKフィールド定義
|
||||
- 出力レコード定義(出力項目と設定元の対応)
|
||||
|
||||
## 生成データ組
|
||||
|
||||
| 组 | 用途 | 内容 |
|
||||
|----|------|------|
|
||||
| 1 | 基本データ | 通常パターン2〜5件。各フィールドに有効な値を設定。 |
|
||||
|
||||
## データ生成手順
|
||||
|
||||
1. **入力フィールドの把握**: COPYBOOKから全入力フィールドを取得
|
||||
2. **データ生成**:
|
||||
- 通常値: 各フィールドのPIC定義に従い有効な値を生成
|
||||
- 異なる値: レコード間で同じ項目に異なる値を設定しバリエーションを確保
|
||||
3. **値のルール**:
|
||||
- PIC X(n): 左詰め・スペース埋め、実在しそうな文字列
|
||||
- PIC 9(n): 右詰め・先行ゼロ、実在しそうな数値
|
||||
- DATE/日付系: 実在しそうな日付
|
||||
- 金額/SALARY系: 現実的な金額
|
||||
4. **出力**: 1組 = 1 JSONファイル
|
||||
@@ -0,0 +1,64 @@
|
||||
# 内部テーブル検索 データ生成規則
|
||||
|
||||
## 概要
|
||||
|
||||
WORKING-STORAGE上の内部テーブル(OCCURS)を SEARCH / SEARCH ALL で検索し、該当データを取得するプログラムのテストデータ。
|
||||
|
||||
本规则定义5组数据,覆盖等值查找、未找到、顺序查找、可变长表边界、异常系。
|
||||
|
||||
## 输入
|
||||
|
||||
- 詳細設計書の処理詳細(検索キー、SEARCH/SEARCH ALLの区分、INDEX操作)
|
||||
- 内部テーブルのOCCURS定義(キー項目、OCCURS DEPENDING ON有無)
|
||||
|
||||
## 生成データ組
|
||||
|
||||
| 组 | 用途 | 内容 |
|
||||
|----|------|------|
|
||||
| 1 | SEARCH ALL 等值查找(T-N001) | KEYが一致するデータが存在するケース |
|
||||
| 2 | SEARCH ALL 未找到(T-N002) | KEYが一致するデータが存在しないケース |
|
||||
| 3 | 多键/顺序SEARCH(T-N003/T-N004) | 複合キー検索、SEARCHによる順次検索 |
|
||||
| 4 | OCCURS DEPENDING ON 边界(T-N006) | 可変長テーブルの境界(ODL=1、ODL=最大値) |
|
||||
| 5 | 异常系(T-A001〜T-A003) | 未ソート表、INDEX越界、ODL=0(空表) |
|
||||
|
||||
### 组1:SEARCH ALL 等值查找(T-N001)
|
||||
|
||||
テーブルに検索対象のキーが存在するデータ(例: キー a001〜a005 の5件、検索対象 a003)。
|
||||
|
||||
### 组2:SEARCH ALL 未找到(T-N002)
|
||||
|
||||
テーブルに検索対象のキーが存在しないデータ(例: a001〜a004、検索対象 z999)。
|
||||
|
||||
### 组3:多键/顺序SEARCH(T-N003/T-N004)
|
||||
|
||||
- 複合キー(主キー+副キー)で検索するデータ
|
||||
- SEARCH(非ALL)で順次探索するデータ(先頭・末尾・中間の位置バリエーション)
|
||||
|
||||
### 组4:OCCURS DEPENDING ON 边界(T-N006)
|
||||
|
||||
可変長テーブルで ODL=1(最小)と ODL=最大値(満杯)のデータ。境界での検索が正しく動作することを確認。
|
||||
|
||||
### 组5:异常系(T-A001〜T-A003)
|
||||
|
||||
- SEARCH ALL 対象テーブルが昇順でないデータ(誤命中確認)
|
||||
- INDEXがOCCURS範囲外になるデータ(T-A002)
|
||||
- ODL=0(空テーブル)のデータ(T-A003)
|
||||
|
||||
## 多keyテスト
|
||||
|
||||
検索キーが複数項目の場合、各組末尾に多keyテストを追加(キー項目ごとに1件ずつ基準と異なる値のデータ)。
|
||||
|
||||
## データ生成手順
|
||||
|
||||
1. テーブル定義と検索キーの特定
|
||||
2. 组1/组2: 存在・非存在データ
|
||||
3. 组3: 複合キー・順次検索データ
|
||||
4. 组4: ODL境界データ
|
||||
5. 组5: 異常系データ
|
||||
6. 生成後自检(T-R001):検索後のINDEX位置が期待どおりであること
|
||||
|
||||
## 出力
|
||||
|
||||
每组输出1个JSON文件:`{プログラムID}_g{groupId}.json`
|
||||
|
||||
组数约束:输出组数必须与本规则定义的5组一致(g1〜g5),组号连续从1开始。禁止添加本规则未定义的组,禁止缺组。
|
||||
@@ -0,0 +1,68 @@
|
||||
# 振り分け(EVALUATE) データ生成規則
|
||||
|
||||
## 概要
|
||||
|
||||
単一の入力ファイル(CSVまたは固定長)を読み取り、EVALUATE文による条件分岐に基づいて複数の出力ファイルに振り分けるプログラムのテストデータを生成する。
|
||||
|
||||
本规则定义5组数据,覆盖测试基准说明 §2.2「条件分支系测试(IF / EVALUATE)」中 EVALUATE文相关的 B-N006〜B-N009、B-A002。IF文による分岐は「振り分け(IF).md」を参照。
|
||||
|
||||
## 输入
|
||||
|
||||
- 詳細設計書の処理詳細(EVALUATE条件と出力先の対応)
|
||||
- 入力ファイルのCOPYBOOKフィールド定義
|
||||
|
||||
## 生成データ組
|
||||
|
||||
| 组 | 用途 | 内容 |
|
||||
|----|------|------|
|
||||
| 1 | EVALUATE WHEN 多值(B-N006) | 各WHEN分岐を1件ずつカバー |
|
||||
| 2 | EVALUATE ALSO(B-N007) | ALSOによる複数条件組合せの全パターン |
|
||||
| 3 | EVALUATE TRUE/FALSE(B-N008) | 条件式をTRUE/FALSEで判定するケース |
|
||||
| 4 | EVALUATE WHEN OTHER(B-N009) | 全WHEN不成立→WHEN OTHER到達データ |
|
||||
| 5 | EVALUATE 无WHEN OTHER(B-A002) | 全WHEN不成立→無操作になるデータ(○) |
|
||||
|
||||
### 组1:EVALUATE WHEN 多值(B-N006)
|
||||
|
||||
EVALUATEの各WHEN分岐を1件ずつカバーするデータ。WHENに複数値(VALUE THRU等)を指定する場合も各値に1件生成する。
|
||||
|
||||
例:WHEN 'T'→出力A、WHEN 'P'→出力B、WHEN 'M'→出力C
|
||||
|
||||
### 组2:EVALUATE ALSO(B-N007)
|
||||
|
||||
EVALUATE ... ALSO ... による複数条件の組合せ判定。各条件の組合せ(成立×成立、成立×不成立、不成立×成立、不成立×不成立)をカバーする。
|
||||
|
||||
### 组3:EVALUATE TRUE/FALSE(B-N008)
|
||||
|
||||
EVALUATE TRUE / EVALUATE FALSE による条件式判定。各条件式がTRUEになるデータ・FALSEになるデータを生成する。
|
||||
|
||||
### 组4:EVALUATE WHEN OTHER(B-N009)
|
||||
|
||||
全WHENの条件に該当しないデータを生成し、WHEN OTHER(デフォルト分岐)に到達することを確認する。
|
||||
|
||||
### 组5:EVALUATE 无WHEN OTHER(B-A002)
|
||||
|
||||
WHEN OTHERを持たないEVALUATEで、全WHENに該当しないデータ。無操作で終了することを確認する(○)。
|
||||
|
||||
## データ生成手順
|
||||
|
||||
1. **EVALUATE条件の特定**: 処理詳細からすべてのEVALUATE条件(WHEN、ALSO、TRUE/FALSE、WHEN OTHER)、対応する出力先、関係演算子を抽出する
|
||||
2. **分岐パターンの列挙**: 正常系(検証通過→正常出力)と異常系(エラー→ERROR-LOG)の全パターンを列挙する
|
||||
3. **データ生成**:
|
||||
- 各组の分岐パターンに最低1件のレコードを生成する
|
||||
- フィールド値はPIC定義に従い生成する
|
||||
- 正常系データ: 全チェックを通過する有効な値
|
||||
- 異常系データ: 該当するチェックに引っかかる値(不正な日付、不正な時刻、範囲外の値など)
|
||||
4. **値のルール**:
|
||||
- PIC X(n): 左詰め・スペース埋め
|
||||
- PIC 9(n): 右詰め・先行ゼロ
|
||||
- DATE/日付系: 実在しそうな日付(YYYYMMDD形式)、異常系では不正な日付(99999999等)
|
||||
- TIME/時刻系: 実在しそうな時刻(HHMM形式)、異常系では範囲外の時刻
|
||||
- STATUS系: 0/1/9 などのコード値
|
||||
- CSV項番号フィールド: 分割後の項目数
|
||||
5. **生成後自检**: 各WHEN分岐・ALSO組合せが漏れなくカバーされていること、各出力先に最低1件振り分けられることを確認する
|
||||
|
||||
## 出力
|
||||
|
||||
每组输出1个JSON文件:`{プログラムID}_g{groupId}.json`
|
||||
|
||||
组数约束:输出组数必须与本规则定义的5组一致(g1〜g5),组号连续从1开始。禁止添加本规则未定义的组,禁止缺组。正常系→異常系→特殊分岐の順にレコードを並べる。
|
||||
@@ -0,0 +1,73 @@
|
||||
# 振り分け(IF) データ生成規則
|
||||
|
||||
## 概要
|
||||
|
||||
単一の入力ファイル(CSVまたは固定長)を読み取り、IF文による条件分岐に基づいて複数の出力ファイルに振り分けるプログラムのテストデータを生成する。
|
||||
|
||||
本规则定义5组数据,覆盖测试基准说明 §2.2「条件分支系测试(IF / EVALUATE)」中 IF文相关的 B-N001〜B-N005。B-A001(IF未闭合)は编译错误であり运行时测试対象外(代码审查范畴)のためデータ组としない。EVALUATE文による分岐は「振り分け(EVALUATE).md」を参照。
|
||||
|
||||
## 输入
|
||||
|
||||
- 詳細設計書の処理詳細(IF条件と出力先の対応)
|
||||
- 入力ファイルのCOPYBOOKフィールド定義
|
||||
|
||||
## 生成データ組
|
||||
|
||||
| 组 | 用途 | 内容 |
|
||||
|----|------|------|
|
||||
| 1 | IF 2路分支(B-N001) | IF条件成立/不成立(ELSE)を各1件以上カバー |
|
||||
| 2 | IF 3路分支 ELSE IF(B-N002) | ELSE IF 链式分支の全分岐を各1件カバー |
|
||||
| 3 | IF 复合条件 AND/OR(B-N003) | 複数条件のAND/OR組合せ全パターン |
|
||||
| 4 | IF 88-level 条件名(B-N004) | 88条件名の成立/不成立 |
|
||||
| 5 | IF 嵌套3层(B-N005) | 3層ネストIFの全組合せ(外層×中層×内層) |
|
||||
|
||||
### 组1:IF 2路分支(B-N001)
|
||||
|
||||
IF条件成立→出力A、不成立(ELSE)→出力B の2路分岐。成立・不成立それぞれ1件以上のデータを生成する。
|
||||
|
||||
例:STATUS='1'→正常出力、STATUS='9'→取消出力
|
||||
|
||||
### 组2:IF 3路分支 ELSE IF(B-N002)
|
||||
|
||||
IF → ELSE IF → ELSE の链式分支。各分岐(3路)に1件ずつデータを生成する。
|
||||
|
||||
例:STATUS='0'→出力A、STATUS='1'→出力B、それ以外(ELSE)→出力C
|
||||
|
||||
### 组3:IF 复合条件 AND/OR(B-N003)
|
||||
|
||||
複数条件の組合せをカバーする。AND/ORそれぞれについて成立・不成立の全パターンを生成する。
|
||||
|
||||
例(AND):STATUS='1' AND TIME >= '0900' → 成立/STATUS='1' AND TIME < '0900' → 不成立
|
||||
例(OR):STATUS='1' OR STATUS='2' → 成立/STATUS='9' → 不成立
|
||||
|
||||
### 组4:IF 88-level 条件名(B-N004)
|
||||
|
||||
88-level条件名(例:88 WS-VALID VALUE '0' '1')による判定。条件名成立・不成立のデータを生成する。
|
||||
|
||||
### 组5:IF 嵌套3层(B-N005)
|
||||
|
||||
3層ネストIF(外層IFの中で中層IF、さらに内層IF)の全組合せデータ。内層IFが外層IFの変数を参照するケースを含む。
|
||||
|
||||
## データ生成手順
|
||||
|
||||
1. **IF条件の特定**: 処理詳細からすべてのIF条件、対応する出力先、関係演算子を抽出する
|
||||
2. **分岐パターンの列挙**: 正常系(検証通過→正常出力)と異常系(エラー→ERROR-LOG)の全パターンを列挙する
|
||||
3. **データ生成**:
|
||||
- 各组の分岐パターンに最低1件のレコードを生成する
|
||||
- フィールド値はPIC定義に従い生成する
|
||||
- 正常系データ: 全チェックを通過する有効な値
|
||||
- 異常系データ: 該当するチェックに引っかかる値(不正な日付、不正な時刻、範囲外の値など)
|
||||
4. **値のルール**:
|
||||
- PIC X(n): 左詰め・スペース埋め
|
||||
- PIC 9(n): 右詰め・先行ゼロ
|
||||
- DATE/日付系: 実在しそうな日付(YYYYMMDD形式)、異常系では不正な日付(99999999等)
|
||||
- TIME/時刻系: 実在しそうな時刻(HHMM形式)、異常系では範囲外の時刻
|
||||
- STATUS系: 0/1/9 などのコード値
|
||||
- CSV項番号フィールド: 分割後の項目数
|
||||
5. **生成後自检**: 各IF分岐が漏れなくカバーされていること、各出力先に最低1件振り分けられることを確認する
|
||||
|
||||
## 出力
|
||||
|
||||
每组输出1个JSON文件:`{プログラムID}_g{groupId}.json`
|
||||
|
||||
组数约束:输出组数必须与本规则定义的5组一致(g1〜g5),组号连续从1开始。禁止添加本规则未定义的组,禁止缺组。正常系→異常系→特殊分岐の順にレコードを並べる。
|
||||
@@ -0,0 +1,55 @@
|
||||
# 項目チェック(半角20桁-4桁) データ生成規則
|
||||
|
||||
## 概要
|
||||
|
||||
入力ファイル(CSVまたは固定長)の半角フィールドに対し、半角20桁/4桁の桁数チェック(半角英数字・全角混入チェック含む)を実施し、正常データと異常データを別々の出力ファイルに振り分けるプログラムのテストデータを生成する。
|
||||
|
||||
本规则定义4组数据,覆盖测试基准说明 §2.2「校验测试(含重复 / 不含重复 / 半角)」中半角校验相关的 VF-N005、VF-N006、VF-A001、VF-A002。字段校验・重复检测は「項目チェック(重複含まず).md」を参照。
|
||||
|
||||
## 输入
|
||||
|
||||
- 詳細設計書の処理詳細(半角チェック対象フィールド、桁数)
|
||||
- 入力ファイルのCOPYBOOKフィールド定義
|
||||
|
||||
## 生成データ組
|
||||
|
||||
| 组 | 用途 | 内容 |
|
||||
|----|------|------|
|
||||
| 1 | 半角长度20桁(VF-N005) | 半角20桁ちょうど・20桁以内→通過するデータ |
|
||||
| 2 | 半角长度4桁(VF-N006) | 半角4桁ちょうど・4桁以内→通過するデータ |
|
||||
| 3 | 半角超长21桁(VF-A001) | 半角21桁→截断/エラーになるデータ |
|
||||
| 4 | 全角混入(VF-A002) | 半角フィールドに全角文字が入る→エラーになるデータ |
|
||||
|
||||
### 组1:半角长度20桁(VF-N005)
|
||||
|
||||
半角フィールドに20桁ちょうど・20桁以内の値を設定するデータ。通過することを確認。
|
||||
|
||||
### 组2:半角长度4桁(VF-N006)
|
||||
|
||||
半角フィールドに4桁ちょうど・4桁以内の値を設定するデータ。通過することを確認。
|
||||
|
||||
### 组3:半角超长21桁(VF-A001)
|
||||
|
||||
半角フィールドに21桁の値を設定するデータ。截断またはエラー処理が設計書どおりであることを確認。
|
||||
|
||||
### 组4:全角混入(VF-A002)
|
||||
|
||||
半角フィールド(PIC X 半角域)に全角文字を混入させたデータ。エラーになることを確認。
|
||||
|
||||
## データ生成手順
|
||||
|
||||
1. **半角フィールドの特定**: 処理詳細から半角チェック対象フィールドと桁数(20桁/4桁)を特定する
|
||||
2. **データ生成**:
|
||||
- 组1/组2: 半角20桁・4桁以内の正常値
|
||||
- 组3: 21桁の超過値
|
||||
- 组4: 全角文字混入値
|
||||
3. **値のルール**:
|
||||
- 半角チェック: 20桁以内→通過、21桁→エラー、4桁以内→通過、全角混入→エラー
|
||||
- 半角英大文字チェック(設計書指定時): 英大文字のみ→通過、小文字・数字混入→エラー
|
||||
4. **生成後自检(VF-R001)**: 正常件+エラー件=入力件数 を確認する
|
||||
|
||||
## 出力
|
||||
|
||||
每组输出1个JSON文件:`{プログラムID}_g{groupId}.json`
|
||||
|
||||
组数约束:输出组数必须与本规则定义的4组一致(g1〜g4),组号连续从1开始。禁止添加本规则未定义的组,禁止缺组。
|
||||
@@ -0,0 +1,82 @@
|
||||
# 項目チェック(重複含まず) データ生成規則
|
||||
|
||||
## 概要
|
||||
|
||||
入力ファイル(CSVまたは固定長)の各レコードに対し、複数の項目チェック(値域・桁数・コード値等)と重複チェック(重複含まず)を実施し、正常データと異常データを別々の出力ファイルに振り分けるプログラムのテストデータを生成する。
|
||||
|
||||
本规则定义5组数据,覆盖测试基准说明 §2.2「校验测试(含重复 / 不含重复 / 半角)」中字段校验・重复检测相关的 VF-N001〜VF-N004、VF-R001。半角20桁/4桁チェックは「項目チェック(半角20桁-4桁).md」を参照。
|
||||
|
||||
## 输入
|
||||
|
||||
- 詳細設計書の処理詳細(チェック項目一覧、重複キー)
|
||||
- 入力ファイルのCOPYBOOKフィールド定義
|
||||
|
||||
## 生成データ組
|
||||
|
||||
| 组 | 用途 | 内容 |
|
||||
|----|------|------|
|
||||
| 1 | 字段校验通过(VF-N001) | 全項目が許容範囲内→正常出力されるデータ |
|
||||
| 2 | 字段校验拒绝(VF-N002) | 不正値(日付・時刻・数値・コード値など)→エラー出力ファイルのデータ |
|
||||
| 3 | 重复检测 正常(VF-N003) | キーが初回出現→通過するデータ |
|
||||
| 4 | 重复检测 重复(VF-N004) | 同一キー2回目→エラー出力されるデータ + 末尾に多keyテスト |
|
||||
| 5 | 件数确认(VF-R001) | 正常出力件数+エラー出力件数=入力件数 を確認するデータ |
|
||||
|
||||
### 组1:字段校验通过(VF-N001)
|
||||
|
||||
全チェック項目を通過する有効な値のレコード(3〜5件)。各フィールドはPIC定義どおり、日付・時刻・コード値とも許容範囲内。
|
||||
|
||||
### 组2:字段校验拒绝(VF-N002)
|
||||
|
||||
各チェック項目に特化した不正値を含むレコード:
|
||||
- 日付チェック: 不正日付(99999999等)
|
||||
- 時刻チェック: 範囲外(2500等)
|
||||
- 数値チェック: 非数値・桁数不足
|
||||
- フィールド数チェック: 項目数不足/過剰(CSV)
|
||||
- コード値チェック: 無効コード
|
||||
|
||||
### 组3:重复检测 正常(VF-N003)
|
||||
|
||||
全レコードのキーが異なるデータ(重複なし)。初回出現キーのみで全件通過することを確認。
|
||||
|
||||
### 组4:重复检测 重复(VF-N004)
|
||||
|
||||
同一キーを2件含むデータ。2回目の出現でエラー出力されることを確認。キーが複数項目の場合、基準キーに対し各キー項目のみ異なるN件を追加し、完全一致時のみ重複と判定されることを検証(多keyテスト)。
|
||||
|
||||
### 组5:件数确认(VF-R001)
|
||||
|
||||
正常出力件数とエラー出力件数の合計が入力件数と一致することを確認するデータ(正常件+错误件=输入件数)。
|
||||
|
||||
## 多keyテスト
|
||||
|
||||
重複チェックのキーが複数項目の場合、组4の末尾に追加。基準レコードの各キー項目のみ異なるN件を生成し、完全一致時のみ重複判定されることを検証する。
|
||||
|
||||
需要注意当key为n个项目组合而成时,需要在末尾追加n条数据。以基准数据的所有key为准,只有当前第n个key与基准不一致。保证key的比较没有问题。
|
||||
|
||||
例(n=3,基准 (a001, b001, c001)):
|
||||
- 追加1: (a002, b001, c001) → 仅第1个key不同
|
||||
- 追加2: (a001, b002, c001) → 仅第2个key不同
|
||||
- 追加3: (a001, b001, c002) → 仅第3个key不同
|
||||
|
||||
n为实际解析出的key项目数(例中n=3仅为示意,追加条数必须等于实际key项目数)。键项目数n=1时不追加多key测试数据。追加的每条记录必须恰好只改变一个key项目,且不得与既有记录完全重复。
|
||||
|
||||
## データ生成手順
|
||||
|
||||
1. **チェック項目の特定**: 処理詳細からすべてのチェック項目(フィールド数、値域、重複キー、時刻範囲、コード値など)を抽出する
|
||||
2. **重複キーの特定**: 重複チェックのキー項目を特定する
|
||||
3. **データ生成**:
|
||||
- 组1: 全チェックを通過する有効値
|
||||
- 组2: 各チェック項目に特化した不正値
|
||||
- 组3/组4: 重複なし/重複ありデータ
|
||||
- 组5: 件数整合確認データ
|
||||
4. **値のルール**:
|
||||
- フィールド数チェック: 正しい項目数/足りない/多い
|
||||
- 日付チェック: 正常日付 vs 不正日付 (99999999等)
|
||||
- 時刻チェック: 正常時刻 (0900-1800) vs 範囲外 (2500等)
|
||||
- コード値チェック: 有効コード vs 無効コード
|
||||
- 社員番号: 8桁数字 vs 非数字/桁数不足
|
||||
|
||||
## 出力
|
||||
|
||||
每组输出1个JSON文件:`{プログラムID}_g{groupId}.json`
|
||||
|
||||
组数约束:输出组数必须与本规则定义的5组一致(g1〜g5),组号连续从1开始。禁止添加本规则未定义的组,禁止缺组。
|
||||
@@ -0,0 +1,62 @@
|
||||
# 2段階マッチング(1:1⇒1:1) データ生成規則
|
||||
|
||||
## 概要
|
||||
|
||||
第1段階のマッチングで中間ファイルを生成し、第2段階で再度1:1マッチングするプログラムのテストデータ(AM-N001)。
|
||||
|
||||
本规则定义4组数据:完全匹配、剩余键、中间文件/键异常、件数确认。
|
||||
|
||||
## 输入
|
||||
|
||||
- 詳細設計書のキー項目一覧(第1段階キー、第2段階キー)
|
||||
- 各入力ファイル・中間ファイルのCOPYBOOKフィールド定義
|
||||
- キー条件:各段階ともキー昇順ソート済み(重複NG)
|
||||
|
||||
## 生成データ組
|
||||
|
||||
| 组 | 用途 | 内容 |
|
||||
|----|------|------|
|
||||
| 1 | 二级1:1→1:1完全匹配(AM-N001) | 第1段階 R01×R02 をキーAで1:1完全マッチ(4件)→中間M01;第2段階 M01×R03 をキーBで1:1完全マッチ(4件) |
|
||||
| 2 | 剩余键(MT-N004/N005) | 第1段階・第2段階それぞれで主件/從件の剩余キーを含むデータ |
|
||||
| 3 | 中间文件/键异常(AM-A001/A002) | 中間ファイルOPEN失敗(環境テスト)、第1段階キーAと第2段階キーBが異なる設計のデータ |
|
||||
| 4 | 件数确认(AM-R001) | 第1段階・第2段階それぞれの出力件数(マッチ件数+剩余件数)が入力件数と一致するデータ |
|
||||
|
||||
### 组1:完全匹配(AM-N001)
|
||||
|
||||
第1段階: R01×R02 をキーAで1:1完全マッチ(a001〜a004、4件)→中間ファイルM01
|
||||
第2段階: M01×R03 をキーBで1:1完全マッチ(b001〜b004、4件)
|
||||
|
||||
### 组2:剩余键(MT-N004/N005)
|
||||
|
||||
第1段階: R01にR02に無いキーを末尾に1件(主件剩余)、R02にR01に無いキーを先頭に1件(從件剩余)
|
||||
第2段階: M01×R03 でも同様に剩余キーを1件ずつ含める
|
||||
|
||||
### 组3:中间文件/键异常(AM-A001/A002)
|
||||
|
||||
- 中間ファイルがOPENできないケース(環境テスト項目として明記)
|
||||
- 第1段階キーAと第2段階キーBが異なる設計のデータで、第2段階のマッチ結果が設計書どおりになること
|
||||
|
||||
### 组4:件数确认(AM-R001)
|
||||
|
||||
第1段階出力件数と第2段階出力件数(マッチ件数+剩余件数)の合計が入力件数と一致することを確認するデータ。
|
||||
|
||||
## 多keyテスト
|
||||
|
||||
第1段階・第2段階のキーが複数項目の場合、各組末尾に多keyテストを追加(既存マッチング規則と同じ手順)。
|
||||
|
||||
需要注意当key为n个项目组合而成时,需要在末尾追加n条数据。以基准数据的所有key为准,只有当前第n个key与基准不一致。保证key的比较没有问题。键项目数n=1时不追加多key测试数据。
|
||||
|
||||
## 数据生成步骤
|
||||
|
||||
1. 第1段階キー・第2段階キーの特定
|
||||
2. 组1: 完全マッチデータ(各4件)
|
||||
3. 组2: 剩余キーを各段階に1件ずつ
|
||||
4. 组3: キー不一致データ
|
||||
5. 各組末尾に多keyテスト
|
||||
6. 生成後自检(AM-R001):各段の出力件数の整合確認
|
||||
|
||||
## 出力
|
||||
|
||||
每组输出1个JSON文件:`{プログラムID}_g{groupId}.json`
|
||||
|
||||
组数约束:输出组数必须与本规则定义的4组一致(g1〜g4),组号连续从1开始。禁止添加本规则未定义的组,禁止缺组。
|
||||
@@ -0,0 +1,62 @@
|
||||
# 2段階マッチング(M:N⇒M:N) データ生成規則
|
||||
|
||||
## 概要
|
||||
|
||||
第1段階のM:Nマッチング(M×N件の直積)で中間ファイルを生成し、第2段階で再度M:Nマッチングするプログラムのテストデータ(AM-N008)。
|
||||
|
||||
本规则定义4组数据:M:N匹配(直積)、不平衡、中间文件/键异常、件数确认。
|
||||
|
||||
## 输入
|
||||
|
||||
- 詳細設計書のキー項目一覧(第1段階キー、第2段階キー)
|
||||
- 各入力ファイル・中間ファイルのCOPYBOOKフィールド定義
|
||||
- キー条件:各段階ともキー昇順ソート済み
|
||||
|
||||
## 生成データ組
|
||||
|
||||
| 组 | 用途 | 内容 |
|
||||
|----|------|------|
|
||||
| 1 | 二级M:N→M:N(AM-N008) | 第1段階 R01×R02 を同キーでM:Nマッチ(M×N件の直積)→中間M01;第2段階 M01×R03 を同キーで再マッチ(M×N件) |
|
||||
| 2 | 不平衡(MT-N009/N010) | M=1件/N=N件、M=N件/N=1件 の极端不平衡データ |
|
||||
| 3 | 中间文件/键异常(AM-A001/A002) | 中間ファイルOPEN失敗(環境テスト)、第1段階キーAと第2段階キーBが異なる設計のデータ |
|
||||
| 4 | 件数确认(AM-R001) | 第1段階・第2段階それぞれの出力件数(マッチ件数+剩余件数)が入力件数と一致するデータ |
|
||||
|
||||
### 组1:M:N匹配(AM-N008)
|
||||
|
||||
第1段階: R01(同キーM件)×R02(同キーN件)をキーAでM:Nマッチ→M×N件→中間ファイルM01
|
||||
第2段階: M01×R03 をキーBで再マッチ(M×N件)
|
||||
|
||||
### 组2:不平衡(MT-N009/N010)
|
||||
|
||||
- M=1件、N=N件(同キー)のデータ
|
||||
- M=N件、N=1件(同キー)のデータ
|
||||
|
||||
### 组3:中间文件/键异常(AM-A001/A002)
|
||||
|
||||
- 中間ファイルがOPENできないケース(環境テスト項目として明記)
|
||||
- 第1段階キーAと第2段階キーBが異なる設計のデータで、第2段階のマッチ結果が設計書どおりになること
|
||||
|
||||
### 组4:件数确认(AM-R001)
|
||||
|
||||
第1段階出力件数と第2段階出力件数(マッチ件数+剩余件数)の合計が入力件数と一致することを確認するデータ。
|
||||
|
||||
## 多keyテスト
|
||||
|
||||
第1段階・第2段階のキーが複数項目の場合、各組末尾に多keyテストを追加(既存マッチング規則と同じ手順)。
|
||||
|
||||
需要注意当key为n个项目组合而成时,需要在末尾追加n条数据。以基准数据的所有key为准,只有当前第n个key与基准不一致。保证key的比较没有问题。键项目数n=1时不追加多key测试数据。
|
||||
|
||||
## 数据生成步骤
|
||||
|
||||
1. 第1段階キー・第2段階キーの特定
|
||||
2. 组1: M:N直積マッチデータ
|
||||
3. 组2: 不平衡データ
|
||||
4. 组3: キー不一致データ
|
||||
5. 各組末尾に多keyテスト
|
||||
6. 生成後自检(AM-R001):各段の出力件数の整合確認
|
||||
|
||||
## 出力
|
||||
|
||||
每组输出1个JSON文件:`{プログラムID}_g{groupId}.json`
|
||||
|
||||
组数约束:输出组数必须与本规则定义的4组一致(g1〜g4),组号连续从1开始。禁止添加本规则未定义的组,禁止缺组。
|
||||
@@ -0,0 +1,63 @@
|
||||
# 2段階マッチング(N:1⇒N:1) データ生成規則
|
||||
|
||||
## 概要
|
||||
|
||||
第1段階のN:1マッチングで中間ファイルを生成し、第2段階で再度N:1マッチングするプログラムのテストデータ(AM-N002)。
|
||||
|
||||
本规则定义4组数据:N:1匹配、剩余/不平衡、中间文件/键异常、件数确认。
|
||||
|
||||
## 输入
|
||||
|
||||
- 詳細設計書のキー項目一覧(第1段階キー、第2段階キー)
|
||||
- 各入力ファイル・中間ファイルのCOPYBOOKフィールド定義
|
||||
- キー条件:各段階ともキー昇順ソート済み(主件の重複NG)
|
||||
|
||||
## 生成データ組
|
||||
|
||||
| 组 | 用途 | 内容 |
|
||||
|----|------|------|
|
||||
| 1 | 二级N:1→N:1(AM-N002) | 第1段階 R01(主N件)×R02(從1件)をキーAでN:1マッチ→N件→中間M01;第2段階 M01×R03(從1件)をキーBでN:1マッチ→N件 |
|
||||
| 2 | 剩余/不平衡(MT-N004/N005/N009) | 各段階で主件/從件の剩余キーと极端不平衡(R01=1件、R02=N件)を含むデータ |
|
||||
| 3 | 中间文件/键异常(AM-A001/A002) | 中間ファイルOPEN失敗(環境テスト)、第1段階キーAと第2段階キーBが異なる設計のデータ |
|
||||
| 4 | 件数确认(AM-R001) | 第1段階・第2段階それぞれの出力件数(マッチ件数+剩余件数)が入力件数と一致するデータ |
|
||||
|
||||
### 组1:N:1匹配(AM-N002)
|
||||
|
||||
第1段階: R01(主N件、同キー2件)×R02(從1件)をキーAでN:1マッチ→N件→中間ファイルM01
|
||||
第2段階: M01×R03(從1件)をキーBでN:1マッチ→N件
|
||||
|
||||
### 组2:剩余/不平衡(MT-N004/N005/N009)
|
||||
|
||||
- 主件剩余: R01にR02に無いキーを末尾に追加
|
||||
- 從件剩余: R02にR01に無いキーを追加
|
||||
- 极端不平衡: R01=1件、R02=N件(同キー)のデータ
|
||||
|
||||
### 组3:中间文件/键异常(AM-A001/A002)
|
||||
|
||||
- 中間ファイルがOPENできないケース(環境テスト項目として明記)
|
||||
- 第1段階キーAと第2段階キーBが異なる設計のデータで、第2段階のマッチ結果が設計書どおりになること
|
||||
|
||||
### 组4:件数确认(AM-R001)
|
||||
|
||||
第1段階出力件数と第2段階出力件数(マッチ件数+剩余件数)の合計が入力件数と一致することを確認するデータ。
|
||||
|
||||
## 多keyテスト
|
||||
|
||||
第1段階・第2段階のキーが複数項目の場合、各組末尾に多keyテストを追加(既存マッチング規則と同じ手順)。
|
||||
|
||||
需要注意当key为n个项目组合而成时,需要在末尾追加n条数据。以基准数据的所有key为准,只有当前第n个key与基准不一致。保证key的比较没有问题。键项目数n=1时不追加多key测试数据。
|
||||
|
||||
## 数据生成步骤
|
||||
|
||||
1. 第1段階キー・第2段階キーの特定
|
||||
2. 组1: N:1マッチデータ
|
||||
3. 组2: 剩余・不平衡データ
|
||||
4. 组3: キー不一致データ
|
||||
5. 各組末尾に多keyテスト
|
||||
6. 生成後自检(AM-R001):各段の出力件数の整合確認
|
||||
|
||||
## 出力
|
||||
|
||||
每组输出1个JSON文件:`{プログラムID}_g{groupId}.json`
|
||||
|
||||
组数约束:输出组数必须与本规则定义的4组一致(g1〜g4),组号连续从1开始。禁止添加本规则未定义的组,禁止缺组。
|
||||
Reference in New Issue
Block a user