Files
cobol-java-v3/black-box-data-create/rules/pgm_pattern/振り分け(EVALUATE).md
T
2026-08-23 10:46:56 +08:00

3.7 KiB
Raw Blame History

振り分け(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 ALSOB-N007 ALSOによる複数条件組合せの全パターン
3 EVALUATE TRUE/FALSEB-N008 条件式をTRUE/FALSEで判定するケース
4 EVALUATE WHEN OTHERB-N009 全WHEN不成立→WHEN OTHER到達データ
5 EVALUATE 无WHEN OTHERB-A002 全WHEN不成立→無操作になるデータ(○)

组1EVALUATE WHEN 多值(B-N006

EVALUATEの各WHEN分岐を1件ずつカバーするデータ。WHENに複数値(VALUE THRU等)を指定する場合も各値に1件生成する。

例:WHEN 'T'→出力A、WHEN 'P'→出力B、WHEN 'M'→出力C

组2EVALUATE ALSOB-N007

EVALUATE ... ALSO ... による複数条件の組合せ判定。各条件の組合せ(成立×成立、成立×不成立、不成立×成立、不成立×不成立)をカバーする。

组3EVALUATE TRUE/FALSEB-N008

EVALUATE TRUE / EVALUATE FALSE による条件式判定。各条件式がTRUEになるデータ・FALSEになるデータを生成する。

组4EVALUATE WHEN OTHERB-N009

全WHENの条件に該当しないデータを生成し、WHEN OTHER(デフォルト分岐)に到達することを確認する。

组5EVALUATE 无WHEN OTHERB-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开始。禁止添加本规则未定义的组,禁止缺组。正常系→異常系→特殊分岐の順にレコードを並べる。