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
25
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
66
LLMチャットボットの評価モデル
snsk
0
35
ゲームのテスト設計のチャレンジ
snsk
0
59
JSTQB Conference2023 基調講演2
snsk
0
23
Other Decks in Technology
See All in Technology
LayerXにおけるセキュリティ管理の現在地と次の一手
tosho
0
250
PostgreSQL 19 新機能概要 OSC Hokkaido 2026
nori_shinoda
0
190
When Platform Engineering Meets GenAI
sucitw
0
140
小さく始める AI 活用推進 ― 日経電子版 Web チームの事例/nikkei-tech-talk47
nikkei_engineer_recruiting
0
310
[AWS Summit Japan 2026]迷っているあなたへ_小さな一歩が、やがて自分を助けてくれる
sh_fk2
1
250
生成 AI 実践ガイド (概略版) AIガバナンス編
asei
0
140
インシデントレスポンス演習 I / Incident Response Exercise I
ks91
PRO
0
100
サイバーエージェントにおけるAI推進戦略と変革への取り組み
shotatsuge
0
300
手塩にかけりゃいいってもんじゃない
ming_ayami
0
620
秘密度ラベル初心者が第1歩でつまづかないための「設計・運用」ポイント
seafay
PRO
1
390
クラウドファンディング版StackChan 3体(4体)をインタラクティブな体験型作品にして展示もした話 / スタックチャンお誕生日会2026
you
PRO
0
130
WebGIS AI Agentの紹介
_shimizu
0
100
Featured
See All Featured
We Are The Robots
honzajavorek
0
250
The browser strikes back
jonoalderson
0
1.3k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
250
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.3k
Abbi's Birthday
coloredviolet
2
8.1k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Designing Powerful Visuals for Engaging Learning
tmiket
1
420
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
62
44k
Test your architecture with Archunit
thirion
1
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