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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
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
AWS Security Agent といっしょに脅威モデリングをやってみよう
amarelo_n24
1
190
ぼっちではじめた登壇が「51名」「241件」の発信に化けた
subroh0508
1
270
When Platform Engineering Meets GenAI
sucitw
0
140
作る力から、見極める力へ — AI時代に広がるエンジニアの価値と役割
rince
0
110
Comment regagner la souveraineté de vos données tout en étant payé grâce à Nostr !
rlifchitz
0
110
LayerX コーポレートエンジニアリング室におけるサプライチェーンセキュリティへの取り組み / Supply Chain Security at LayerX Corporate Engineering
yuyatakeyama
2
710
【セミナー資料】Claude Code をセキュアに使うための考え方と設定の勘どころ / Claude Code Webinar 20260616
masahirokawahara
2
430
GitHub Copilot app最速の発信の裏側
tomokusaba
1
210
スタートアップにAmazon EKSは早すぎる? マルチプロダクト戦略を加速する Platform Engineeringの実践 / Is Amazon EKS Too Soon for Startups? Practical Platform Engineering to Accelerate a Multi-Product Strategy
elmodev09
1
780
AIチャット検索改善の3週間
kworkdev
PRO
2
150
SONiCの統計情報を取得したい
sonic
0
250
AIネイティブな開発のサプライチェーンリスク対策 〜激動の開発現場でリスクに立ち向かう〜【ZennFes】
cscengineer
PRO
2
140
Featured
See All Featured
Designing for humans not robots
tammielis
254
26k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
250
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
240
VelocityConf: Rendering Performance Case Studies
addyosmani
333
25k
A better future with KSS
kneath
240
18k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
1
210
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.6k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.3k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.8k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Documentation Writing (for coders)
carmenintech
77
5.4k
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