Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AIの揺らぎに“コシ”を与える階層化品質設計

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.
Avatar for ICKX ICKX
May 09, 2026

 AIの揺らぎに“コシ”を与える階層化品質設計

Avatar for ICKX

ICKX

May 09, 2026

More Decks by ICKX

Other Decks in Technology

Transcript

  1. 自己紹介 • 若葉 章(わかば あきら) • 2010年~ 同人ソフトサークル project ickx

    • プロデューサー / 営業 / インフラ / サーバサイド... / ゲームの実開発以外全部 • 本職はスタッフエンジニアっぽいこともするphpエンジニア • php続けてもうすぐ26年 php3の頃からお世話になっています • 最近の趣味は自転車とコーヒーとアマチュア無線 • tyrell iveで京阪や徳島から高松まで走ったり、icom ic-705やID-52で移動運用試したり • ボトルゲージ用のアルミステーやドリッパーホルダの自作を始めましたもうだめだ • Nintendo Switch で『VERTICAL STRIKE ENDLESS CHALLENGE』販売中 • Qiitaで『phpで高速に・省メモリ・確実に日本語csvを扱う方法』公開中 https://qiita.com/wakabadou/items/84b48ca12f25fb2fb69c 「composer require fw3/streams」をよろしくね。 「composer require tacddd/tacddd」もよろしくね。 「composer require bypassflow/crypt」もよろしくね。
  2. 階層化自動テストとは • 境界付けられたコンテキストに応じてテストを分割する • テストの関心事を見るべきものと完結できる単位で分割する • テストで見るべきものをフローと状態に分割する • 階層テストはそれぞれ独立して機能する •

    階層テストはプロセスに要求されるコンテキストの有無で増減する • ツールの謳う使い方に囚われない • 上記を満たし、実施される自動テストが階層化自動テストである
  3. • セッション・永続化を伴う複数URLへの一貫した操作 • 単一URLリクエストに対するレスポンス • リクエスト受け付けから出力までの処理コールツリー • 単一URLリクエストにおける検証処理 • 単一URLリクエストにおける変数割り当て

    • クラス、関数に対する入力と出力 画面遷移 のみ担当 画面描画 のみ担当 プログラムコール ツリーのみ担当 HTTP入力検証 のみ担当 アクションが生成 する変数のみ担当 処理の入出力 のみ担当
  4. • セ ッ シ ョ ン ・ 永 続 化

    を 伴 う 複 数 U R L へ の 一 貫 し た 操 作 • 単 一 U R L リ ク エ ス ト に 対 す る レ ス ポ ン ス • リ ク エ ス ト 受 け 付 け か ら 出 力 ま で の 処 理 コ ー ル ツ リ ー • 単 一 U R L リ ク エ ス ト に お け る 検 証 処 理 • 単 一 U R L リ ク エ ス ト に お け る 変 数 割 り 当 て • ク ラ ス 、 関 数 に 対 す る 入 力 と 出 力 リリース前 受け入れ前 PR前 コミット 単位 作業 単位 作業 単位 上書き 保存単位 テストプロセスフロー
  5. 階層化自動テストとは • 境界付けられたコンテキストに応じてテストを分割する • テストの関心事を見るべきものと完結できる単位で分割する • テストで見るべきものをフローと状態に分割する • 階層テストはそれぞれ独立して機能する •

    階層テストはプロセスに要求されるコンテキストの有無で増減する • ツールの謳う使い方に囚われない • 上記を満たし、実施される自動テストが階層化自動テストである
  6. ⚫ L1:処理保証 要求・制約・状態、判定基準を見る ⚫ L2:状態生成保証 業務状態が正しく作られるかを見る ⚫ L3:境界保証 安全境界と受け入れ条件を見る ⚫

    L4:フロー保証 ビジネスルールと処理順序を見る ⚫ L5:表現保証 UXとUI契約を見る ⚫ L6:体験保証 業務状態と画面遷移を見る
  7. 階層 タイトル 見るもの 保証対象 L1 処理保証 処理の入出力 要求・制約・状態 / 判定基準

    L2 状態生成保証 アクションが 生成する変数 業務状態 / 要求・制約・状態 L3 境界保証 HTTP入力検証 安全境界 / 受け入れ条件 L4 流れ保証 プログラム コールツリー ビジネスモデル・ルール / 業務状態 L5 表現保証 画面描画 UX / 受け入れ条件 / 安全境界 L6 体験保証 画面遷移 ビジネスモデル・ルール / UX / 業務状態
  8. • 終了コード 実行結果が成功したかを示します • xUnit XML どのテストが通りどのテストが落ちたかを示します • UI契約検証結果 画面が体験の成立条件を満たしたかを示します

    • gate JSON 要求ごとの判定結果を機械が読める形で残します • ログ なぜその判定になったのかを人間が追える形で残します