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

それっぽさが問題を隠す — AI によるテストケース生成の失敗と再設計 #yamanote_west

Avatar for Ryutaro Yako Ryutaro Yako
August 25, 2026
61

それっぽさが問題を隠す — AI によるテストケース生成の失敗と再設計 #yamanote_west

2026年8月25日(火)開催の「山手ウエスト #1」での発表資料です。

セッションタイトル: それっぽさが問題を隠す — AI によるテストケース生成の失敗と再設計(Ryutaro Yako)
https://yamanote-west.connpass.com/event/399789/

Avatar for Ryutaro Yako

Ryutaro Yako

August 25, 2026

Transcript

  1. 自己紹介 名前: Ryutaro Yako 所属: ユニークビジョン株式会社 役割: Chief Architect 興味:

    フロントエンドの技術 Copyright ©Unique Vision Company. All Rights Reserved.
  2. 事業内容 当社はソーシャルメディアを利用した、ソーシャルメディア総合管理ツールや X・LINE・Instagram・TikTokなどSNSマーケティングツールを多数提供しています。 Belugaスタジオ Beluga キャンペーン その他 X/Facebook/Instagramなどのアカウ フォロー&リポストに代表されるXのイ SNSキャンペーンに連動した、生成AIを

    ントを一元管理できるソーシャルメディ ンスタントウィンをはじめとしたキャン 活用したシステムやプラットフォームが ア総合管理ツールです。企業のSNS運用 ペーンを複数展開しています。質の高い 提供する独自ツールやシステム開発も順 をサポートします。 キャンペーンの実施を支援しています。 次行っています。 Copyright ©Unique Vision Company. All Rights Reserved.
  3. 結果:品質レビューで Reject テストケース外でバグが見つかった AI で書いたテストケースの課題 周辺のテストケースも漏れていた 漏れ — 網羅できるはずの箇所が抜ける (品質レビューで指摘された)

    AI に任せて人間はレビューに専念した結果、 品質面で問題が起こった 重複 — 似たケースが各所に散らばる 曖昧さ・冗長さ — 何を確かめたいのか分から ない Copyright ©Unique Vision Company. All Rights Reserved.
  4. 問題① 漏れ 機械的に網羅できるはずの箇所が漏れる 網羅性を保証できない バグの見逃しの可能性がある とくにキャンペーン設定のような組み合わせの多い箇所ほど弱い ケース1: 事前条件: - 参加条件「オープン」・抽選方式「インスタントウィン」のキャンペーンである

    確認事項: … ケース2: 事前条件: - 参加条件「レシート」・抽選方式「インスタントウィン」のキャンペーンである 確認事項: … ケース3: 事前条件: - 参加条件「Xポスト」・抽選方式「インスタントウィン」のキャンペーンである 確認事項: … # ← 参加条件 × 抽選方式は 3 × 3 = 9 通りあるが、インスタントウィンの列しかない、等 Copyright ©Unique Vision Company. All Rights Reserved.
  5. 問題② 重複 テストケースをどこに配置すべきかが自明でない 離れた場所に似たケースが作られる 既存のテストケースをうまく探せないので AI や人が重複に気づけない 重複するのはテストケース全体を管理できていない証 # CMS

    編集画面のテスト コピー&ペースト: 事前条件: - メインパネルにコンテンツが配置されている 手順: - Ctrl+Cキーを押してコンテンツをコピーする 確認事項: - Ctrl+Cでコンテンツがクリップボードにコピーされること # CMS のコンテンツごとのテスト コンテンツのコピー: 事前条件: - メインパネルにフレームコンテンツが配置されている 手順: - フレームコンテンツをクリックして選択する - Ctrl+Cを押してコピーする 確認事項: Copyright ©Unique Vision Company. All Rights Reserved.
  6. 問題③ 曖昧さ・冗長さ そのケースで何を保証したいのかが分からない 「プレースホルダーの表示?」「改行入力?」「追記?」「リアルタイム性?」「スタイルのデフォルト設 定?」 テキストコンテンツ入力: 事前条件: - キャンペーンの編集画面が開かれている -

    メインパネルに新しいテキストコンテンツが配置されている - テキストコンテンツに「クリックしてテキストを追加」というプレースホルダーが表示されている 手順: - テキストコンテンツの文字エリアをクリックする - 「春の特別キャンペーン実施中!」と入力する - Enterキーを押して改行する - 「豪華賞品が当たるチャンス」と続けて入力する 確認事項: - 文字エリアをクリックしたときテキストカーソルが表示されること - 最初の文字を入力したときプレースホルダーが消えること - 入力した文字が即座にメインパネルに表示されること - 改行が反映され、1行目に「春の特別キャンペーン実施中!」、2行目に「豪華賞品が当たるチャンス」と2行のテキストで表示されること - フォントサイズとスタイルがデフォルト設定で表示されること Copyright ©Unique Vision Company. All Rights Reserved.
  7. 曖昧さのサイン:手順・確認事項に if が入る 手順や確認事項に「〜の場合」 が入っている 仕様が不明のままテストが書かれている # campaigns/main_panel.yaml 編集モード時にコンテンツ編集に制限がないこと: 手順:

    - 左パネルからすべての種類のコンテンツをメインパネルに追加する - 編集可能な項目がある場合は任意の値を入力または選択する # if ← 何が編集可能かが仕様として未確立 確認事項: - すべてのコンテンツが追加できること # 「すべて」が未定義 - すべてのコンテンツの編集可能な項目が編集できること # 循環定義 - 非活性状態のUI要素が存在しないこと # 網羅不可能 Copyright ©Unique Vision Company. All Rights Reserved.
  8. ① タグの概念を追加 プロダクトに合ったタグを定義 キャンペーンや画面の観点・パターンを明示 排他タグ:1 ケースに 1 値だけ 例: 抽選方式

    は 1 つに定まる 非排他タグ( [] ):複数値 OK 例:ページ内の コンテンツ[] は複数あり得る # tags/tags.yaml(抜粋) 参加条件: # 排他 - レシート - Xポスト - オープン 抽選方式: # 排他 - 事後抽選 - インスタントウィン コンテンツ[]: # 非排他 - テキスト - 画像 - ボタン Copyright ©Unique Vision Company. All Rights Reserved.
  9. ② テストケースにタグ付け テストケースを YAML 化 + JSON Schema でスキーマを定義し、タグを付けられるようにした(社内 OSS)。

    Before After サイトで設定する項目は空: 事前条件: - 参加条件「オープン」 - 抽選方式「インスタントウィン」 - 抽選頻度制限「1日1回…」 # 観点が文章に埋もれている サイトで設定する項目は空: tags: 参加条件: オープン 抽選方式: インスタントウィン 抽選頻度制限: 1日1回抽選に参加できる 事前条件: - … # 観点が構造化されて見える Copyright ©Unique Vision Company. All Rights Reserved.
  10. Skills でタグ付けを効率化 タグ付けを手動でやるのは大変 $ /tag-testcases campaigns/winning_settings.yaml Skills を作成 → tags.yaml

    の語彙を取得 → 各ケースを分析してタグ付与 → 変更サマリーを表示 tags.yaml を読み込み、ルールに沿って自動 でタグ付け タグがちゃんと設計されていれば精度はよい Copyright ©Unique Vision Company. All Rights Reserved.
  11. ③ タグを軸に構造を作り直す 付けたタグを使って、分かりやすい切り口で構造を再構築 「どの軸で網羅するか」を可視化できるようになる :排他タグ 3 軸で整理 After 抽選方式: インスタントウィン

    :画面の見た目順 Before ケース9 ケース10 ケース11 参加条件: オープン … ログイン方式: LIFF 参加条件: レシート ログイン方式: LINE Copyright ©Unique Vision Company. All Rights Reserved. ログイン方式: LIFF 抽選方式: 事後抽選 ログイン方式: LINE …