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
560
3
Share
シナリオに依存しないテストの基盤作ってます / We're developing an infrastracture for tests not depending schenarios
https://testnight.connpass.com/event/145238/
一度非公開にしていましたが、再公開しました。
Kuniwak
PRO
October 02, 2019
More Decks by Kuniwak
See All by Kuniwak
AIベース静的検査器の偽陽性率を抑える工夫3選
orgachem
PRO
4
470
仕様漏れ実装漏れをなくすトレーサビリティAI基盤のご紹介
orgachem
PRO
9
6.2k
要求定義・仕様記述・設計・検証の手引き - 理論から学ぶ明確で統一された成果物定義
orgachem
PRO
31
15k
DeNA での思い出 / Memories at DeNA
orgachem
PRO
7
3.5k
それ CLI フレームワークがなくてもできるよ / Building CLI Tools Without Frameworks
orgachem
PRO
18
4.7k
状態遷移図を書こう / Sequence Chart vs State Diagram
orgachem
PRO
4
710
テストケースの名前はどうつけるべきか?
orgachem
PRO
2
810
欠陥を早期に発見するための Software Engineer in Test とその重要性 / What is Software Engineer in Test and How they works
orgachem
PRO
21
5k
住宅を WebXR で評価しよう / Evaluating My Home by WebXR
orgachem
PRO
0
240
Other Decks in Programming
See All in Programming
今さら聞けないCancellationToken
htkym
0
160
CLIであることを活かしたGitHub Copilot CLI活用術 / GitHub Copilot CLI Pro Tips & Tricks
nao_mk2
1
540
サークル参加から学ぶ、小さな事業の回し方
yuzneri
0
220
Migrations : C'est une question d'hygiène !
vinceamstoutz
0
880
Hive Metastoreを通して学ぶIceberg REST Catalog ― 仕様から実装まで
okumin
0
250
ふにゃっとしない名前の付け方 〜哲学で茹で上げる、コシのあるソフトウェア設計〜
shimomura
0
130
プラグインで拡張される Context をtype-safe にする難しさと設計判断
kazupon
2
260
Zod v4 Codec でスキーマに型変換を埋め込む REST API 設計 #TSKaigi2026
ryutaro_yako
0
100
要はバランスからの卒業 #yumemi_grow
kajitack
0
190
Spec-Driven Development with AI Agents (Workshop, May 2026)
antonarhipov
4
420
柔軟なPDFレイアウトエディタを支える型システム設計 — Discriminated UnionとConditional Typeの実践
minako__ph
2
420
~ 秘伝のタレ化した『神スプシ』と戦う ~ 関数型パラダイムで壊れない仕組みへ
h0r15h0
1
120
Featured
See All Featured
The Pragmatic Product Professional
lauravandoore
37
7.3k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
190
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9k
WENDY [Excerpt]
tessaabrams
10
37k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
220
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.8k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
280
Become a Pro
speakerdeck
PRO
31
5.9k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
25k
Tell your own story through comics
letsgokoyo
1
930
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
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ԽͰ͖ͨΒͥͻ͓ࢼ͠Λ