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
プロパティベーステストによるUIテスト: LLMによるプロパティ定義生成でエッジ...
Search
Tetta Noguchi
September 11, 2025
Programming
6.8k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
プロパティベーステストによるUIテスト: LLMによるプロパティ定義生成でエッジケースを捉える
DroidKaigi 2025
Tetta Noguchi
September 11, 2025
Other Decks in Programming
See All in Programming
Datadog × OpenTelemetry 入門と実践のあいだ
kn_to_maxpno
1
180
AIエージェントで 変わるAndroid開発環境
takahirom
1
240
Even G2とAWSで推しのエージェントを召喚しよう!
har1101
1
140
ECSアプリログをFireLensでコスト削減しようとしたけど諦めた話 in Fargate×Node.js
akihisaikeda
2
4.2k
dRuby over BLE
makicamel
2
400
TSKaigi Night Talks 2026_TypeScriptでサプライチェーンの整合性を型に閉じ込める
geekplus_tech
0
430
ADKを使って簡単にAIエージェントを作ってみよう
k1mu21
0
290
「正の参照」と 「負の導出」で組む ハーネスエンジニアリング
cottpan
1
110
Hunting Vulnerabilities in Symfony with LLMs
vinceamstoutz
0
570
音楽のための関数型プログラミング言語mimiumにおける多段階計算の活用
tomoyanonymous
1
200
関数型プログラミングのメリットって何だろう?
wanko_it
0
110
Hatena Engineer Seminar #37「言語モデルの活用に関する研究」
slashnephy
0
470
Featured
See All Featured
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
220
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.8k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.5k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
330
Ruling the World: When Life Gets Gamed
codingconduct
0
270
Heart Work Chapter 1 - Part 1
lfama
PRO
8
36k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
250
How to Talk to Developers About Accessibility
jct
2
280
Information Architects: The Missing Link in Design Systems
soysaucechin
0
1k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
How to Ace a Technical Interview
jacobian
281
24k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
550
Transcript
None
None
None
None
Problem Space TestCase2 TestCase1 TestCase3 TestCase TestCase TestCase
Search Space by Generator Problem Space TestCase2 TestCase1 TestCase3 TestCase
TestCase TestCase Property
Search Space by Generator Problem Space TestCase2 TestCase1 TestCase3 TestCase
TestCase TestCase Property
None
価格 支払い額
価格 支払い額
None
Exploring Property Checking Checking Checking Checking Checking Checking
None
PBT UI Testing Stateful Property Compose Semantics UI PBT
None
None
None
None
テスト名 初期値 結果の検証 初期値
星の総数は常に つである
None
None
None
None
None
None
発車境界をまたぐと現在便が繰り上がる
普通 番線
① 境界前 現在便時刻 次便時刻 次は 行
② 境界後(繰り上がり) 現在便時刻 次便時刻 次は 行 以降の電車はありません
普通 番線
普通 番線
普通 番線 普通 番線 Departs 18:00 Departs 18:00 Current Next
None None Current Next Departs 18:00 Departs 18:00
① 境界前 現在便 次便 次は 行
② 境界後(繰り上がり) 終電後表記 通常表記 現在便 次便 次は 行 以降の電車はありません
None
None
None
Initial State Command if it fails Preconditions Failure Execution Next
State Postconditions Initial State Command Preconditions Next State Select Commands Execute SUT Model
None
None
同一テスト内で再利用 ← 以降は状態リセットのみ (破棄しない)
None
None
None
None
新着イベント 未読 新着イベント 未読
新着イベント 未読 状態照合 なので副作用は
None
None
None
None
再生成
None
None
出力例:フォローボタンタップ ボタン が見える・押せる をタップ ボタン が現れる になる想定
None
縮約結果の例 失敗する最小ケース アイテムを 個選択 フィルタ「カテゴリ 」を適用 全選択解除ボタンをクリック → 選択数が にならない
分析結果の例 根本原因 が フィルタ適用時の 配列を 更新していない。 修正箇所 の前に を追加
None
None
None
本体のバージョン ( ) に必要な ( 用) テスト ライブラリ(最小限) テスト環境