feat: 多轮运行 + GCOV 合并 + JSON 出力 + DesignDataGenerator
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
# 50分割 データ生成規則
|
||||
|
||||
## 概要
|
||||
|
||||
入力ファイルのレコードを50件ずつ分割し、複数の出力ファイルに振り分けるプログラムのテストデータ。
|
||||
|
||||
## 入力
|
||||
|
||||
- 入力ファイルのCOPYBOOKフィールド定義
|
||||
|
||||
## 生成データ組
|
||||
|
||||
| 组 | 用途 | 内容 |
|
||||
|----|------|------|
|
||||
| 1 | 通常分割 | 51件以上のデータ(50件の境界を超えるケース)+ 50件未満のデータ |
|
||||
|
||||
## データ生成手順
|
||||
|
||||
1. 入力ファイルのフィールド定義を取得
|
||||
2. 組1に51件以上のレコードを生成(分割境界テスト用)
|
||||
3. 各フィールドはPIC定義に従い実在しそうな値を生成
|
||||
|
||||
## 出力
|
||||
|
||||
各組1 JSONファイル。
|
||||
@@ -0,0 +1,28 @@
|
||||
# CSV→FB変換 データ生成規則
|
||||
|
||||
## 概要
|
||||
|
||||
CSV形式の入力ファイルを読み取り、固定長(FB)レコードに変換して出力するプログラムのテストデータ。
|
||||
CSVのカンマ区切り分解、引用符内改行処理、項目チェックを含む。
|
||||
|
||||
## 入力
|
||||
|
||||
- 入力CSVの項目定義(処理詳細から特定)
|
||||
- 出力COPYBOOKのフィールド定義
|
||||
|
||||
## 生成データ組
|
||||
|
||||
| 组 | 用途 | 内容 |
|
||||
|----|------|------|
|
||||
| 1 | 正常データ | 全項目が正しいCSVレコード 3〜5件。異なる値のバリエーションを確保 |
|
||||
| 2 | 異常データ | 項目数不足、項目数過剰、不正な値のレコードを含むデータ |
|
||||
|
||||
## データ生成手順
|
||||
|
||||
1. CSVの項目数と項目名を処理詳細から特定
|
||||
2. 正常データ: カンマ区切りCSV行文字列を生成。値はPIC定義に従う
|
||||
3. 異常データ: 項目数不一致、空値、不正フォーマットを含む
|
||||
|
||||
## 出力
|
||||
|
||||
入力はCSV文字列(カンマ区切り)として1フィールドに格納。各組1 JSONファイル。
|
||||
@@ -0,0 +1,79 @@
|
||||
# DB更新 データ生成規則
|
||||
|
||||
## 概要
|
||||
|
||||
入力ファイルのレコードをDBテーブルにINSERT/UPDATE/DELETEするプログラムのテストデータを生成する。
|
||||
出力はSQL INSERTファイル。
|
||||
|
||||
## 入力
|
||||
|
||||
- 詳細設計書の処理詳細(SQL操作と分岐条件)
|
||||
- 入力ファイルのCOPYBOOKフィールド定義
|
||||
- DBテーブル定義と主キー
|
||||
- キー項目一覧
|
||||
|
||||
## 生成データ組
|
||||
|
||||
| 组 | 用途 | 内容 | 条件 |
|
||||
|----|------|------|------|
|
||||
| 1 | 正常INSERT | 5件以上の新規INSERT + 末尾に多keyテスト | 必須 |
|
||||
| 2 | INSERT+UPDATE | 3件以上の重複主キーレコード(UPDATEトリガー用)+ 末尾に多keyテスト | 必須 |
|
||||
| 3 | DELETE対象 | 2件以上のDELETE対象レコード + 末尾に多keyテスト | 処理詳細にDELETE操作がある場合のみ |
|
||||
|
||||
## 多keyテスト(各組の末尾に追加)
|
||||
|
||||
キーが複数項目(例: A001, A002, A003)で構成される場合、以下のテストデータを追加する。
|
||||
|
||||
**手順:**
|
||||
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対象)**: 処理詳細にDELETE操作がある場合のみ生成
|
||||
- STATUS='9'などの削除フラグ付きデータ
|
||||
- 末尾に多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の後にカンマ区切りで複数行)
|
||||
@@ -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,25 @@
|
||||
# MERGE(複数ファイル結合) データ生成規則
|
||||
|
||||
## 概要
|
||||
|
||||
複数の入力ファイルをキーでソート・マージし、統合された1つの出力ファイルを生成するプログラムのテストデータ。
|
||||
|
||||
## 入力
|
||||
|
||||
- 詳細設計書のキー項目一覧(マージキー)
|
||||
- 各入力ファイルのCOPYBOOKフィールド定義
|
||||
|
||||
## 生成データ組
|
||||
|
||||
| 组 | 用途 | 内容 |
|
||||
|----|------|------|
|
||||
| 1 | 全ファイルカバー | 全入力ファイルのデータが出力に反映されるデータ + 末尾多keyテスト |
|
||||
| 2 | キー境界 | 同一キー値が複数ファイルに分散しているケース + 末尾多keyテスト |
|
||||
|
||||
## 多keyテスト
|
||||
|
||||
キーが複数項目の場合、各組末尾に追加。各キー項目のみ異なるN件を生成し、正しいキーでマージされることを検証。
|
||||
|
||||
## 出力
|
||||
|
||||
各組1 JSONファイル。
|
||||
@@ -0,0 +1,31 @@
|
||||
# SELECT処理 データ生成規則
|
||||
|
||||
## 概要
|
||||
|
||||
DBテーブルから条件付きSELECTでデータを取得し、取得結果に基づいて処理を行うプログラムのテストデータ。入力はDB(SELECT結果)であり、出力はSQL INSERTファイル。
|
||||
|
||||
## 入力
|
||||
|
||||
- 詳細設計書の処理詳細(SELECT文のWHERE条件)
|
||||
- DBテーブル定義(テーブル名、カラム、主キー)
|
||||
|
||||
## 生成データ組
|
||||
|
||||
| 组 | 用途 | 内容 |
|
||||
|----|------|------|
|
||||
| 1 | 基本データ | SELECT条件にマッチするデータ + マッチしないデータ + 末尾多keyテスト |
|
||||
|
||||
## 多keyテスト
|
||||
|
||||
WHERE条件に複数キーが関わる場合、基準データに対し各キー項目のみ異なるN件を生成。マッチするパターンとマッチしないパターンの両方をカバー。
|
||||
|
||||
## データ生成手順
|
||||
|
||||
1. SELECT文のWHERE条件を抽出
|
||||
2. 条件にマッチするレコードを生成
|
||||
3. 条件にマッチしないレコード(境界値)を生成
|
||||
4. 多keyテストデータを追加
|
||||
|
||||
## 出力
|
||||
|
||||
各組1 SQL INSERTファイル。
|
||||
@@ -0,0 +1,32 @@
|
||||
# キーブレイク(集約) データ生成規則
|
||||
|
||||
## 概要
|
||||
|
||||
キー項目でソート済みの入力ファイルを読み取り、キーブレイク時に集約レコード(カウント・合計など)を出力するプログラムのテストデータを生成する。
|
||||
|
||||
## 入力
|
||||
|
||||
- 詳細設計書のキー項目一覧
|
||||
- 入力ファイルのCOPYBOOKフィールド定義
|
||||
|
||||
## 生成データ組
|
||||
|
||||
| 组 | 用途 | 内容 |
|
||||
|----|------|------|
|
||||
| 1 | 基本集約 | 複数グループの集約データ + 末尾に多keyテスト |
|
||||
| 2 | 境界ケース | キー境界での正しい集約切替を確認するデータ + 末尾に多keyテスト |
|
||||
|
||||
## 多keyテスト
|
||||
|
||||
キーが複数項目の場合、各組末尾に追加。1レコードを基準に、各キー項目のみ異なるN件を生成。
|
||||
|
||||
## データ生成手順
|
||||
|
||||
1. キー項目の特定
|
||||
2. 组1: 3グループ以上、各グループ内に複数レコード(集約対象)
|
||||
3. 组2: キー値が1件ずつ異なる境界データ
|
||||
4. 各組末尾に多keyテスト
|
||||
|
||||
## 出力
|
||||
|
||||
各組1 JSONファイル。
|
||||
@@ -0,0 +1,37 @@
|
||||
# キーブレイク(集計) データ生成規則
|
||||
|
||||
## 概要
|
||||
|
||||
キー項目でソート済みの入力ファイルを読み取り、キーが変わるタイミング(キーブレイク)で集計値を計算し、1グループにつき1件の集計レコードを出力するプログラムのテストデータを生成する。
|
||||
|
||||
## 入力
|
||||
|
||||
- 詳細設計書のキー項目一覧(ソートキー)
|
||||
- 入力ファイルのCOPYBOOKフィールド定義
|
||||
- 集計対象フィールド(処理詳細から特定)
|
||||
|
||||
## 生成データ組
|
||||
|
||||
| 组 | 用途 | 内容 |
|
||||
|----|------|------|
|
||||
| 1 | 基本集計 | 複数グループ・各グループ内複数レコードのデータ + 末尾に多keyテスト |
|
||||
| 2 | 単一レコードグループ | 1レコードのみのグループを含むデータ + 末尾に多keyテスト |
|
||||
|
||||
## 多keyテスト(各組の末尾に追加)
|
||||
|
||||
キーが複数項目で構成される場合:
|
||||
1. 該当グループ内から1件のレコードを選び基準データとする
|
||||
2. N個のキー項目に対し、それぞれ1項目のみ異なるN件の追加レコードを生成
|
||||
3. これらのレコードは別グループとして扱われるべき(集計値が別になる)
|
||||
|
||||
## データ生成手順
|
||||
|
||||
1. キー項目を特定(キー項目一覧のソート条件から)
|
||||
2. 集計フィールドを特定(処理詳細からCOMPUTE/ADD対象を抽出)
|
||||
3. 组1: 3グループ以上、各グループ2〜5レコード、キー昇順
|
||||
4. 组2: 単一レコードグループと複数レコードグループの混在
|
||||
5. 各組末尾に多keyテストデータを追加
|
||||
|
||||
## 出力
|
||||
|
||||
各組1 JSONファイル。
|
||||
@@ -0,0 +1,25 @@
|
||||
# キーブレイク(集計、集約) データ生成規則
|
||||
|
||||
## 概要
|
||||
|
||||
ソート済み入力ファイルを読み取り、キーブレイクで集計・集約を行い結果を出力するプログラムのテストデータ。複数ファイル入力の場合はマッチングと集計を組み合わせる。
|
||||
|
||||
## 入力
|
||||
|
||||
- 詳細設計書のキー項目一覧、使用ファイル一覧
|
||||
- 各入力ファイルのCOPYBOOKフィールド定義
|
||||
|
||||
## 生成データ組
|
||||
|
||||
| 组 | 用途 | 内容 |
|
||||
|----|------|------|
|
||||
| 1 | 通常集計 | 複数グループ・各グループ複数レコード + 末尾多keyテスト |
|
||||
| 2 | 同キー内集約 | 同一キー内でN件集約されるデータ + 末尾多keyテスト |
|
||||
|
||||
## 多keyテスト
|
||||
|
||||
キーが複数項目の場合、各組末尾に追加。1レコードを基準に各キー項目のみ異なるN件を生成。
|
||||
|
||||
## 出力
|
||||
|
||||
各組1 JSONファイル。
|
||||
@@ -0,0 +1,78 @@
|
||||
# マッチング(1:1) 数据生成规则
|
||||
|
||||
## 概要
|
||||
|
||||
2个输入文件按指定键进行1:1匹配,输出匹配成功/仅R01/仅R02三种结果。
|
||||
|
||||
## 输入
|
||||
|
||||
- 前提条件:从详细设计书解析匹配键(A001>A002>A003...)
|
||||
- 输入文件:2个(R01、R02)
|
||||
- 键条件:键值唯一(重複NG),升序排序
|
||||
|
||||
## 生成的数据组
|
||||
|
||||
| 组 | 用途 | R01记录数 | R02记录数 | 说明 |
|
||||
|----|------|-----------|-----------|------|
|
||||
| 1 | 两端不匹配 | 4 | 4 | 第1条R01-only、最后1条R02-only、中间3条以上匹配 |
|
||||
| 2 | 反向两端不匹配 | 4 | 4 | 第1条R02-only、最后1条R01-only、中间3条以上匹配 |
|
||||
| 3 | 中间不匹配 | 5 | 5 | 首尾匹配、中间有R01-only和R02-only各1条 |
|
||||
|
||||
### 组1:两端不匹配
|
||||
|
||||
R01键:a001(R01-only) → a002 → a003 → a004
|
||||
R02键:a002 → a003 → a004 → a005(R02-only)
|
||||
|
||||
records数组(按处理顺序):
|
||||
| record序号 | 内容 | 说明 |
|
||||
|-----------|------|------|
|
||||
| 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的比较没有问题。
|
||||
|
||||
|
||||
### 组2:反向两端不匹配
|
||||
|
||||
R01键:a002 → a003 → a004 → a005(R01-only)
|
||||
R02键:a001(R02-only) → a002 → a003 → a004
|
||||
|
||||
records数组:
|
||||
| record序号 | 内容 | 说明 |
|
||||
|-----------|------|------|
|
||||
| 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) → a003 → a005
|
||||
|
||||
records数组:
|
||||
| record序号 | 内容 | 说明 |
|
||||
|-----------|------|------|
|
||||
| 1 | R01(a001) + R02(a001) | 匹配 |
|
||||
| 2 | R01(a003) | R01-only |
|
||||
| 3 | R01(a004) + R02(a003) | 匹配 |
|
||||
| 4 | R02(a002) | R02-only |
|
||||
| 5 | R01(a005) + R02(a005) | 匹配 |
|
||||
|
||||
## 数据生成步骤
|
||||
|
||||
1. 从前提条件解析匹配键字段(如 A001>A002>A003)
|
||||
2. 从COPYBOOK获取各字段的PIC定义
|
||||
3. 生成键值:键值以 a001/b001/c001 格式递增,保证升序排列
|
||||
4. 非键字段的数据生成:根据字段名关键词生成符合实际的数据,同时尽量保证每条相邻的数据的相同项目不一致。
|
||||
5. 按各组规则组装records数组
|
||||
6. 组号从1开始连续编号
|
||||
|
||||
## 输出
|
||||
|
||||
每个组输出一个json文件:`{プログラムID}_g{groupId}.json`
|
||||
@@ -0,0 +1,69 @@
|
||||
# マッチング(1:N) 数据生成规则
|
||||
|
||||
## 概要
|
||||
|
||||
2个输入文件,R01为主驱动,R02为从侧。1件R01可对应多件R02(1:N)。
|
||||
|
||||
## 输入
|
||||
|
||||
- 输入文件:2个(R01主驱动、R02从侧)
|
||||
- 前提条件:双方按key升序排序
|
||||
- 核心逻辑:EVALUATE TRUE 3分岐(R01key<R02key / = / >)
|
||||
|
||||
## 生成的数据组
|
||||
|
||||
| 组 | 用途 | R01记录数 | R02记录数 | 说明 |
|
||||
|----|------|-----------|-----------|------|
|
||||
| 1 | 1:1匹配 | 3 | 3 | 全部1:1匹配,中间R01-only和R02-only |
|
||||
| 2 | 1:N匹配 | 3 | 5 | R01有1:N匹配(同key多条R02) |
|
||||
| 3 | R02-先结束 | 3 | 2 | R01先结束,第一条数据的R01key<第一条的r02数据 |
|
||||
| 4 | R02-only | 2 | 4 | R02先结束,第一条数据的R01key>第一条的r02数据 |
|
||||
|
||||
### 组1:1:1匹配
|
||||
|
||||
R01: a001→a002→a003
|
||||
R02: a001→a002→a003
|
||||
|
||||
records按处理顺序:
|
||||
| record序号 | 内容 | 说明 |
|
||||
|-----------|------|------|
|
||||
| 1 | R01(a001)+R02(a001) | 匹配 |
|
||||
| 2 | R01(a002)+R02(a002) | 匹配 |
|
||||
| 3 | R01(a003)+R02(a003) | 匹配 |
|
||||
|
||||
组1:需要注意当key为n个项目组合而成时,在R01的最后需要加上n条数据。
|
||||
和R02(a003)的所有key相比,只有当前第n个key与R02(a003)的key不一致。保证key的比较没有问题。
|
||||
|
||||
|
||||
### 组2:1:N匹配
|
||||
|
||||
R01: a001→a002→a003
|
||||
R02: a001→a002→a002→a002→a003
|
||||
(同key有3条)
|
||||
|
||||
records按处理顺序:
|
||||
| record序号 | 内容 | 说明 |
|
||||
|-----------|------|------|
|
||||
| 1 | R01(a001)+R02(a001) | 匹配(第1件) |
|
||||
| 2 | R01(a002)+R02(a002) | 匹配(第1件) |
|
||||
| 3 | R01(a002)+R02(a002) | 匹配(第2件) |
|
||||
| 4 | R01(a002)+R02(a002) | 匹配(第3件) |
|
||||
| 5 | R01(a003)+R02(a003) | 匹配 |
|
||||
|
||||
### 组3:R02-先结束
|
||||
|
||||
R01: a001→a002→a003
|
||||
R02: a002→a002
|
||||
|
||||
records:全部R01-only
|
||||
|
||||
### 组4:R01-先结束
|
||||
|
||||
R01: a002→a003
|
||||
R02: a001→a002→a003→a004
|
||||
|
||||
records:R01(a001)→R02(b001~b004)→R01(a002)
|
||||
|
||||
## 输出
|
||||
|
||||
每组一个json文件:`{プログラムID}_g{groupId}.json`
|
||||
@@ -0,0 +1,36 @@
|
||||
# マッチング(N:1) データ生成規則
|
||||
|
||||
## 概要
|
||||
|
||||
マッチング(1:1)の逆。R01が主駆動でR02が従側。1:Nの逆構成。
|
||||
|
||||
## 生成データ組
|
||||
|
||||
| 组 | 用途 | R01 | R02 | 説明 |
|
||||
|----|------|-----|-----|------|
|
||||
| 1 | 両端不一致 | 4 | 4 | 1件目R02-only、最終R01-only、中間3件マッチ + 末尾多keyテスト |
|
||||
| 2 | 逆方向両端不一致 | 4 | 4 | 1件目R01-only、最終R02-only、中間3件マッチ + 末尾多keyテスト |
|
||||
| 3 | 中間不一致 | 5 | 5 | 先頭末尾マッチ、中間にR01-onlyとR02-only各1件 + 末尾多keyテスト |
|
||||
|
||||
## 组1:両端不一致
|
||||
R01: a002→a003→a004→a005(R01-only)
|
||||
R02: a001(R02-only)→a002→a003→a004
|
||||
|
||||
## 组2:逆方向
|
||||
R01: a001(R01-only)→a002→a003→a004
|
||||
R02: a002→a003→a004→a005(R02-only)
|
||||
|
||||
## 组3:中間不一致
|
||||
R01: a001→a003(R01-only)→a004→a005
|
||||
R02: a001→a002(R02-only)→a004→a005
|
||||
|
||||
## 多keyテスト
|
||||
|
||||
キーが複数項目の場合、组1・组2の末尾に追加。
|
||||
组1: R01-onlyの最終R01データを基準に、各キー項目のみ異なるN件をR02側に追加
|
||||
组2: R02-onlyの最終R02データを基準に、各キー項目のみ異なるN件をR01側に追加
|
||||
これによりマッチングキーの比較が全項目正しく行われていることを検証。
|
||||
|
||||
## 出力
|
||||
|
||||
各組1 JSONファイル。
|
||||
@@ -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,54 @@
|
||||
# 振り分け データ生成規則
|
||||
|
||||
## 概要
|
||||
|
||||
単一の入力ファイル(CSVまたは固定長)を読み取り、条件分岐に基づいて複数の出力ファイルに振り分けるプログラムのテストデータを生成する。
|
||||
|
||||
## 入力
|
||||
|
||||
- 詳細設計書の処理詳細(分岐条件と出力先の対応)
|
||||
- 入力ファイルのCOPYBOOKフィールド定義
|
||||
|
||||
## 生成データ組
|
||||
|
||||
| 组 | 用途 | 内容 |
|
||||
|----|------|------|
|
||||
| 1 | 全分支カバー | すべての分岐条件をカバーするデータ。各出力先に最低1件ずつ振り分けられるようにする。 |
|
||||
|
||||
## データ生成手順
|
||||
|
||||
1. **分岐条件の特定**: 処理詳細からすべての分岐条件とそれに対応する出力先を抽出する
|
||||
2. **分岐パターンの列挙**: 正常系(検証通過→正常出力)と異常系(エラー→ERROR-LOG)の全パターンを列挙
|
||||
3. **データ生成**:
|
||||
- 各分岐パターンに最低1件のレコードを生成
|
||||
- フィールド値はPIC定義に従い生成
|
||||
- 正常系データ: 全チェックを通過する有効な値
|
||||
- 異常系データ: 該当するチェックに引っかかる値(不正な日付、不正な時刻、範囲外の値など)
|
||||
4. **値のルール**:
|
||||
- PIC X(n): 左詰め・スペース埋め
|
||||
- PIC 9(n): 右詰め・先行ゼロ
|
||||
- DATE/日付系: 実在しそうな日付(YYYYMMDD形式)、異常系では不正な日付(99999999等)
|
||||
- TIME/時刻系: 実在しそうな時刻(HHMM形式)、異常系では範囲外の時刻
|
||||
- STATUS系: 0/1/9 などのコード値
|
||||
- CSV項番号フィールド: 分割後の項目数
|
||||
5. **出力**: 1組 = 1 JSONファイルに全レコードを格納
|
||||
|
||||
## 出力形式
|
||||
|
||||
```json
|
||||
{
|
||||
"program": "ZAN01CHK",
|
||||
"records": [
|
||||
{
|
||||
"input": {
|
||||
"DD名": {
|
||||
"フィールド名": "値",
|
||||
...
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
各レコードが1回の処理に対応。正常系→異常系→特殊分岐の順に並べる。
|
||||
@@ -0,0 +1,31 @@
|
||||
# 項目チェック データ生成規則
|
||||
|
||||
## 概要
|
||||
|
||||
入力ファイル(CSV)の各レコードに対し、複数の項目チェックを実施し、正常データと異常データを別々の出力ファイルに振り分けるプログラムのテストデータを生成する。
|
||||
|
||||
## 入力
|
||||
|
||||
- 詳細設計書の処理詳細(チェック項目一覧)
|
||||
- 入力ファイルのCOPYBOOKフィールド定義
|
||||
|
||||
## 生成データ組
|
||||
|
||||
| 组 | 用途 | 内容 |
|
||||
|----|------|------|
|
||||
| 1 | 全チェックカバー | すべてのチェック項目について、合格データと不合格データの両方をカバーする。 |
|
||||
|
||||
## データ生成手順
|
||||
|
||||
1. **チェック項目の特定**: 処理詳細からすべてのチェック項目(フィールド数、値域、重複、時刻範囲、コード値など)を抽出する
|
||||
2. **各チェックに対するデータ生成**:
|
||||
- 合格データ: 全チェックを通過する有効な値
|
||||
- 不合格データ: 各チェック項目に特化した不正な値を含むレコード
|
||||
3. **値のルール**:
|
||||
- フィールド数チェック: 正しい項目数/足りない/多い
|
||||
- 日付チェック: 正常日付 vs 不正日付 (99999999等)
|
||||
- 時刻チェック: 正常時刻 (0900-1800) vs 範囲外 (2500等)
|
||||
- 重複チェック: 同一キー2件 vs 全件別キー
|
||||
- コード値チェック: 有効コード vs 無効コード
|
||||
- 社員番号: 8桁数字 vs 非数字/桁数不足
|
||||
4. **出力**: 1組 = 1 JSONファイル
|
||||
@@ -0,0 +1,27 @@
|
||||
# 条件分支 数据生成规则
|
||||
|
||||
## 概要
|
||||
|
||||
检索详细设计中処理詳細的所有条件分支,增加覆盖所有分支的输入数据。
|
||||
|
||||
## 输入
|
||||
|
||||
- 输入文件:详细设计书的処理詳細部分
|
||||
|
||||
## 生成的数据组
|
||||
|
||||
由你决定,以尽可能少的数据组完成分支覆盖
|
||||
|
||||
|
||||
## 数据生成步骤
|
||||
|
||||
1. 遍历処理詳細的所有内容
|
||||
2. 记录所有条件分支
|
||||
3. 找到条件判断数据与输入的关系
|
||||
4. 数据生成:根据字段名关键词生成符合实际的数据,同时尽量保证每条相邻的数据的相同项目不一致。
|
||||
5. 按各组规则组装records数组
|
||||
6. 组号从之前的最后一组+1开始连续编号
|
||||
|
||||
## 输出
|
||||
|
||||
每个组输出一个json文件:`{プログラムID}_g{groupId}.json`
|
||||
Reference in New Issue
Block a user