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
SDK開発にUIテストを導入してみた
Search
Victor Lee
June 21, 2018
Programming
2.4k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
SDK開発にUIテストを導入してみた
Android Test Night #4で発表
Victor Lee
June 21, 2018
More Decks by Victor Lee
See All by Victor Lee
Create Flutter Plugins
konyavic
2
2.6k
ライブラリーだってクラッシュレポートが見たい
konyavic
0
580
5プラットフォームをサポートしているプッシュ通知SDKをFCMに移行した話
konyavic
2
1.3k
Background Execution LimitsのAndroid Pの変更点?
konyavic
0
570
Spoonを使わずにテストケースでスクショを撮りたい
konyavic
0
300
Other Decks in Programming
See All in Programming
Jindong: Introducing Declarative Haptics in Compose Multiplatform
l2hyunwoo
0
110
PostgreSQL 18で考えるUUID主キー
kazuhiro1982
0
470
GDG Korea Android: 2026 I/O Extended ~ What's new in Android development tools
pluu
0
220
TSX の <Hoge<Fuga>> という構文に驚いた話 / tsx-type-argument-syntax
kanaru0928
0
220
仕様駆動開発へのトライを機に チームに適合する手法を模索し続けている話
freee
PRO
0
480
そこに3びきプロダクトがいるじゃろう——生成AI時代における“価値が届かない理由”の構造
kosuket
0
470
源内ハンズオン概要編
hideg
0
160
5分で問診!Composer セキュリティ健康診断
codmoninc
0
960
VibeCodingからAgenticWorkflowへ
starfish719
0
400
属人化した知識を、 AIが辿れる地図にする
pkshadeck
PRO
1
170
FDEが実現するAI駆動経営の現在地
gonta
2
280
生成AI導入の「期待外れ」を乗り越える ー 開発フロー改革が目指す、真の組織変革
starfish719
0
4.3k
Featured
See All Featured
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
700
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.1k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
Chasing Engaging Ingredients in Design
codingconduct
0
260
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
790
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
430
Testing 201, or: Great Expectations
jmmastey
46
8.2k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.5k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.6k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
640
Visualization
eitanlees
152
17k
Transcript
4%,։ൃʹ6*ςετΛಋೖͯ͠Έͨ "OESPJE5FTU/JHIU !LPOZBWJD
αʔϏεͷ͝հ
‣ ΞϓϦϚʔέςΟϯάࢧԉ ‣ ࢪࡦ ‣ ϓογϡ௨ ‣ ΞϓϦϝοηʔδ ‣ ੳ
‣ ఆྔੳ ‣ Ϣʔβʔૢ࡞ͷը
‣ ϓογϡ௨ ‣ ηάϝϯτ ‣ Ϧον௨ ‣ σΟʔϓϦϯΫ ‣ ֆจࣈ
‣ "#ςετ ‣ ίϯόʔδϣϯܭଌ ‣ ɾɾɾ
‣ ΞϓϦϝοηʔδ ‣ Ϣʔβʔૢ࡞ͰτϦΨʔ ‣ μΠΞϩάɾ ΦʔόʔϨΠɾόφʔ ‣ ηάϝϯτ ‣
"#ςετ ‣ ίϯόʔδϣϯܭଌ ‣ ɾɾɾ
ըͱϢʔβʔૢ࡞هͷ࠶ੜ
!LPOZBWJD ཥঝӹʢΓͪ͐Μ͍ʣɾग़ɾຊ ࡶ৯ܥΤϯδχΞ dࠐΈ04ݚڀ⾣dήʔϜ։ൃ⾣d4%,։ൃ
6*ςετಋೖͷഎܠ
ΞϓϦ։ൃऀ͔Β͢Δͱɺ Α͘Θ͔ΒΜ4%,ݏΘΕऀʹͳΓ͕ͪ
͓٬͞Μ͕҆৺ͯ͠ɺ ؆୯ʹ4%,ΛಋೖͰ͖ͯ΄͍͠ʂ
4%,ͷߏ ‣ ωΠςΟϒ4%,ʢJ04"OESPJEʣ ‣ 0CKFDUJWF$+BWB ‣ +BWB͚ͩݟΔͱϑΝΠϧɾ,ߦͷنײ ‣ ֎෦ϥΠϒϥϦʔҰΘͳ͍ ‣
NJO4EL7FSTJPO ‣ ֤ϑϨʔϜϫʔΫͷϓϥάΠϯ ‣ 6OJUZ$PDPTEY$PSEPWB.POBDB ‣ جຊతʹϒϦοδίʔυ͚ͩ ‣ ͲΜͲΜ૿͑Δʂ
4%,νʔϜ ‣ ਓͰ࡞ۀ୲ ‣ ϓϩμΫτ҆ఆظʹೖ͚ͬͨͲɺͦΕͰѹతਓखෆ ‣ ෆ۩߹ͷௐࠪˍमਖ਼ɺ༷มߋɺ04ΞοϓάϨʔυରԠɺ ςΫχΧϧαϙʔτɾɾɾ ‣ ͔ͳΓେ͖͍ΫϥΠΞϯτ͍Δ͔Β৻ॏʹΒͳ͍ͱ͍͚ͳ͍
‣ ͪΌΜͱ͔͚࣌ؒͯϨϏϡʔɾςετ͢Δ ‣ ҆ఆظʹೖ͔ͬͨΒͦ͜Γ͍ͨ͜ͱ͕૿͑Δ ‣ ςΫχΧϧɾσοτͷฦࡁ ‣ ςετͷࣗಈԽ
4%,։ൃͰ࣮ࢪ͍ͯ͠Δςετ ‣ ୯ମςετ ‣ 3PCPMFDUSJDϕʔεͷ6OJU5FTU ‣ $*Ͱճ͍ͯ͠Δ ‣ ͔ͬ͠ΓͰ͖͍ͯΔ ‣
։ൃऀʹΑΔखಈςετ ‣ ཏੑෆे ‣ 2"νʔϜʹΑΔखಈςετ ‣ ఆৗతʹΔ͜ͱ͍͠ ‣ BEIPDͳࣗಈςετ ‣ ͍ࣺͯ
4%,ςετͷ͠Έ
͠ΈͦͷҰ ‣ 4%,ʹ։ൃऀ͕৮Δͷ ‣ ςετͷ࠶ݱखॱʹɺίʔυΛॻ͘͜ͱؚ͕·Εͯ͠·͏ ‣ جຊతʹɺඇΤϯδχΞʹςετΛͤΒΕͳ͍ ‣ ςετΞϓϦΛ࡞Δ͜ͱͰ͖Δɺ͕
͠Έͦͷೋ ‣ ͓٬͞ΜͷΞϓϦߏ͞·͟· ‣ UBSHFU4EL7FSTJPO ‣ 4VQQPSU-JCSBSZͷόʔδϣϯ ‣ ςετΞϓϦͰ͍ΖΜͳঢ়گΛΧόʔ͖͠Εͳ͍
͠Έͦͷࡾ ‣ ରԠ͕͍ ‣ "OESPJEd ‣ ϥΠϑαΠΫϧ͕͍ ‣ աڈόʔδϣϯͷ4%,͕ੜ͖Ԇͼଓ͚Δ
6OJU5FTU͔ͬ͠Γ͍ͯ͠Δɺ͕ ‣ ີ݁߹ ‣ େྔͷ4IBEPXΦϒδΣΫτͱϦϑϨΫγϣϯ ‣ ϦϑΝΫλʔ͢ΔͨͼʹյΕΔ ‣ ͕ᐫʹͳΔ
ࣗಈςετͷϝϯςίετΛԼ͍͛ͨʜ खಈςετΛ؆୯ʹ৭ΜͳͰ࠶ݱ͍ͨ͠ʜ BEIPDͳςετΛҰͭʹ·ͱΊ͍ͨʜ
ͦ͏ͩɺ6*ςετΛಋೖ͠Α͏ʂ
6*ςετʹର͢Δظ ‣ *OTUSVNFOUFE5FTU ‣ ϒϥοΫϘοΫε ‣ ϦϑΝΫλϦϯάͰΫϥε໊͕มΘͬͯमਖ਼͕ཁΒͳ͍ ‣ ࣗಈԽ ‣
αʔόΛ༻ҙ͢Δඞཁ͕ͳ͍ʢ௨৴पΓΛϞοΫԽʣ
ςετέʔεͷྫ ‣ ΞϓϦىಈ ‣ ΞϓϦϝοηʔδͷը૾ϩʔυ͕࢝·Δ ‣ Πϯδέʔλ͕දࣔ͞ΕΔ ‣ λΠϜΞτ·Ͱʹը૾ϩʔυ͕ྃ͢Εɺ ͦΕΛදࣔ͢Δ
6*ςετͷઃܭ ‣ 3FQSP4%,ΛΈࠐΜͩɺԿ͠ͳ͍ςετΞϓϦ ‣ ೖྗ ‣ ௨৴ϞοΫͰαʔόϨεϙϯεΛࠐΉ ‣ 4%,"1*ͷݺͼग़͠ςετέʔεͰͦͷ··ॻ͚Δ ‣
ΞϓϦͷϥΠϑαΠΫϧมԽ͍ΖΜͳखஈͰ؆୯ʹͰ͖Δ ‣ ग़ྗ ‣ ௨৴ϞοΫͰαʔόϦΫΤετΛݕূ ‣ 6*FTQSFTTPͰݕূ ‣ ϑΝΠϧॻ͖ग़͠
ϋϚͬͨͱ͜Ζ
ϋϚͬͨͱ͜ΖͦͷҰ ‣ ௨৴ͷϞοΫԽ ‣ ϞοΫϥΠϒϥϦʔ ‣ QPXFSNPDL NPDLJUP ‣ ϏϧυΤϥʔ
‣ 63-TFU63-4USFBN)BOEMFS'BDUPSZ ‣ શ෦ͷίωΫγϣϯΛϋϯυϦϯά͠ͳ͍ͱ͍͚ͳ͍ ‣ Ұճ͔͠Ͱ͖ͳ͍
ϋϚͬͨͱ͜Ζͦͷೋ ‣ "OESPJE5FTU0SDIFTUSBUPS ‣ ςετέʔεؒͪΌΜͱϓϩηεΛ࠶্ཱͪ͛ͯ͘ΕΔ ‣ ΩϟογϡͷΫϦʔϯΞοϓͳͲઃఆͰ͖Δ ‣ "OESPJE5FTU0SDIFTUSBUPS͕ͳ͍ͱ ‣
λΠϛϯά͕ͣΕͯɺλΠϛϯάґଘͷςετ͕ۃʹෆ҆ఆ
ςετέʔεͷྫ @Test public void test_whenDownloadCompletedWithinTimeout_showMessageAfterAppLaunch() throws Throwable { setup(new JSONArray(Arrays.asList(createDialogMessage(""))));
mConnectionMockFactory.setTimeout(2900); mActivityRule.launchActivity(new Intent()); sleep(4000); check_messageIsShown(); } @Test public void test_whenDownloadExceededTimeout_dismissMessageAfterAppLaunch() throws Throwable { setup(new JSONArray(Arrays.asList(createDialogMessage("")))); mConnectionMockFactory.setTimeout(3100); mActivityRule.launchActivity(new Intent()); sleep(4000); check_messageIsDismissed(); } ‣
6*ςετಋೖޙ ‣ ߦͷϦϑΝΫλϦϯάͰ׆༂ʂ ‣ ϦϑΝΫλʔ͠ͳ͍ͱͭΒ͍αϒγεςϜ͕͋ͬͨ ‣ ৽نػೳͷ࣮ͱಉ࣌ʹϦϑΝΫλϦϯά͢Δͷϋʔυϧ͕ߴ ͔ͬͨ ‣ ෦*'Λม͑ͣʹಥ؏ࣄ
‣ 6*ςετͰڍಈΛอূ͢Δ ‣ ෦*'ΛϦϑΝΫλϦϯά
͜Ε͔Βͷలͱ՝ ‣ ల ‣ ৽نͷػೳՃɾվमͷ͍ͭͰʹςετέʔεΛՃ͍ͯ͘͠ ‣ ͍ΖΜͳύϥϝʔλͰࣗಈεΫϦʔϯγϣοτ ‣ ՝ ‣
ςετϓϩδΣΫτͷߏ͕େԽͦ͠͏ ‣ ͔͔࣌ؒΔͷͰ·ͩ$*Ͱճͤͳ͍