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
シナリオに依存しないテストの基盤作ってます / We're developing an inf...
Search
Kuniwak
PRO
October 02, 2019
Programming
3
480
シナリオに依存しないテストの基盤作ってます / We're developing an infrastracture for tests not depending schenarios
https://testnight.connpass.com/event/145238/
一度非公開にしていましたが、再公開しました。
Kuniwak
PRO
October 02, 2019
Tweet
Share
More Decks by Kuniwak
See All by Kuniwak
テストケースの名前はどうつけるべきか?
orgachem
PRO
1
430
欠陥を早期に発見するための Software Engineer in Test とその重要性 / What is Software Engineer in Test and How they works
orgachem
PRO
21
4.2k
住宅を WebXR で評価しよう / Evaluating My Home by WebXR
orgachem
PRO
0
110
HOME VR
orgachem
PRO
1
800
uGUI の自動操作の考え方と操作方法
orgachem
PRO
1
1.4k
Swift Macro に備えて構文木を 10min で学ぶ / Learn Syntax Tree for Swift Macro in 10 minutes
orgachem
PRO
1
1.3k
SoftWare Engineer in Test のおしごと / What is SWET
orgachem
PRO
1
1.1k
私と Nature Remo E / Nature Remo E
orgachem
PRO
0
26k
存在しないアセットへの参照と 未公開アセットでのネタバレに どう立ち向かうか / How to prevent missing assets and spoilers by assets
orgachem
PRO
1
1.1k
Other Decks in Programming
See All in Programming
Boost Your Performance and Developer Productivity with Jakarta EE 11
ivargrimstad
0
1.6k
Road to RubyKaigi: Making Tinny Chiptunes with Ruby
makicamel
4
120
Agentic Applications with Symfony
el_stoffel
2
290
「”誤った使い方をすることが困難”な設計」で良いコードの基礎を固めよう / phpcon-odawara-2025
taniguhey
0
140
Java 24まとめ / Java 24 summary
kishida
3
500
Youtube Lofier - Chrome拡張開発
ninikoko
0
2.4k
Exit 8 for SwiftUI
ojun9
0
130
Empowering Developers with HTML-Aware ERB Tooling @ RubyKaigi 2025, Matsuyama, Ehime
marcoroth
2
560
Signal-Based Data FetchingWith the New httpResource
manfredsteyer
PRO
0
170
「影響が少ない」を自分の目でみてみる
o0h
PRO
2
1.1k
SwiftUI API Design Lessons
niw
1
280
大LLM時代にこの先生きのこるには-ITエンジニア編
fumiyakume
7
2.9k
Featured
See All Featured
Docker and Python
trallard
44
3.3k
VelocityConf: Rendering Performance Case Studies
addyosmani
328
24k
How GitHub (no longer) Works
holman
314
140k
Raft: Consensus for Rubyists
vanstee
137
6.9k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
41
2.2k
Unsuck your backbone
ammeep
670
57k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
34
2.2k
Typedesign – Prime Four
hannesfritz
41
2.6k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
How to Think Like a Performance Engineer
csswizardry
23
1.5k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
19
1.1k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
12k
Transcript
γφϦΦʹґଘ͠ͳ͍ ςετͷج൫࡞ͬͯ·͢ $*$%5FTU/JHIU ,VOJXBL
ൃදͷྲྀΕ ԿΛ$*ʹࡌ͍ͤͨͷ͔ $*ʹࡌͤΔࡍͷ՝ EFWGBSNʢ·ͩະެ։ʣͷհ
ԿΛ$*ʹࡌ͍ͤͨͷ͔
࠷ۙͷΈ ϞόΠϧήʔϜͷόάΛͰ͖Δ͚ͩ खલͷϑΣʔζͰݟ͚͍ͭͨ ཁ͢Δʹ୯ମςετͱ͔Ͱ ݟ͚ͭΒΕΔͳΒͱͯخ͍͕͠ʜ
୯ମςετͭΒ͍ ήʔϜΤϯδϯ߹ͷ ίϯϙʔωϯτׂΛڧ੍͞Εɺ ҙຯͷ͋ΔཻͰͷׂΛ ͮ͠Β͍ʢΓํ͋Δ͕ʣ
୯ମςετͭΒ͍ ͭ·Γɺ୯ମςετॻ͚Δ͚Ͳ ԿΘ͔Βͳ͍͜ͱ͕ଟ͍
Ͱ݁߹ςετʁ ݁߹ςετ͋·ΓʹͭΒ͍ɿ w ͙͢յΕΔ w ͭͷςετέʔεͰ ௐΒΕΔܦ࿏͘͝Θ͔ͣ
Ͱ6*ςετʁ 6*ςετอक͕ͭΒ͍ɿ w γφϦΦ͙͢յΕΔ w ͦͦγφϦΦ͕ಈ͘·Ͱ ࢼߦαΠΫϧͯͭ͘Β͍
݁ʢʁʣ ήʔϜͷςετԿͬͯͭΒ͍
ͷཧ w ઃܭʹࠨӈ͞ΕΔͱݫ͍͠ w ݁߹Λ૿͢ͱյΕͯ͘͢ݫ͍͠ w ࢼߦαΠΫϧ͍ͱݫ͍͠
ͷཧ w ͜ΕΒΛશͯճආ͢Δͪΐ͏Ͳ͍͍ ςετ͕࣮͋Δʜ
ͷཧ w ୯ମςετͰҙຯΛ࣋ͨͤͮΒׂཻ͍ w ݁߹Ϩϕϧ্͛ΕճආՄೳ w ͲͷΑ͏ʹׂɾ݁߹͞Εͯ ݁߹ͯ͠͠·͑ςετͰ͖Δ
ͷཧ w ݁߹Λ૿͢ͱյΕͯͭ͘͢Β͍ w ಛఆͷೖग़ྗΛݕূ͢ΔͳΒ յΕΔͷճආͰ͖ͳ͍ w Ұൠతͳੑ࣭ͷݕূͳΒճආՄೳ
ͷཧ w ࢼߦαΠΫϧ͍ͱݫ͍͠ w खಈͰେྔʹ࡞Δͱ͖ w ೖग़ྗͷࣗಈੜͰ؇Մೳ
ͭ·Γʜ ԼͷςετͳΒήʔϜͰޮՌతɿ w ݁߹Ϩϕϧ͕ߴ͘ɺ w Ұൠతͳੑ࣭Λݕূ͠ɺ w ೖग़ྗࣗಈͰੜ͞ΕΔ
ͦΜͳςετ͋Δͷ͔ʁʁʁ ͋Γ·͢
6*ϨΠϠʔͷ ϞϯΩʔςετ 6*ૢ࡞ΛࣗಈͰແ࡞ҝʹ࣮ߦ͠ɺ ΫϥογϡύϑΥʔϚϯεΛ ൃݟ͢Δํ๏ʢΦʔτϓϨΠͷҰछʣ
#VUUPO" ͭʹߜΓࠐΉ ⁞ૢ࡞ՄೳͳͷΛબ ແ࡞ҝʹૢ࡞Λ࣮ߦ #VUUPO# #VUUPO$ #VUUPO% #VUUPO" #VUUPO# #VUUPO"
5BQ
զʑ͕$*ʹࡌ͍ͤͨͷ ήʔϜͰݱ࣮త͔ͭޮతͳ ςετͱͯ͠ɺ6*ϨΠϠʔͷ ϞϯΩʔςετΛࡌ͍ͤͨʂ
طଘπʔϧ "QQJVN"MU6OJUZ5FTUFS͕༗໊ ͜ΕΒ͑ͳ͍͜ͱͳ͍͕ɺ ૢ࡞Մೳͳͷͷબ͕खؒͩ͠ɺ πʔϧͷఆ֎ͷ༻్ͳͷͰةݥ
ͭʹߜΓࠐΉ ⁞ૢ࡞ՄೳͳͷΛબ ແ࡞ҝʹૢ࡞Λ࣮ߦ ͕͜͜طଘπʔϧͩͱͭΒ͍ #VUUPO" #VUUPO# #VUUPO$ #VUUPO" #VUUPO# #VUUPO"
5BQ
ΞϓϦʹຒΊࠐΉํࣜΛ࠾༻ ΞϓϦͷϏϧυ࣌ʹ͜ͷૢ࡞πʔϧΛ ຒΊࠐΉ͜ͱͰɺطଘπʔϧͷ໘ͳ ෦Λղܾ ΞϓϦΛىಈ͢Εςετ͞ΕΔ
$*ʹࡌͤΔࡍͷ՝
Ͳ͜ͰΞϓϦΛಈ͔͔͢ ࣮ࡍʹΞϓϦΛಈ͔͢ඞཁ͕͋ͬͯɺ ࣮ͨͩ͠ػͰ͋Δඞཁੑͦ͜·Ͱ ߴ͘ͳ͍ ͨ͘͞Μԣʹฒͯಈ͔͍ͨ͠͠ɺ γϛϡϨʔλ͑ΔͳΒ͕͍͍ͦͬͪ
γϛϡϨʔλΫϥυʜʁ J04"OESPJEͷ࣮ػσόΠεΛΫϥυͰ ࣮ߦ͢ΔαʔϏε͍͔ͭ͘ΒΕ͍ͯΔ ͔͠͠γϛϡϨʔλΛΫϥυͰ࣮ߦ͢Δ αʔϏεΘ͔ͣʹ͋Δ͕͍ͮΒ͍ʜ
ݱঢ়ͷํ কདྷతʹγϛϡϨʔλͰಈ͔͍͕ͨ͠ ࠓ·࣮ͩػ͔͠ͳ͍ͷͰɺ Ҡߦίετͷগͳ͍ঢ়ଶΛอͪͭͭɺ ૣΊʹऔΓΈ͍ͨ
ͦ͜ͰEFWGBSN ࣮ػͱγϛϡϨʔλͷΓସָ͕͑Ͱɺ σόΠεΫϥυ্ͰΞϓϦͷىಈঢ়گΛ ཧ͢Δπʔϧ ·ͩະެ։͚ͩͲকདྷతʹ044༧ఆ
EFWGBSNͷհ
EFWGBSNͰͰ͖Δ͜ͱ w ࢦఆͨ͠σόΠεΫϥυ04ػछ ΞϓϦҾͰΞϓϦΛىಈ w ΞϓϦ͕Ϋϥογϡͨ͠ΒίϚϯυΛ ҟৗऴྃɺࢦఆ࣌ؒੜଘͨ͠Βਖ਼ৗऴྃ
͑ɺͦΕ͚ͩʜ
ཧ༝͕ʜ͋Γ·͢ʜ
EFWGBSNͷࢥ ࣮ػɾγϛϡϨʔλɾσόΠεΫϥυΛ Θͣɺಉ͡ΠϯλʔϑΣʔεͰ ىಈɾऴྃ͢Δ͜ͱͷΈʹઐ೦͢Δ ಛఆͷ݅Ͱ͔͠αϙʔτͰ͖ͳ͍ػೳ αϙʔτ͠ͳ͍ʢػೳͷੵू߹ओٛʣ
$ devfarm run-ios --os-version 12.0 \ --device 'apple iphone xs'
\ --instance-group 'example' \ --platform 'aws-device-farm' \ --ipa 'path/to/app.ipa' \ --args-json '["-ARG1", "HELLO_DEVFARM"]' \ --lifetime-sec 900 & platform status aws-device-farm launching J04ΞϓϦΛͭىಈ
$ devfarm status --instance-group 'example' platform device os state note
aws-device-farm apple iphone xs ios ACTIVE ىಈ͍ͯ͠ΔΞϓϦͷ֬ೝ
$ devfarm halt --instance-group 'example' platform status aws-device-farm halting ΞϓϦͷڧ੍ऴྃ
instance_groups: <group>: # for Android - platform: <platform> # required
android: <version> # required device: <decice> # required apk: <filepath> # required app_id: <app_id> # required intent_extras: [] # optional lifetime_sec: 900 # required $ devfarm run-all planfile.yml ෳΞϓϦͷҰׅىಈ
EFWGBSNͱ ࣮ػͱγϛϡϨʔλͷΓସָ͕͑Ͱɺ σόΠεΫϥυ্ͰΞϓϦͷىಈঢ়گΛ ཧ͢Δπʔϧ ·ͩະެ։͚ͩͲকདྷతʹ044༧ఆ
·ͱΊ w ϞόΠϧήʔϜʹޮతͰ ݱ࣮తͳςετΛೖΕ͍ͨʂ w ݱࡏͷπʔϧΫϥυͷঢ়گͰ ಈ͔ͤͯɺকདྷΛݟӽͨ͠ πʔϧΛ࡞Γ·ͨ͠ w 044ԽͰ͖ͨΒͥͻ͓ࢼ͠Λ