AS400のフル桁入力・境界値テスト観点|RPG/CL修正後の確認表

RPGやCLを修正した後は、「正常に動いた」だけで終わらせず、最大桁、境界値、ゼロ、空白、DB更新、帳票、ジョブログ、再実行まで確認します。 この記事では、AS400 / IBM iの単体テストで見落としやすい観点を、確認順と表で整理します。

フル桁入力と境界値で見ること

フル桁入力とは、画面項目やファイル項目に入る最大桁数まで値を入れて確認するテストです。最大桁だけでなく、その前後や符号、小数、表示幅、受け渡し先まで見ます。

観点入力例確認すること
最大桁定義上入る最大長画面、DB、帳票、CSVで切れないか
最大桁-1上限直前編集コードや右寄せが変わらないか
上限超過最大桁+1入力を拒否するか、エラーを返すか
ゼロ0、0.00ゼロ抑止、空白表示、計算結果
空白未入力、全角・半角空白必須チェック、初期値、トリム
符号正数、負数符号位置、マイナス、CR/DB表記
小数最小単位、丸め境界小数桁、四捨五入、切り捨て
日付月末、年末、うるう日妥当性、締め処理、表示形式

単体テストの確認順

  1. 通常の入力で基本動作を確認する
  2. 最大桁・境界値・ゼロ・空白を確認する
  3. 存在しないコードや権限不足などの異常系を確認する
  4. DB更新、帳票、CSV、外部連携の出力を確認する
  5. ジョブログと戻りコードを確認する
  6. 同じ処理を再実行して二重更新や重複送信がないか確認する
  7. 修正後の状態で証跡を取り直す

正常系が成立していない状態で異常系だけを細かく見ても、原因を分けにくくなります。まず通常業務が仕様通りに通ることを確認し、その後に境界値と異常系へ進みます。

画面入力で確認すること

項目見る場所よくある不具合
商品・得意先コード画面、ファイル、検索処理前ゼロ、末尾空白、桁不足
数量・単価・金額入力欄、計算、帳票桁あふれ、丸め、符号、編集表示
日付入力チェック、締め、後続処理月末、年末、存在しない日付
備考・名称画面、DB、CSV全角・半角、文字切れ、文字化け
選択区分初期値、必須、分岐未選択時に古い値が残る

DB更新は画面結果だけで判断しない

  • 更新前後の対象レコードを比較する
  • 予定したファイル・ライブラリだけが更新されたかを見る
  • 追加、更新、削除の件数が仕様と合うか確認する
  • キー重複、ゼロ件、複数件で処理が変わらないかを見る
  • エラー時にコミット・ロールバックが想定通りか確認する
  • 受注から出荷・在庫・売上・請求など後続データへの影響を見る

DSPPFMでデータを見る場合も、対象ライブラリとメンバーを確認します。フィールド定義と実データの使い分けは DSPFFD・DSPPFMの違い を参考にしてください。

RPGとCLで追加して見る観点

対象確認すること
パラメーター呼び出し元・呼び出し先で桁数、型、順番が一致しているか
配列・データ構造添字上限、初期化、要素数、オーバーレイ
ファイルI/OCHAIN、READ、SETLL、READE、WRITE、UPDATEの条件
CLの分岐MONMSG、戻りコード、後続CALL、異常時の終了
ライブラリ*LIBLと明示指定で参照先が変わらないか
再実行途中データ、二重更新、重複送信、再開位置

帳票・CSV・外部連携を確認する

  • スプールの桁位置、改ページ、見出し、金額表示
  • CSVの列順、区切り文字、引用符、改行、文字コード
  • UTF-8、UTF-8 BOM付き、Shift-JIS、CCSIDの変換位置
  • FTPのASCII/BINARY、IFSのパス、ファイル名
  • 送信先、送信件数、再送時の重複防止
  • 相手側エラー時の戻り値とジョブログ

CSVをExcelで開くと文字化けする場合は、データ内容より先に文字コードを判定します。確認順は AS400のCCSID・CSV文字化け確認 にまとめています。

件数を増やして確認する

1件で正常でも、件数を増やすと配列上限、処理時間、ページング、帳票改ページ、ファイルロックが表に出ることがあります。通常件数だけでなく、ゼロ件、1件、複数件、最大件数に近いケースを用意します。

件数確認すること
0件空一覧、未作成ファイル、正常終了の扱い
1件最小構成で基本動作が通るか
複数件ループ、改ページ、集計、並び順
上限付近配列、処理時間、容量、タイムアウト
重複データキー重複、二重送信、再実行制御

エビデンスと再テスト

残すもの分かるようにすること
入力画面どの値を、どの条件で入力したか
DB更新前後どのレコードが、どう変わったか
帳票・スプール表示、桁、件数、出力先が正しいか
CSV・外部連携内容、文字コード、送信先、件数
ジョブログ警告、エラー、戻りコード、実行順
ソース・オブジェクトテストした修正版と実行物が一致するか

証跡を取った後にソースを直した場合は、その証跡を使い回しません。関係するケースを再実行し、修正後のプログラムで結果を取り直します。

Codexに手伝わせる場合

Codexは、境界値の洗い出し、テストデータ案、ソース差分から影響しそうな処理の整理、実行結果の比較に使えます。ただし、本番データ、顧客情報、接続情報、パスワード、APIキー、ソース全文を無条件に渡してはいけません。

RPG/CLの修正内容から単体テスト観点を作ってください。
確認対象: 入力、最大桁、境界値、DB更新、帳票、CSV、ジョブログ、再実行
本番情報や個人情報は含めず、確認手順と期待結果を表にしてください。

若手・後任者が同じ手順でテスト観点を作れるようにする法人向け支援は、AS400 / IBM i Codex研修の内容・料金 で確認できます。

単体テスト確認表

  • 正常系が仕様通りに通った
  • 最大桁、境界値、ゼロ、空白、符号、小数を確認した
  • DBの更新先、件数、更新前後を確認した
  • 帳票、スプール、CSV、外部連携を確認した
  • ジョブログに想定外の警告・エラーがない
  • ゼロ件、複数件、上限付近を確認した
  • 再実行で二重更新・重複送信がない
  • 修正後の状態で証跡を取り直した

参考

まとめ

RPGやCLの単体テストでは、正常系、フル桁入力、境界値、件数増加、DB更新、帳票、CSV、ジョブログ、再実行まで確認します。コンパイルが通ったことではなく、仕様通りに動き、後から説明できる証跡がそろったことを合格ラインにします。