Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
メタモルフィックテスティングでMBT気分
Search
Shinsuke Matsuki(snsk)
January 20, 2025
Technology
36
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
76
LLMチャットボットの評価モデル
snsk
0
46
ゲームのテスト設計のチャレンジ
snsk
0
72
JSTQB Conference2023 基調講演2
snsk
0
38
Other Decks in Technology
See All in Technology
BALLAS Technology Deck
ballas_inc
0
220
Kiro Crew の Bot (続く役目を任せる窓口) | 目指せ Kiro マスター 12
inariku
PRO
2
310
基本から分かる!AWSセキュリティ運用の考え方と任せ方
cmusudakeisuke
1
450
【dbts2026】AIエージェントの 判断と探索を変える、 データベース エンジニアリング― 既存DBの処理と依存関係から作る、オペレーショナルオントロジー ―
shisyu_gaku
0
240
「AIチャットからもできないの?」と言われたら ~業務アプリをMCP対応するときの認証・認可の勘所
oidfj
0
160
複雑な業務システムを高速でつくるため、チーム全員をつくれる人へ
ayakurabuchi
0
140
自律的なチームを作るためにTechPMがやらないこと
ny7760
1
530
Gifu WordPress Meetup #200 に向けて、私たちには何ができるだろうか?/ 2026-11-07 Gifu WordPress Meetup
torounit
0
230
Copilot Coworkで「みのるん式」やってみた
minorun365
PRO
2
1.6k
[dbts2026]数十PBの超巨大データ×AI活用を支えるSnowflakeの実力〜大規模環境におけるアーキテクチャと運用のリアル〜
y_matsubara
0
110
The future of architectural work
ufried
0
190
SLOを阻む不安
sraku2159
0
230
Featured
See All Featured
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.2k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.6k
Intergalactic Javascript Robots from Outer Space
tanoku
273
28k
Darren the Foodie - Storyboard
khoart
PRO
4
4.1k
Leo the Paperboy
mayatellez
10
2.4k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3.3k
Building AI with AI
inesmontani
PRO
1
1.4k
How to train your dragon (web standard)
notwaldorf
96
6.9k
SEO for Brand Visibility & Recognition
aleyda
0
4.9k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
4
1.2k
Making the Leap to Tech Lead
cromwellryan
135
10k
Ruling the World: When Life Gets Gamed
codingconduct
0
430
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