# 期待値表 — OpenAI画像生成ツール(gpt-image-2 API 直呼び出し) - 対象:要求仕様書_画像生成ツール(mode: 単機能) - 根拠:確定した要求仕様書・設計の基礎のみ(基礎1の独立性)。単機能のため設計仕様書は無し。 - 正解の所在:オラクルはMatsuくん。AIは入力(試す値)を作り、正解と出所はMatsuくんが確定(基礎11)。 - 状態:確定/保留/対象外の3分類。**確定行のみがテスト生成(Phase 4)へ渡る**。 --- ## 1. 確定(テスト生成へ渡す) | ID | カテゴリ | 入力 | 期待される正しい出力 | 出所 | 状態 | |---|---|---|---|---|---| | N-1 | 正常系 | 新規生成・既定(プロンプトあり、サイズauto、出力形式は既定webpが選択された状態、保存先指定済み、API成功) | 指定フォルダに `YYYYMMDD_HHMMSS.拡張子`(連番なし)で1枚保存。既定はwebp。1リクエスト1枚。 | 私が定義(REQ-4.1.1/REQ-4.2.1/REQ-1.2) | 確定 | | N-2 | 正常系 | 既存画像を渡して編集(対応形式・破損なし、サイズauto、出力形式は既定webp、API成功) | N-1と同じ保存挙動(指定フォルダ/`YYYYMMDD_HHMMSS.拡張子`/1枚)。入力画像は非破壊(上書きしない・元ファイルは残す)。 | 私が定義(REQ-2/REQ-4) | 確定 | | N-3 | 正常系 | サイズ明示 1920×1088(16の倍数・比率約1.76:1・最大以内)、出力形式pngを選択、API成功 | 1920×1088・pngで保存。指定寸法どおり生成。 | 私が定義(REQ-3.2/REQ-4.2.1) | 確定 | | B-1 | 境界 | 3840×2160 ちょうど(最大寸法ちょうど) | 範囲内・生成する(最大値は含む側) | 私が定義(REQ-3.2.1) | 確定 | | B-2 | 境界 | 3856×2160(最大寸法を16px超過) | 範囲外・弾く(指定し直しを促すメッセージ表示) | 私が定義(B-1からの論理的帰結/REQ-3.2.2) | 確定 | | B-3 | 境界 | 幅1921×高1088(幅が16の倍数から+1外れ、他条件は範囲内) | 弾かず、最も近い16の倍数へ丸めて生成(1921→1920)。タイプミス救済のため。 | 私が定義 | 確定 | | B-4 | 境界 | 比率ちょうど3:1(3072×1024)/対称に1:3ちょうど(1024×3072) | 範囲内・生成する(比率境界も含む側。B-1と揃える) | 私が定義(REQ-3.2.1) | 確定 | | B-4' | 境界 | 比率3:1をわずかに超過(例 3088×1024=約3.02:1) | 範囲外・弾く | 私が定義(B-4からの論理的帰結/REQ-3.2.2) | 確定 | | D-1 | 非一意→一意化 | 幅1928(16の倍数の中間・両側から8px) | 中間は切り下げ(1928→1920)。「最も近い16の倍数へ・中間は下」で一意化。 | 私が定義 | 確定 | | D-2 | 非一意→一意化 | サイズauto指定(REQ-3.1) | 寸法は検証対象外。保存の成否・保存先・枚数・拡張子のみ検証。 | 私が定義 | 確定 | | D-3 | 非一意→一意化 | SVGを送信可能なラスタ形式へ変換(REQ-2.2.1) | 変換後の寸法は検証対象外(D-2と同扱い)。 | 私が定義 | 確定 | | E-1 | 異常系 | プロンプト空欄で新規生成 | API呼び出しをせず生成しない。入力を促すメッセージを表示(文面は対象外)。 | 私が定義(REQ-1.1.1) | 確定 | | E-2 | 異常系 | 非対応形式(例 .gif)/破損ファイル(拡張子pngだが読めない)で編集 | 編集リクエストを送らず失敗として扱う(REQ-5フローへ)。ツールは落ちず継続。※非対応・破損は同値で1行に代表。 | 私が定義(REQ-2.1.2/REQ-5.2) | 確定 | | E-3a | 異常系 | API失敗・原因が取得できる(残高不足・レート制限等) | APIが返した原因をそのまま表示。当該1件は保存しない(画像・ログとも)。 | 私が定義(REQ-5.1.1/REQ-5.2.1) | 確定 | | E-3b | 異常系 | API失敗・原因が取得できない | 明確な失敗メッセージを表示(文面は対象外)。当該1件は保存しない。 | 私が定義(REQ-5.1.2/REQ-5.2.1) | 確定 | | F-1 | 正常系(固定値検証) | 新規生成リクエストを組み立てた直後 | 送信リクエストに model=`gpt-image-2-2026-04-21`/quality=`high` が必ず含まれる。 | 私が定義(REQ-1.2.1/要求仕様9) | 確定 | --- ## 2. 保留(現物照合で回収) なし。 --- ## 3. 対象外(テストの外へ分離) | 項目 | 理由 | |---|---| | 生成画像の内容の良し悪し | 主観判定。要求仕様6「人が見て判断する」で明記。オラクルを一意に持てない(基礎11)。 | | E-1 入力促しメッセージの文面 | 表示する挙動は確定(E-1)。文言そのものは人により割れるため対象外。 | | E-3b 失敗メッセージの文面 | 表示する挙動は確定(E-3b)。文言そのものは対象外。 | | REQ-4.1.2 同一秒複数枚の連番 | API処理には必ず時間がかかり、同一秒に複数枚が完結することは理論上あり得ない(ケースC)。前提が発生しないため対象外。 | --- ## 4. 要求ID × 状態 対応表 全24ID(大項目REQ-1〜5は中小IDでカバー)。 | 要求ID | 実現すること | 割り当て | 状態 | |---|---|---|---| | REQ-1 | プロンプトから画像を新規生成 | (中小でカバー) | — | | REQ-1.1 | プロンプト受取・リクエスト組立 | N-1 | 確定 | | REQ-1.1.1 | 空欄時は生成せず入力促し | E-1 | 確定(文面は対象外) | | REQ-1.2 | API呼び出し・1枚取得 | N-1 | 確定 | | REQ-1.2.1 | model・quality=high を固定送信 | F-1 | 確定 | | REQ-2 | 既存画像を編集 | (中小でカバー) | — | | REQ-2.1 | 画像読込・編集添付 | N-2 | 確定 | | REQ-2.1.1 | 対応形式(JPEG/PNG/SVG/webp)受付 | N-2 | 確定 | | REQ-2.1.2 | 非対応/破損は失敗扱い | E-2 | 確定 | | REQ-2.2 | 送信可能形式へ変換 | N-2 | 確定 | | REQ-2.2.1 | SVG等をラスタ変換 | D-3 | 確定(寸法非検証) | | REQ-3 | 出力サイズ指定 | (中小でカバー) | — | | REQ-3.1 | 未指定はauto | D-2 | 確定(寸法非検証) | | REQ-3.2 | 指定寸法で生成 | N-3 | 確定 | | REQ-3.2.1 | 16倍数・比率・最大の範囲 | B-1, B-3, B-4, D-1 | 確定 | | REQ-3.2.2 | 範囲外は弾く | B-2, B-4' | 確定 | | REQ-4 | 生成画像を保存 | (中小でカバー) | — | | REQ-4.1 | 命名規則で保存 | N-1 | 確定 | | REQ-4.1.1 | ファイル名 YYYYMMDD_HHMMSS.拡張子 | N-1 | 確定(連番なしへ改定) | | REQ-4.1.2 | 同一秒複数枚の衝突回避 | — | 対象外(発生し得ず) | | REQ-4.2 | 出力形式選択 | N-1, N-3 | 確定 | | REQ-4.2.1 | webp既定・png/jpeg可 | N-1, N-3 | 確定 | | REQ-5 | 失敗を明確に知らせる | (中小でカバー) | — | | REQ-5.1 | エラー内容表示 | E-3a, E-3b | 確定 | | REQ-5.1.1 | 原因ありはそのまま表示 | E-3a | 確定 | | REQ-5.1.2 | 原因なしは失敗メッセージ | E-3b | 確定(文面は対象外) | | REQ-5.2 | 失敗しても継続 | E-2, E-3a, E-3b | 確定 | | REQ-5.2.1 | 失敗1件はスキップ継続 | E-3a, E-3b | 確定 | ### 内訳 | 状態 | 件数 | 該当ID | |---|---|---| | 確定 | 22 | REQ-1.1, 1.1.1, 1.2, 1.2.1, 2.1, 2.1.1, 2.1.2, 2.2, 2.2.1, 3.1, 3.2, 3.2.1, 3.2.2, 4.1, 4.1.1, 4.2, 4.2.1, 5.1, 5.1.1, 5.1.2, 5.2, 5.2.1 | | 対象外 | 1 | REQ-4.1.2 | | 保留 | 0 | なし | | 割り当ての無い穴 | 0 | なし | 大項目(REQ-1〜5)は中小IDで検証されるため、それ自体への直接割り当ては不要。割り当ての無い穴は残っていない。 --- ## 5. 要求仕様書への反映事項 | 検出箇所 | 要求仕様書の記述 | 期待値(オラクル)との食い違い | 判定 | 反映状況 | |---|---|---|---|---| | REQ-4.1.1/4-2 命名規則・例/REQ-4.1.2 | ファイル名 `YYYYMMDD_HHMMSS_連番.拡張子`、例 `..._01.webp`、「同一秒複数枚は連番で衝突回避」 | ケースC確定により連番は不要(API処理時間により同一秒複数枚は発生し得ない)。命名は `YYYYMMDD_HHMMSS.拡張子`。 | 要求仕様書側の記述を訂正(オラクルが正しい) | **反映済み**。改定版 `要求仕様書_画像生成ツール_改定版.docx` にて、REQ-4.1.1・4-2・REQ-4.1.2の連番記述を修正、4-2の「連番:…付ける」独立行を削除。REQ-4.1.2のIDは traceability 維持のため残し、趣旨を反転(「発生しないため連番なし」)。 | ※本工程のプロンプトは「検出と修正を分ける」方針だが、当該矛盾は前工程でMatsuくんの指示により既に改定済みのため、検出内容と反映済みである旨を記録する。