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

JaSST nano 19 / AIシステムのブラックボックステスト / Black-box ...

JaSST nano 19 / AIシステムのブラックボックステスト / Black-box Testing for AI-based System

Kazuhiro SUZUKI

December 20, 2022
Tweet

More Decks by Kazuhiro SUZUKI

Other Decks in Technology

Transcript

  1. 1 / 21 Copyright 2022, Kazuhiro SUZUKI ISO/IEC/IEEE 29119-11から AIシステムのブラックボックステストについて

    メモってみたの Dec. 20th, 2022 JaSST nano vol.19 @ Online 鈴木 一裕 @ kz_suzuki Image: "Assortment of colorful fresh fruits, nuts and seeds. Top view" by ChristMarco Verch Professional Photographern Collins is licensed under CC BY-SA 2.0.
  2. 2 / 21 Copyright 2022, Kazuhiro SUZUKI 自己紹介 ◼ 鈴木

    一裕 ◼ 職業: QAエンジニア ◼ Twitter: @kz_suzuki ◼ ブログ: ソフトウェアの品質を学びまくる
  3. 3 / 21 Copyright 2022, Kazuhiro SUZUKI 何の話? ◼ 概要

    ⚫ 29119-11という規格をざーっと読んだ。 ⚫ AIの特徴的な課題として、テストオラクル欠落問題がある。 ⚫ AIのテストで利用されるブラックボックステスト技法の一部は、テストオラクル問題を軽減できる。 ◼ 注意 ⚫ 「解説」じゃなくて、「メモの共有」です! ◼ もちかえっていただきたいもの ⚫ 「そういう技法が使われているのかー」ということを知ってもらえれば。
  4. 6 / 21 Copyright 2022, Kazuhiro SUZUKI ISO/IEC/IEEE 29119-11 ◼

    ISO/IEC/IEEE 29119 ⚫ ソフトウェアテストの国際標準 ⚫ 思いのほかたくさん出ています。 - Part 1: 概念と定義 - Part 2: テストプロセス - Part 3: テストドキュメント - Part 4: テスト技法 - Part 5: キーワード駆動テスト - Part 6: アジャイルのテスト - Part 8: モデルベースドテスト - Part 11: AIのテスト - Part 13: バイオメトリクス
  5. 7 / 21 Copyright 2022, Kazuhiro SUZUKI ISO/IEC/IEEE 29119-11 ◼

    ISO/IEC/IEEE 29119-11 ⚫ Guidelines on the testing of AI-based systems ⚫ IS(International Standard)ではなく、TR(Technical Report)という位置づけ。 - Technical Report = 技術報告書 - 「技術報告書は各分野固有の専門技術に特化した文書です。現在、もっとも活発にISO/TRが発行されたり、 開発されたりしているのは、情報技術 Information Technology の分野です。」 (CQIのサイトより)
  6. 8 / 21 Copyright 2022, Kazuhiro SUZUKI ISO/IEC/IEEE 29119-11 ◼

    29119-11の 構成 ⚫ 1. スコープ ⚫ 2. 引用規格 ⚫ 3. 用語、定義、略語 ⚫ 4. AIとテストの紹介 ⚫ 5. AIシステムの特徴 ⚫ 6. AIベースシステムのテストのイントロ - 6.1. AIベースシステムのテストの課題 > 6.1.12. AIベースシステムのテストオラクル問題 ⚫ 7. MLシステムのテストと品質保証 ⚫ 8. AIベースシステムのブラックボックステスト ⚫ 9. AIベースシステムのホワイトボックステスト ⚫ 10. AIベースシステムのテスト環境 ⚫ Annex A - 機械学習
  7. 10 / 21 Copyright 2022, Kazuhiro SUZUKI 6.1.12 AIベースシステムのテストオラクル問題 ◼

    テストオラクル ⚫ 「テスト対象のソフトウェアの実行結果と比較する期待結果のソース。 オラクルは、実在する(ベンチマーク用の)システム、他のソフトウェア、ユーザマニュアル、 個人の専門知識の場合があるが、コードであってはならない。」(ISTQB用語集) ◼ テストオラクルの例(*1) ⚫ そのソフトウェアをふるまいを記述したドキュメント - 仕様書、ユーザーマニュアルなど ⚫ 比較対象にできるソフトウェア - 競合製品など ⚫ 過去の履歴 - 過去のテストケース実行結果など ⚫ 人間の知識 - 「専門家がOKと判断すればOK」など。text to imageの場合もこれに相当? ⚫ その他 (*1) 以下の記事で、テストオラクルについて書いています。はじめてQRコード使ってみたけど、普通に邪魔だな? 1次元なら扱いやすいのに・・・。 テストオラクルとは何か
  8. 11 / 21 Copyright 2022, Kazuhiro SUZUKI 6.1.12 AIベースシステムのテストオラクル問題 ◼

    テストオラクルが不足しがちな理由 ⚫ 仕様がない! (6.1.2) - 仕様の記述が、従来以上に不完全・非形式的になりがちで、期待値を決めるのが難しい。 - 「未知の洞察」を得ることが目的のシステムであれば、本質的に期待値は未知となる。 ⚫ 複雑! (5.1.5、6.1.10) - 典型的なニューラルネットワークでは、一つの判断を行うだけでもパラメタの数が1億超えだったり。 ⚫ 確率的・非決定的(*1)! (5.1.7、6.1.11) - AIベースシステムの多くは、確率的な実装(*2)をしているため、非決定的になる。 - 最適そのものではない「次善最適」を受け入れることが、出力の再現性の欠如をもたらす。 - 非決定性にともなう変動を考慮に入れた、「賢い期待値」(*3)が必要。 ⚫ 自己学習する! (5.1.3、6.1.4) - システムが新しいデータを学ぶことでふるまいが変化していく。 - 当初うまく通ったテストが、後のシステムでは通用しないかもしれない。 (*1) 確率的: probabilistic 非決定的: non-deterministic (*2) たとえば「最短ルート」を求める(巡回せぇるすまん問題)場合、厳密な解を見つけることが困難であるため、初期値として選ばれたルートから導かれる「準・最適な解」(sub-optimal)をヨシとする。 (*3) smarter expected result
  9. 13 / 21 Copyright 2022, Kazuhiro SUZUKI 8. ブラックボックステスト ◼

    29119-11で説明しているブラックボックステスト ⚫ 8.1. 組み合わせテスト ⚫ 8.2. バックツーバックテスト ⚫ 8.3. A/Bテスト ⚫ 8.4. メタモルフィックテスト ⚫ 8.5. 探索的テスト 1つ1スライドで流していきます。
  10. 14 / 21 Copyright 2022, Kazuhiro SUZUKI 8.1. 組み合わせテスト ◼

    組み合わせテスト (Combinatorial Testing) ⚫ 要件に完全に合致していることを証明するには、あらゆる状況下のあらゆる入力の組み合わせを テストする必要がある。この「全数テスト」は非現実的。 ⚫ 組み合わせテストによって、システマティックかつ効果的に、テストケースを大きく削減できる。 - テストオラクル問題を解決するものではない。 ⚫ AIシステムの場合、パラメタの数自体が膨大。組み合わせテスト技法を使ってもなお、 テストセットは巨大なので、自動化と、仮想的なテスト環境が必要。 ⚫ そもそもペアワイズで十分なのかもまだまだ議論の余地はある。
  11. 15 / 21 Copyright 2022, Kazuhiro SUZUKI 8.2. バックツーバックテスト ◼

    バックツーバック(*1)テスト (Back-to-back(*2) testing) ⚫ そのシステムの「代替バージョン」を、擬似的なオラクルとして用いる。 - テストオラクルのスライドで説明した、「比較対象にできるソフトウェア」に該当。 - 「Nバージョンプログラミング」と呼ばれるものと同じコンセプトか?(*3) ⚫ 2つのシステムに同じ入力をして、同じ出力が出ればよいと考える。 - 両方間違う可能性もある。エラー訂正と少し似ている気がする。 ⚫ 代替バージョンは、違うチーム、違う言語で開発するなど、独立性が高いことが重要。 AIベースシステムの場合、利用するOSSが似たり寄ったりになり、独立性を保つのが難しいらしい。 (*1) toをカタカナにすると「ツー」になるのがとにかくダサいと感じる。 (*2) back to backは、「背中合わせの」という意味っぽい。 (*3) AIとは関係ないけれど、過去のJaSSTで本手法によるテストのお話(*3)があった。 自動改札機の運賃計算プログラムはいかにデバッグされているのか? 10の40乗という運賃パターンのテスト方法を開発者が解説(後編)
  12. 16 / 21 Copyright 2022, Kazuhiro SUZUKI 8.3. A/Bテスト ◼

    A/Bテスト (A/B testing) ⚫ 既存システムを部分的オラクルとして用いる。 - テストオラクルのスライドで説明した、「比較対象にできるソフトウェア」に該当。 ⚫ 2つのシステムのどちらが優れているかを決定する、統計的な手法。 - ユーザインタフェースの最適化などにも利用されている ⚫ 一つひとつのテストケースの期待値ではなく、システムとしての性能(*1)を比較するもの。 - これってテストオラクル問題を解決できているのかな・・・? (*1) ここでいう「性能」とは、時間効率性のことではなく、正答率、適合率、再現率といった、判定のよしあしに関するメトリクスのこと。
  13. 17 / 21 Copyright 2022, Kazuhiro SUZUKI 8.4. メタモルフィックテスト ◼

    メタモルフィックテスト (Metamorphic testing) ⚫ 正しいとわかっている元テストケースから、後続テストケースを生成する。 - テストオラクルのスライドで説明した、「その他」に該当。 ⚫ メタモルフィック関係: 入力値をどう変えると、出力値がどう変わるか - スタート位置Aとゴール位置Bを入力とし、A~B間の距離Cを出力とするシステムを考える。 ここでのメタモルフィック関係は、「AとBの入力値を入れ替えても、出力値Cは変わらない」 ⚫ 1つのメタモルフィック関係から、複数の後続テストケースが得られる ⚫ ドメイン知識が必要なので、メタモルフィック関係を自動生成することはできない - これは本当なのかな? ⚫ 従来のテストオラクルを使うことで検出できるバグの90%が、3~6種類のメタモルフィック関係で カバーされるとの研究がある。 - これ本当? AIシステムのテストじゃなくても、メタモルフィックテスティングを適用すべき・・・?
  14. 18 / 21 Copyright 2022, Kazuhiro SUZUKI 8.5. 探索的テスト ◼

    探索的テスト (Exploratory testing) ⚫ テストケースや手順を事前に記述しておくのではなく、対象のソフトウェアを触って学習しながら、 次に行うべきテストをその場で定め、実行していく。 - テストオラクルのスライドで説明した、「人間の知識」に該当。 ⚫ 仕様が乏しいAIシステムでは非常に役立つ手法。
  15. 20 / 21 Copyright 2022, Kazuhiro SUZUKI みなさんへのメッセージ ◼ ブラックボックステストも、別にこの5個で出尽くしたわけじゃなく、

    まだまだ技術開発中らしいですよ! ◼ 石川先生のお話は、AIをテストするための画像もAIに 生成させるというもので、まただいぶ違うお話でした。 進化が激しい! ◼ Next Action ⚫ 『AIソフトウェアのテスト 答のない答え合わせ』を読もう! - 佐藤 直人 (著), 小川 秀人 (著), 來間 啓伸 (著), 明神 智之 - リックテレコム、2021年