3.7 KiB
3.7 KiB
振り分け(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に該当しないデータ。無操作で終了することを確認する(○)。
データ生成手順
- EVALUATE条件の特定: 処理詳細からすべてのEVALUATE条件(WHEN、ALSO、TRUE/FALSE、WHEN OTHER)、対応する出力先、関係演算子を抽出する
- 分岐パターンの列挙: 正常系(検証通過→正常出力)と異常系(エラー→ERROR-LOG)の全パターンを列挙する
- データ生成:
- 各组の分岐パターンに最低1件のレコードを生成する
- フィールド値はPIC定義に従い生成する
- 正常系データ: 全チェックを通過する有効な値
- 異常系データ: 該当するチェックに引っかかる値(不正な日付、不正な時刻、範囲外の値など)
- 値のルール:
- PIC X(n): 左詰め・スペース埋め
- PIC 9(n): 右詰め・先行ゼロ
- DATE/日付系: 実在しそうな日付(YYYYMMDD形式)、異常系では不正な日付(99999999等)
- TIME/時刻系: 実在しそうな時刻(HHMM形式)、異常系では範囲外の時刻
- STATUS系: 0/1/9 などのコード値
- CSV項番号フィールド: 分割後の項目数
- 生成後自检: 各WHEN分岐・ALSO組合せが漏れなくカバーされていること、各出力先に最低1件振り分けられることを確認する
出力
每组输出1个JSON文件:{プログラムID}_g{groupId}.json
组数约束:输出组数必须与本规则定义的5组一致(g1〜g5),组号连续从1开始。禁止添加本规则未定义的组,禁止缺组。正常系→異常系→特殊分岐の順にレコードを並べる。