AI搭載機能のテスト戦略
· 7分で読める
決定的テストはなお重要だ。確率的な部分には評価を組み合わせろ。
決定的と確率的を分ける
AI機能の多くはなお普通のソフトウェアだ:認証、入力検証、検索クエリ、レート制限、永続化、UIレンダリング。それらの層は固定フィクスチャ付きの古典的な単体・統合テストに値する。真ん中にモデルがあるから弱めるな。
生成ステップは別のアプローチが要る。自由形式回答の厳密な文字列一致はフレークなスイートを生む。モデル周りの契約をテストし、プロダクトプロパティに対してモデル出力を評価しろ。
継続的インテグレーションでは賢くスタブする
すべてのプルリクエストでライブモデルを呼ぶのは遅く、高く、非決定的だ。PRパイプラインでは録音フィクスチャや決定的スタブを使い、スケジュールで、またはプロンプト・モデル・検索ロジックが変わるときに、より広い評価スイートを走れ。
スタブするとき、現実的なレイテンシと失敗モードを保て。完璧なモデル応答だけを見るテストは、タイムアウト処理や不正出力パスを守らない。
- レンダリング前に出力スキーマをアサートする
- 重要なグラウンデッド回答をゴールデンファイル化する
- 空の検索とツール失敗をシミュレートする
- モデルの創造性ではなく契約テストでマージをゲートする
ジャーニーレベルの確信度を足す
エンドツーエンドテストは、ユーザーがAI支援ジャーニーを完了できることを検証すべきだ:要求を入れ、検証済み応答を見、拒否から復旧し、必要ならエスカレートする。これらのジャーニーは少なく安定に保て。
自動化ジャーニーを、サンプリングした本番出力の定期的な人のレビューとペアにしろ。AIの品質エンジニアリングは、ソフトウェア規律とプロダクトセンスのブレンドだ。
失敗を行動可能にする
失敗するAIテストは、スキーマが壊れたか、検索が外れたか、ポリシーが誤拒否したか、評価スコアが落ちたかを伝えるべきだ。曖昧な赤いビルドは、チームに無視する癖を付ける。
AI機能をテストする目的は、モデルが決定的だと偽ることではない。確率的コンポーネントを、運用可能・レビュー可能・安全に変更可能なシステムの中に保つことだ。
2024年4月16日、Berktug Berke Ates が公開。