Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
メタモルフィックテスティングでMBT気分
Search
Shinsuke Matsuki(snsk)
January 20, 2025
Technology
27
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
メタモルフィックテスティングでMBT気分
Shinsuke Matsuki(snsk)
January 20, 2025
More Decks by Shinsuke Matsuki(snsk)
See All by Shinsuke Matsuki(snsk)
品質定義の組織レベル
snsk
0
67
LLMチャットボットの評価モデル
snsk
0
37
ゲームのテスト設計のチャレンジ
snsk
0
63
JSTQB Conference2023 基調講演2
snsk
0
27
Other Decks in Technology
See All in Technology
会社紹介資料 / Sansan Company Profile
sansan33
PRO
24
430k
AIペネトレーションテスト・ セキュリティ検証「AgenticSec」紹介資料
laysakura
2
9.2k
ガバメント AI 源内を地方自治体は活用できるのか可能性と課題、期待について
takeda_h
2
440
Digitization部 紹介資料
sansan33
PRO
2
7.7k
Bits AI を制するものは Datadog を制す / The player that controls Bits AI, controls Datadog
kaminashi
0
120
『三匹の子ぶた』から学ぶネットワークセキュリティの昔と今 / Network Security: Then and Now Through the Lens of The Three Little Pigs
nttcom
1
6.2k
カートの信頼性を担保するWireMockを使ったe2eテスト
ykagano
0
390
LLM Internals: 언어 모델의 계보와 알고리즘 진화 (2023~2026)
inureyes
PRO
0
550
生成 AI の基礎 〜 サンプル実装で学ぶ基本原理
enakai00
7
4.4k
What's new in Go 1.27?
ciarana
0
200
MulticaとPi Coding Agentで、小規模OSSを30本同時運用した流れ
eiei114
0
130
【GCC2026】大規模言語モデルを活用した内製検索サービスの社内展開や業務活用
bandainamcostudios
PRO
0
180
Featured
See All Featured
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
201
75k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
3
1.1k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
120
120k
Chasing Engaging Ingredients in Design
codingconduct
0
270
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
The Pragmatic Product Professional
lauravandoore
37
7.4k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.8k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.3k
Transcript
メタモルフィックテスティングでMBT 気分 @snsk
トーカー ベリサーブの品質エンジニア と、R&D部門のお世話係。 すごい人達がクラウドサービス開発とか 技術推進とか、先端技術研究とか、 いろいろやってくれてます。
メタモルフィックテスティング? • テスト対象の入出力の突き合わせ、入出力の関係性の変化に着目してテストモデ ルを構成するテストのアプローチ • テストデータ x と、x を加工した x'
を入力したときに得られる y, y' の間に関係式が 成立すれば、それを「メタモルフィック関係」 と呼べる • テストオラクル(≒期待動作)を得にくい状況で活用できる • テストデータの自動生成、テストの自動実行がしやすい • 画像認識で活用されるケースが多いけど、本来は画像に限った話ではない
画像分類におけるメタモルフィック関係? • 概ね、Typicalとされる画像に対して任意の画像変換をかけたとき(x')、変換前の画像 の判定と信頼度が大きく変化しないことを期待動作とするケースが多い • つまり、どれぐらい意味のある変換を行うか?がポイント 紅白饅頭 モノクロの紅白饅頭 饅頭だけグレースケール化 X
X' Y Y'
やってみた • 犬と猿とキジを見分けるモデルを作成する • この画像においては、精度0.999993で「犬」と判定するモデル
モデル このモデル構成はkerasのCifer10の exampleに昔あったもの。いまなぜか 無くなっているが、多くの画像認識の チュートリアルで未だに多く採用され ている。 https://github.com/keras-team/keras /blob/master/keras/benchmarks/ker as_examples_benchmarks/cifar10_
cnn_benchmark_test.py#L39
OpenCVチュートリアルに見る画像変換の種類 • 色変換 ◦ BGR(RGBの24bit表現) ⇔ Gray変換、BGR ⇔ HSV(色相/彩度/明度)変換 •
幾何変換 ◦ スケーリング、回転、並進、アフィン変換(並行性を保つ)、射影変換(直線性を保つ) • しきい値処理 ◦ 単純しきい値、適応的しきい値、大津の二値化 • 平滑化 • モルフォロジー変換 ◦ 膨張、収縮 画像変換って他にも山ほどあると思いますが、とりま。 http://labs.eecs.tottori-u.ac.jp/sd/Member/oyamada/OpenCV/html/py_tutorials/py_imgproc/py_table_of_contents_i mgproc/py_table_of_contents_imgproc.html#py-table-of-content-imgproc
持ち手とユースケースから考える有効な変換種別 ユーザーがお供3匹と出会うシーンにおいて「意味がありそうな」= 変換後に判定結果が変わってしまったら困 りそうな変換種別を考える
メタモルフィック関係の整理 オレンジ枠が意味のある メタモルフィック関係の元ネタに
本当は Scene: Momotaro meets a dog Distance Angle Angle Obstacle
Device: Momo Eyes Auto Focus Visual acuity 2.0 このような環境、デバイスのシミュレーションからノイズとなる要素を取り出したい。 実際、自動運転の開発では街、道路、人、モノなど現実空間のシミュレーションが盛ん。
メタモルフィック関係の整理:テストケースクラス
メタモルフィック関係の整理:インプリ
テスト結果 明度 拡縮 並進 誤判定をした場合、accをゼロにしているので、底に張り付いているときは何かおかしい
MBT気分の仕掛け 先ほど設定したテストケースクラスをJSONのまま読み込む
MBT気分の 仕掛け テストケースクラスの 指定に従った変換画像を生 成。テストデータの生成ともい える。
MBT気分の仕掛け 先ほど生成する際にファイル 名に連番を付けておいたの で、そのまま読み込んで判定 してグラフにプロットする。この とき、誤判定は信頼度をゼロ にしておくと結果が明らかで見 やすい
ポイント • メタモルフィック関係に基づいて画像変換のスケールをいろいろ試すときに便利 ◦ MLOpsに組み込みやすいとか • メタモルフィックテスティングにおいて、少なくとも画像認識のそれにおいては、期待 動作が一意に設定しやすいので、モデルベースドテストが適用しやすい • 回帰分析系のモデルにおいては、期待動作をメタモルフィック関係から導く仕組み
が必要 ◦ 例えば、不動産の売却額を求めるモデルで駅徒歩が 1分下がるごとに売値が N十万円上がる、など • 構造化テキストはYMLのほうが良かった気がする ◦ JSONだと欲しいデータへの PATHが長すぎて意味不明に
参考文献 • [1] 機械学習システムのためのメタモルフィックテスティング入門 - Qiita https://qiita.com/tokumoto/items/cd3d17cae3b099badaf6 • [2] Dwarakanath,
Anurag, et al. "Identifying implementation bugs in machine learning based image classifiers using metamorphic testing." Proceedings of the 27th ACM SIGSOFT International Symposium on Software Testing and Analysis. ACM, 2018. (https://arxiv.org/abs/1808.05353) • [3] 佐藤 直人 (著), 小川 秀人 (著), 來間 啓伸 (著), 明神 智之 (著), 「AIソフトウェアの テスト――答のない答え合わせ [4つの手法]」, リックテレコム, 2021