🤖

AIに任せられるテスト、任せにくいテスト

に公開

生成AIの発達により開発作業がどんどんAIに置き換わっていく中、当然の流れとして品質保証活動=テストもAIに置き換えていこうという動きが盛んです。他方で、冷静に考えてみると 「これはAIには(現時点では)難しいのではないか?」 というテストも存在はしていると思っています。今回は直近実際に見た案件から「AIに任せられるテスト、任せられないテスト」を考察します。

✅ 主にAIに任せられる作業

現状のAIは文字情報を処理するのが得意です。そのため、現状任せられる作業は以下のようなものになるはずです。

  • 仕様やコード、過去チケットの情報整理や要約
  • 過去のバグやテストケースの整理・分類
  • コードやAPIの定義に基づいたテスト観点、テストケースの提案

❌ AIが現状苦手な領域

一方、現状のAIは万能ではなく、苦手あるいは不可能な作業もあります。以下は一例です。
ただしこれはすぐにでも改善する可能性はあります。

  • 仕様書に書かれない「暗黙的な仕様」の読み取り
  • ステークホルダーの要求間の矛盾検出
  • 業務フロー上での使いづらさの検知
  • 仕様変更によって旧仕様との不整合が生じるケースの発見
  • 大量のデータの一括処理
    • 過去に100件以上のデータを処理させたところ90件しか処理しなかったことがありました

✅ AIに向いている案件の特徴

  • 小〜中規模の案件
    • 全体構造をAIが把握しやすいため。またAIの使用上限に引っかかる可能性も低い
  • UIの絡みが少ないシステム
    • API主体、バッチ処理など
  • リスクが比較的低い or 部分的に切り分けやすい
    • 局所的な自動テストや仕様レビューに向く

❌ AIに現状向いていない案件の特徴

  • 大規模で依存関係が複雑な案件
    • 全体をAIに与えても破綻しやすく、ハルシネーションの発生可能性が高い
  • 極小規模(1画面など)の案件
    • 手でやった方が効率が良い場合が多い
  • UIが大きく絡む案件
    • 状態遷移、操作分岐、見た目、UXが複雑なためAIには扱いづらい
  • リスクが高い案件
    • 結局人が全件レビューやダブルチェックするなら効率が悪い

整理

項目 向き不向き
規模 向いている(小〜中)⇔ 向いていない(極小・大規模)
UIの割合 向いている(少ない)⇔ 向いていない(多い)
リスク 向いている(低)⇔ 向いていない(高)
構造の明確さ 向いている(構造化済み)⇔ 向いていない(カオス)

✅ AIに向いていない案件でもAIでサポート可能なこと

AIに向いていない案件だからと言って、AIを使うべきではない、ということにはなりません。
以下のような作業であればAIが使いづらい案件でも可能かと思います。

  • 既存情報情報の整理、構造化
    • 要件の読み込み、人間のキャッチアップおよび意思決定のサポート
  • ユースケース・機能単位での部分的な観点の洗い出し
    • 全体ではなく、人間が切り出していけば補助としては使える

✅ どの案件でも人間がやること

AIに向いている案件でも、以下のような作業は人間が行うことになると思います。

  • (暗黙的なものも含む)仕様の洗い出し → つまり 「要件レビュー」
  • 現実的な運用や触ってみての感覚を調べる → つまり 「探索的テスト」

所感

現時点ではすべてのテストをAIに置き換えることは難しいと思うというのが私自身の率直な感想ではありますが、AIで効率化できる部分はどんどんしていきたいところです。

Discussion