🖥️

生成AIによるアウトプットへのテストはどうする?? ~ GenAIアサーション ~

2025/02/03に公開

みなさんこんにちは。mablのおだしょーですd(´Д` )♪

2025年もIT業界では生成AIをキーワードに様々な話題で盛り上がっていますね。執筆時点(2025/1/31)では、DeepSeekやOpenAIのOperatorがソーシャルのトレンドに挙がる程話題になっています。もうしばらくこれらの話題は落ち着きそうになく、界隈の皆々様は日々トレンドを追ったり、キャッチアップなどで苦労されていることと思います。いきなりの余談ですが、中には「生成AIを使ってうちもなんかしてみろ」と無茶ぶりされている可哀想な担当者もいるんじゃないかな?と思います。

生成AIは日本国内で特にチャットボット形式でのプロダクション活用が進んでいますが、テキストだけでなく画像なども含めて返答内容が質問への回答として適切なものであるかをテストすることはなかなかに難しいです。何をもって正しい動作/回答であるという確証を得れば良いでしょうか…??ソフトウェアテストの端くれとして働いている自分としてもとても気になるトピックなのです。

期待された動作が行われているか否かをテストする『アサーション』

アサーションについて、詳しくはASCIIさんで連載していた際に書いたこちらの記事、もしくはmablのヘルプページ あたりをご参照いただくと良いと思います。

テスト自動化のローコード/ノーコードプラットフォームを提供しているへーしゃことmabl(めいぶる)が提供しているアサーション機能は、例えばパスワード未入力状態でログインボタンを押した際に、「パスワードを入力してください」というアラートメッセージが『期待された通り出力されるか』を確認できます。

mablで『password required』と表示されることをアサートした画面がこちら。要素を選択するだけでmablトレーナーが文字列の一致などよしなに設定してくれるところも嬉しいポイント。

とはいえ生成AIの出力って当然生成しているので一定なものではないじゃないですか? どうやってテストするん?? と単純に思う訳です。コードに落とすとしてもどうやって書くの?? ハルシネーション:幻聴 (コンファビュレーション(Confabulation):作話、でっちあげ とも言うそうですね)の確認は有識者が人力で行うしかない感じ…?? 生成AIがふんだんに使用されているプロダクトのテストカバレッジめちゃくちゃ下がりそうじゃん…?? なんて恐怖を覚えたりしたものです震

生成AIの出力に対してもテスト可能な『GenAIアサーション』

そんな中、ありがたい?ことに昨年末頃に 『GenAIアサーション機能』 がGAしました。生成AIなどによる様々なアウトプットを生成AIを用いてテスト、更にテストの結果だけでなくアサーションとして正しい/間違っている理由まで付けて出力してくれます。

MicrosoftのAzure OpenAI Serviceを利用している、じゃらんの『AIチャットでご提案(試験運用版)』をテスト、チャットボット形式で質問の内容に沿った返答がされているかを確認してみました。
プロンプトは非常にシンプル、「生成された結果がプロンプトに適切な結果であることを確認する。」としています(隠れていますが「テストアサーションの結果は日本語で表示する。」とおまじないをかけています)。

プロンプトエンジニアリングにおいて様々なTipsが存在するのは、アウトプットに至るまでの過程がブラックボックスだから、インプットの段階で自然言語を用いて可能な限り曖昧さを排除することで、なるべくコントロールをしようとするからですよね。

GenAIアサーションは先述の通り、推論の内容(アサーションが成功/失敗した理由)も出力されています。プロンプトの意図を理解した上で、チャットボット上の質問内容と出力結果の整合性を確認している様子が伺えます。一例として旅行サイトで試してみましたが、例えば生成AIによって出力された画像やECサイトなどで商品検索をした結果など動的な要素についてもGenAIアサーションで『期待された通り出力されるか』を簡単に確認できます。活用次第で従来テストが不可能とされていた項目もテストが可能になるでしょう。

GenAIアサーションを使ってみる

コマーシャルでゴメンですが) もしお手元の環境でGenAIアサーションを使ってみたい方は14日間の無料トライアルからmablのフル機能を試用できます。
mablを初めて触る方は先述のASCIIさんの記事やmablデスクトップアプリ上にある『ガイド付きチュートリアル』を参考に基本的な使用方法をご確認ください。基本的にマウスクリックでほとんどの操作が可能です。

GenAIアサーションを使用するために一旦チャットボットに質問を投げ、mablトレーナーの下部の右側にあるチェックボタン(アサートボタン)をクリックします。暦の上ではもうすぐ春になりますが、まだまだ寒いですし温泉で身体を温めたいですよね(願望の吐露)

今回は画面上の要素選択を行わず、mablトレーナーの『(キラキラ)GenAI画面キャプチャ』をクリックして、次の画面でプロンプトを打ち込んでいきます。

先の例に倣って「生成された結果がプロンプトに適切な結果であることを確認する。」としました。『テストアサーション』で結果を見てみるとアサーションが失敗、その下には理由が記載されています。今回失敗した原因は、以下の2つが該当するように見えます。

  • 「-**貸切露天風呂があるか:**生成された結果には「絶景露天風呂を楽しむことができる」と記載されているが、貸切露天風呂であるとは明記されていない。」
  • 「-**2025年3月24日から2泊の宿泊が可能か:**生成された結果には宿泊プランとして「2024年4月〜」の表記があるが、2025年3月24日を含むかどうかは不明である。」


mablトレーナーには「プロンプトを修正して改善してください」と表示され、控えめでいじらしい様子が伺えますが、改善すべきはプロンプトではなくAOAIによる出力結果であると判断できます。テスト作成段階ですが、どうやらきちんと仕事をしたようですね。

プロンプトを入力した際は当然キーボードを使用したものの、基本的にボタンクリックだけでGenAIアサーションを使用できることがご理解いただけたかと思います。
より詳しい情報はmablのヘルプページ生成AIによるアサーションの作成や、生成AIによるアサーションのベストプラクティスをご参照ください。

ちなみにGenAIアサーションはモバイルアプリテストでも使用可能です。詳細はmabl Blog モバイルテストにおける生成AIによるアサーションの活用をご覧ください。

おわりに

せっかくトライアルに申し込んだのなら、GenAIアサーションを試すだけだともったいないので、ぜひmabl認定資格試験にチャレンジしてみましょう!執筆時点で3つの資格試験があり、無料でオンライン試験を何度でもトライできます。合格したらバッジが発行されるので、LinkedInの個人ページに追加してmablチョットワカルとアピールしましょう!

いきなり資格試験を受けるのは心理的ハードルが高いと思うので、mabl Universityで学習するのもオススメです。トライアル期間を余すことなく使い倒していきましょうd(´Д` )♪

Discussion