AIシステムのテストが従来のソフトウェアテストと違うのは、期待値を先に書き下せない点にあります。「この入力ならこの出力」という正解表が作れないため、合否判定そのものが設計対象になる。しかも欠陥の原因はコードより学習データ側に寄り、リリース後は入力データが変わるだけで精度が落ちていきます。
データ品質の検査を後回しにすると、原因の切り分けに入るのは本番稼働後です。そこから学習のやり直しとデータ再収集が同時に走ります。この記事では、データ品質のテスト方法を検査項目・分割設計・自動化の順に具体化し、評価指標の選び方、産総研・QA4AI・ISOのガイドラインの使い分け、LLMを組み込んだシステム特有の観点、運用後の劣化監視までを一次資料に基づいて整理します。
まとめ:AIテストで先に決める品質レベルとデータ検査の型
順序を守ると手戻りが減ります。第一に、システムが人身・経済にどこまで影響するかから外部品質のレベルを決める。産総研の機械学習品質マネジメントガイドライン第4版は外部品質を5特性に分け、うちリスク回避性をAI安全性レベル(AISL)の7段階、AIパフォーマンス・公平性・プライバシーをそれぞれ3段階で定義しています(AIセキュリティに固有のレベルは置きません)。ここが決まらないままテストケースを書き始めると、どこまでやれば十分かの基準がないまま工数が積み上がります。
第二に、データ品質の検査項目を数値で固定します。ISO/IEC 25012(JIS X 25012:2013)の15特性のうち自動計測しやすいのは正確性・完全性・一貫性・最新性。欠損率・重複率・値域外率に閾値を置き、超えたらパイプラインを止める。第三に、モデルの合否を単一の正解率で出さないこと。クラス不均衡があると正解率は高止まりするため、適合率・再現率・F値のどれを優先するかを業務要件から決めます。運用開始後は入力データの分布と出力の統計を継続監視する。以下、各段階を具体化します。
AIテストが従来のソフトウェアテストと分かれる理由|期待値が決まらない前提での検証
テストオラクル問題と、疑似オラクル・メタモルフィックテスティングによる代替
ISO/IEC TR 29119-11:2020は、AIベースシステムのテストの主要課題としてテストオラクル問題を挙げています。テストオラクルとは、ある入力への出力が正しいかを判定する仕組みのこと。画像から異常を検出するモデルで、未知の画像の「正解」を人手で用意し続けるのは現実的ではありません。
この制約を回避する手法として、QA4AIのAIプロダクト品質保証ガイドライン2025.04版は技術カタログに疑似オラクル、メタモルフィックテスティング、頑健性検査、ニューラルネットワークにおけるカバレッジを収録しています。疑似オラクルは同じ仕様の別実装や旧バージョンのモデルを比較対象に使う方法。メタモルフィックテスティングは正解そのものではなく入出力間の関係性を検証します。画像を左右反転しても分類結果は変わらないはずだ、という関係が崩れたら欠陥の兆候です。
2025年にはISO/IEC TS 42119-2:2025「Artificial intelligence — Testing of AI — Part 2: Overview of testing AI systems」が発行され、既存のISO/IEC/IEEE 29119シリーズをAIシステムへ適用する要求事項と指針がリスクベースの枠組みで示されました。従来のテストプロセス標準を捨てるのではなく、AI特有のリスクに応じて手法を選び直す立て付けです。
欠陥の所在が実装からデータ・モデルへ移る構造
従来型のシステムでは、テストで検出した不具合はソースコードの修正に帰着します。静的コード解析の誤検知と限界で扱うような実装レベルの検査が有効なのは、仕様と実装のずれが欠陥の主因だからです。
機械学習要素を含むと、この前提が崩れます。推論コードに誤りがなくても、学習データに特定条件のサンプルが無ければモデルはその条件で誤る。修正手段は再学習であり、直した結果として他のケースの精度が下がることもあります。テストの単位も「1件のバグ」ではなく「精度の分布」になるため、バグ密度・テスト密度の目安のような従来型メトリクスは機械学習要素そのものには当てはまりません。周辺のアプリケーション部分には従来どおり有効です。
データ品質のテスト方法|ISO/IEC 25012の検査項目とパイプラインへの組み込み
検査項目の決め方:ISO/IEC 25012の15特性からの自動計測項目の絞り込み
データ品質のテスト方法を決めるとき、最初に必要なのは「何を測るか」の一覧です。ISO/IEC 25012:2008(国内ではJIS X 25012:2013)はデータ品質を15の特性で定義し、それぞれをデータ自体に由来する固有の品質と、システムに依存する品質に分類しています。
| 分類 | 品質特性 |
|---|---|
| 固有のみ | 正確性、完全性、一貫性、信ぴょう性(Credibility)、最新性 |
| 固有かつシステム依存 | アクセシビリティ、標準適合性、機密性、効率性、精度、追跡可能性、理解性 |
| システム依存のみ | 可用性、移植性、回復性 |
15すべてを毎回測る必要はありません。パイプラインに組み込んで自動計測できるのは、固有のみに分類される5特性が中心。完全性は必須項目の欠損率、一貫性は重複レコード率や参照整合性の違反数、正確性は値域や型の逸脱率、最新性は最終更新からの経過日数に落とせます。信ぴょう性だけは出所の記録という手続きの問題なので、自動テストではなくデータカタログ側で担保する。ISO/IEC 25012はISO/IEC 25010の品質特性一覧と2023年改訂と同じSQuaREシリーズの一部で、システム側の品質特性と対応づけて読めます。
データ分割とリーク検査:主キーの積集合ゼロ、テスト最小時刻>学習最大時刻
最も見落とされるのが分割の妥当性です。分割後に同一レコードが複数のセットへ混入していると、テストの精度が実力より高く出ます。同一ユーザーの複数レコードが学習側とテスト側に分かれている、時系列データを無作為分割して未来の情報が学習側に入っている、が典型例。
検査は難しくありません。分割後に主キーの積集合を取り、空でなければ失敗とする。時系列データなら、テストセットの最小時刻が学習セットの最大時刻より後であることを確認する。この2つを自動テストに入れるだけで、実運用で精度が出ない原因の相当部分を出荷前に潰せます。テストセットは最終評価の1回だけに使い、ハイパーパラメータの調整には検証セットを使ってください。テストセットを見ながら調整を繰り返すと、そのテストセットに対する過学習が起こります。
データ品質テストの自動化と閾値設計
検査項目と閾値が決まれば、パイプラインの前段に品質ゲートを置きます。Pythonなら期待値をルールとして宣言するgreat-expectations(2026年8月時点の最新版は1.20.0、2026年8月7日公開、Python 3.10以上3.14未満)、データフレームのスキーマとして書くpandera 0.32.1。変換処理をdbt-core 1.12.2で組んでいるなら、同じ検査をdbt testとしてモデル定義に併記できます。置き場所を既存のワークフローに合わせるのが先で、専用ツールの選定は後回しでかまいません。標準ライブラリだけでも品質ゲートは成立します。
import csv, sys
from collections import Counter
THRESHOLDS = {"missing_rate": 0.02, "duplicate_rate": 0.01, "out_of_range_rate": 0.0}
def gate(path):
rows = list(csv.DictReader(open(path, encoding="utf-8")))
n = len(rows)
metrics = {
"missing_rate": sum(1 for r in rows if not r["age"]) / n,
"duplicate_rate": (n - len(set(r["user_id"] for r in rows))) / n,
"out_of_range_rate": sum(1 for r in rows if r["age"] and int(r["age"]) > 120) / n,
}
ng = [k for k, v in metrics.items() if v > THRESHOLDS[k]]
for k, v in metrics.items():
print("%-18s %.3f / %.3f %s" % (k, v, THRESHOLDS[k], "NG" if k in ng else "ok"))
print("label:", dict(Counter(r["label"] for r in rows)))
return 1 if ng else 0
sys.exit(gate(sys.argv[1]))
欠損・重複・値域外を含む10行のCSVに対しPython 3.9.6で実行すると、次の出力とともに終了コード1で停止します。
missing_rate 0.100 / 0.020 NG
duplicate_rate 0.100 / 0.010 NG
out_of_range_rate 0.100 / 0.000 NG
label: {'ok': 7, 'ng': 3}
ツールの種類より、閾値超過で学習ジョブを止めることが要点です。警告を出すだけの実装は、期限が迫ると誰も見なくなる。閾値は直近数か月の実データで各指標を計測し、その分布の上限より少し緩い値から始めて段階的に締めます。ラベル分布も記録しておくと、後から精度が落ちたときにデータ側の変化と突き合わせられます。
AIモデルの評価指標と汎化性能の確認手順|正解率だけで合否を出さない基準
タスク別の指標選択:適合率・再現率・F値の使い分け
不良品検出のように陽性が全体の1%しかないデータでは、すべてを陰性と判定するだけで正解率99%になります。正解率を合否基準にすると、この無意味なモデルが合格します。
| 指標 | 意味 | 優先すべき場面 |
|---|---|---|
| 適合率 | 陽性と判定したうち実際に陽性の割合 | 誤検知の対応コストが高い |
| 再現率 | 実際の陽性のうち検出できた割合 | 見逃しが事故につながる |
| F値 | 適合率と再現率の調和平均 | 両者の均衡を1値で見る |
| AUC | 閾値を変えたときの識別性能 | 判定閾値が未確定の段階 |
選び方は業務側のコスト構造で決まります。医療スクリーニングや設備の異常検知は見逃しの損失が大きいため、再現率を優先して適合率の下限だけを制約に置く。検知するたび人手の確認作業が発生する運用なら逆で、適合率を優先しないと現場が回りません。誤検知1件と見逃し1件のコストを業務側に確認してから指標を固定してください。
汎化性能の検証設計とデータ分割の落とし穴
汎化性能とは、学習に使っていないデータに対する性能です。データ量が十分ならホールドアウト法、少なければk分割交差検証を使いますが、どちらも分割の切り方が結果を左右します。店舗ごとの需要予測で無作為分割すると、同じ店舗のデータが学習側とテスト側の両方に入り、未知店舗には適用できないモデルが高評価になります。運用時に予測対象となる単位(未知の店舗か、既知店舗の未来か)と同じ切り口で分割する。これが検証設計の原則です。
過学習の検知(学習誤差と検証誤差の乖離点)と早期終了・正則化
過学習は、学習データの偶発的なパターンまでモデルが取り込み、未知データで性能が落ちる状態です。検知は単純で、学習データへの精度と検証データへの精度の差を見ます。学習側の誤差が下がり続ける一方で検証側の誤差が上昇に転じたら、その転換点が過学習の始まり。対策はデータ追加、モデルの表現力低下、正則化、検証誤差の悪化時点で学習を打ち切る早期終了です。実務ではデータ追加が最も効きますがコストも最大なので、早期終了と正則化で改善するかを先に確認し、それでも足りない場合にデータ収集の投資判断へ進みます。
国内外のAI品質ガイドラインの使い分け|産総研・QA4AI・ISOの守備範囲
機械学習品質マネジメントガイドライン第4版:外部品質5特性とAI安全性レベル
産業技術総合研究所の機械学習品質マネジメントガイドラインは、第4版のRevision 4.2.0が2024年4月4日に公開されています(技術報告番号 DigiARC-TR-2023-03 / CPSEC-TR-2023003)。実務上の価値は、達成すべき品質を外部品質と内部品質に分け、外部品質にレベルを与えている点にあります。
外部品質は、安全性・リスク回避性、AIパフォーマンス、公平性、プライバシー、AIセキュリティの5特性。このうちリスク回避性は、人的リスクと経済的リスクに細分したうえでAI安全性レベル(AISL 4、AISL 3、AISL 2、AISL 1、AISL 0.2、AISL 0.1、AISL 0)の7段階に分類します。AISL 4〜1は機能安全規格IEC 61508の安全性インテグリティレベルSIL 4〜1と概ね対応させ、従来「SILなし」とされていた領域を0.2、0.1、0の3段階に分割した設計です。
残る特性は別の記号体系で3段階に分かれます。AIパフォーマンスはAIPL 2/1/0で、性能指標の充足が運用上の必須または契約上の受入要件ならAIPL 2、目的として特定されているが必須ではなければAIPL 1、指標そのものが未特定でPoCで終了する開発はAIPL 0。公平性はAIFL 2/1/0、プライバシーはAIPrL 2/1/0で、いずれも法令・規則による要求の有無が2と1を分けます。AIセキュリティには固有のレベルがありません。「AIの品質レベル」を一括りにせず特性ごとに水準を決める、というのがこの体系の要点です。
内部品質特性は5分野14特性として定義され、テスト観点そのものに使えます。
| 記号 | 内部品質特性 |
|---|---|
| A-0 | 問題構造の事前分析の十分性 |
| A-1 | 問題領域分析の十分性 |
| A-2 | データ設計の十分性 |
| B-1 | データセットの被覆性 |
| B-2 | データセットの均一性 |
| B-3 | データの妥当性 |
| B-4 | 外部品質ごとのデータセットの妥当性 |
| C-1 | 機械学習モデルの正確性 |
| C-2 | 機械学習モデルの安定性 |
| C-3 | 外部品質ごとの機械学習モデルの妥当性 |
| D-1 | プログラムの信頼性 |
| D-2 | プログラムに関するその他の信頼性 |
| E-0 | 運用時の継続的モニタリングと記録 |
| E-1 | 運用時品質の維持性 |
前節のデータ品質テストは、この体系ではB-1からB-3に相当します。被覆性は想定される入力の範囲をデータが覆っているか、均一性は特定の条件にサンプルが偏っていないかを問うもので、欠損率や重複率の検査だけでは埋まりません。テスト計画を作るときはA-0からE-1までを表にして、どの記号にどの検査を用意したかを埋めていくと抜けが見えます。
QA4AIガイドライン2025.04版:5軸チェックリストで抜けを点検
AIプロダクト品質保証コンソーシアム(QA4AI)のAIプロダクト品質保証ガイドラインは、2019年5月17日の初版から改訂が続き、最新は2025年4月10日公開の2025.04版です(クリエイティブ・コモンズ表示-継承4.0国際ライセンス)。品質保証で考慮すべき軸としてData Integrity、Model Robustness、System Quality、Process Agility、Customer Expectationの5つを置き、軸ごとにチェックリストを提供します。産総研のガイドラインが品質の水準を決める体系であるのに対し、こちらは進め方の抜けを点検する道具。AI-OCR、自動運転、Voice User Interface、産業用プロセス、コンテンツ生成系システム、大規模言語モデル・対話型生成AIの応用領域別の章もあり、自社の適用領域に対応する章があるならそこから読むのが早道です。
ISO/IEC 25059とISO/IEC TS 42119-2:国際規格側の位置づけ
国際規格では、ISO/IEC 25059:2023がSQuaREシリーズの応用拡張としてAIシステムの品質モデルを定めています。ISO/IEC 25010の品質特性を土台に、確率的な振る舞いやデータ依存性といったAI固有の性質を扱う構成です。改訂作業も進んでおり、第2版はタイトルが「Quality models for AI systems」と複数形になっています。テストの実施面はISO/IEC TR 29119-11:2020とISO/IEC TS 42119-2:2025が担当します。審議段階と発行状況は動くため、参照時はISO公式サイトで最新の版を確認してください。
テスト技術者向けの学習体系にはISTQBのAIテスティング(CT-AI)シラバスがあり、2026年時点の最新はバージョン2.0で生成AIと大規模言語モデルのテストが加わりました。旧バージョン1.0の英語版試験は2027年4月21日まで、英語以外は2027年10月21日までです。
使い分けは単純です。国内で開発する多くのプロジェクトでは、品質レベルの決定と要求事項の具体化に産総研のガイドラインを使い、進め方の点検にQA4AIのチェックリストを使う。国際規格は、海外顧客や認証取得の要件として求められたときに参照する。3つを同時に導入しようとすると文書作成だけで工数が尽きます。
LLMを組み込んだ生成AIシステムのテスト観点
生成AI品質マネジメントガイドラインが示すコンポーネント分解
他社が提供する大規模言語モデルを部品として使う開発では、モデル本体の学習過程に手が届きません。この立場を正面から扱うのが、産総研が2025年5月26日に公開した生成AI品質マネジメントガイドライン第1版(Revision 1.0.0、IPRI-TR-2025-01 / CPSEC-TR-2025001)です。想定読者を、他社製の基盤モデルを用いたシステムの開発と提供に携わる人々と明記しています。
同ガイドラインは、LLM利用AIシステムを次のコンポーネントに分けて品質要求と管理策を割り当てます。LLMの選定と追加学習、プロンプトとその周辺(システムプロンプト、プロンプト補完コンポーネント、データとしてのプロンプト)、RAG関連コンポーネント(ファイルデータベース、ファイル検索コンポーネント、ファイルデータの品質)、外部連携コンポーネント、入力フィルター、出力フィルター、HMIコンポーネントです。
この分解が効くのは、テストの責任範囲が確定するからです。基盤モデルの性能は選定時の評価で確認し、以後は自社で制御できるプロンプト、検索対象のファイルデータ、入出力フィルターをテスト対象にする。RAG構成なら検索されたファイルの品質がそのまま回答品質になるため、前述のデータ品質ゲートを検索対象データにも適用します。RAG特有の誤りの検出は、RAGのハルシネーションを検出する評価データセットRAGTruthの考え方が参考になります。
LLM固有の品質特性QC01〜QC05と評価の分担
QA4AIガイドラインの大規模言語モデル・対話型生成AIの章は、LLMの品質特性をQC01回答性能、QC02事実性・誠実性、QC03倫理性・アラインメント、QC04頑健性、QC05 AIセキュリティとして整理し、それぞれに評価手法を対応づけています(QC番号は当該章の中での通し番号です)。
実装する順序には優先度があります。まず自社システム固有のタスクに対する回答性能(QC01)と、自社が扱う知識に関する事実性(QC02)を評価データセットとして用意する。ここは公開ベンチマークでは代替できません。次にプロンプトインジェクションを含むAIセキュリティ(QC05)。倫理性や頑健性は基盤モデル提供側の対策に依存する部分が大きく、自社で作り込むより提供元の評価結果を確認するほうが費用対効果が高い領域です。
運用開始後の品質劣化を検知する監視の設計
AIシステムの品質は、リリース時点が最高で以後は下がっていくと考えて設計します。コードが変わらなくても、入力データの分布が変われば精度は落ちるためです。産総研のガイドラインが内部品質にE-0(運用時の継続的モニタリングと記録)とE-1(運用時品質の維持性)を置いているのは、この前提によります。
- 入力データの分布:特徴量ごとの平均・分散・欠損率を学習時のベースラインと比較する
- 出力の分布:予測クラスの構成比が学習時から乖離していないかを見る
- 実績との突合:正解ラベルが後から判明する業務なら、期間ごとに実測精度を再計算する
- 入力データの品質:学習時に使った品質ゲートを推論時の入力にも適用する
正解ラベルが遅れて判明する業務では、実測精度の再計算が最も信頼できる指標になります。ラベルが得られない業務では入力分布の監視が唯一の早期警戒になるため、閾値超過時に誰が何をするかまで運用手順に落とす。監視値が動いたときの体制や工程の作り方は、受託開発の工程別レビュー・テスト管理とメトリクス運用の品質管理の枠組みと同じ考え方で整理できます。
AIテストで成果が出ない進め方と、テストを厚くすべきでない場面
失敗の型はほぼ決まっています。最も多いのは、外部品質のレベルを決めずにテストケースの量を増やす進め方。AISL相当の水準が定まらないままでは「もっとテストすべきでは」という議論に終わりがなく、工数だけが積み上がります。次に多いのが、テストセットを見ながらモデルを調整し続けるパターンです。評価値は上がりますが、それはテストセットへの過学習であって実力ではありません。
逆に、テストを厚くすべきでない場面もあります。社内数名が使う分類補助ツールで出力を必ず人が確認して修正する運用なら、メタモルフィックテスティングやニューロンカバレッジの導入は過剰です。この構成のリスクは誤分類そのものではなく、人の確認が形骸化すること。投資先はモデルのテストではなく、確認漏れを検出する運用側の仕組みです。
判断基準は明快です。誤りが自動的に業務へ反映されるか、人の確認を必ず経るか。前者ならモデル単体の品質保証に投資し、後者ならヒューマンインザループの運用設計に投資する。担当の置き方も同じ基準で決まります。自動反映される構成では、データ品質ゲートの閾値を業務側が承認し、閾値超過時に処理を止める判断を開発側が持つ。人の確認を経る構成では、確認の実施率そのものを業務側の指標に置き、開発側はその計測手段を用意します。
よくある質問
AIテストとは何ですか?
機械学習要素を含むシステムに対して、データ・モデル・システム全体の品質を確認する活動の総称です。従来のソフトウェアテストと異なり入力に対する正解をあらかじめ用意できない場合が多いため、疑似オラクル(別実装や旧バージョンとの比較)やメタモルフィックテスティング(入出力の関係性の検証)を併用します。ISO/IEC TR 29119-11:2020がこの領域の課題と手法を整理しており、2025年にはISO/IEC TS 42119-2:2025として、既存のテストプロセス標準をAIシステムへ適用する指針が加わりました。
データ品質のテストはどの頻度で回すべきですか?
学習データは再学習のたび、推論時の入力データはバッチ処理ごと、オンライン推論なら日次の集計が基準です。頻度より重要なのは、閾値を超えたときに処理を止めるかどうか。警告のみの実装は見過ごされます。学習パイプラインの前段に品質ゲートを置き、欠損率・重複率・値域外率が閾値を超えたら学習ジョブを失敗させる構成にしてください。閾値は直近の実データの分布から決め、運用しながら段階的に締めます。
AIの精度は何パーセントあれば合格ですか?
単一の合格ラインは存在しません。誤検知1件と見逃し1件のコストを業務側で見積もり、適合率と再現率のどちらを優先するかを決めるところから始めます。陽性が全体の数パーセントしかないデータでは、すべてを陰性と判定するだけで正解率が90%を超えるため、正解率を基準にすると判断を誤ります。産総研の機械学習品質マネジメントガイドラインは、AIパフォーマンスの水準を、性能指標の充足が契約上の必須要件か(AIPL 2)、目的として特定された努力目標か(AIPL 1)、指標そのものが未特定か(AIPL 0)で設定する枠組みです。合格ラインは絶対値ではなく、この位置づけの合意から決まります。
過学習はどう見分けますか?
学習データへの誤差と検証データへの誤差を、学習の進行に沿って並べて比較します。学習側の誤差が下がり続けているのに検証側の誤差が上昇へ転じたら、その転換点が過学習の始まりです。対策は早期終了と正則化から試し、モデルの表現力を下げても改善しない場合にデータの追加収集を検討します。なお、テストセットで調整を繰り返して評価値を上げる行為も同種の過学習にあたるため、テストセットは最終評価の1回だけに使ってください。
AI品質保証のガイドラインはどれを参照すればよいですか?
国内開発なら、産総研の機械学習品質マネジメントガイドライン第4版(Revision 4.2.0、2024年4月4日公開)を品質レベルと要求事項の決定に使い、QA4AIのAIプロダクト品質保証ガイドライン2025.04版を進め方の点検に使う組み合わせが実務的です。生成AIを組み込むシステムなら、産総研が2025年5月26日に公開した生成AI品質マネジメントガイドライン第1版が、他社製基盤モデルを利用する立場での管理策を扱っています。国際規格のISO/IEC 25059:2023などは、海外顧客や認証の要件として求められた段階で参照すれば足ります。