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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
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
590
5プラットフォームをサポートしているプッシュ通知SDKをFCMに移行した話
konyavic
2
1.3k
Background Execution LimitsのAndroid Pの変更点?
konyavic
0
580
Spoonを使わずにテストケースでスクショを撮りたい
konyavic
0
300
Other Decks in Programming
See All in Programming
PyO3 で既存 Python 評価器を Rust core 化する ー wasm-bindgen でブラウザにも配るための設計
kdash
1
560
30年振りにコンパイラの定数整数除算を改善した
herumi
9
4.5k
型解析で実現する Go の言語内 DSL / Conference に Go! タイムテーブルの歩き方 for Gophers
mazrean
0
130
Swift愛好会と私(ウホーイ) / Swift Fan Club and Uhooi
uhooi
0
140
市販E-Readerを乗っ取れ 〜Embedded Swiftで電子ペーパーガジェットを制御する〜
trickart
0
120
異なる設計思想のフレームワークを経験して得た学び
amekuhideki
2
1.5k
AIを上手に使っていこうとしたら越境せざるを得なくなった話 〜実践1年で見えた境界を越えなければならない理由と進め方〜 / Crossing borders with AI
tomoyakitaura
4
1.1k
Intent as Code
shoppingjaws
0
130
自分的「カンファレンスの楽しみ方」
syumai
0
190
Family mrubyの進捗
kishima
1
100
Deep dive into the select statement (GopherCon UK)
jespino
0
170
Can LLMs Replicate 4 Years of Compose Migration? Exploring the boundaries of automation with 279 XML files from a real product
makun
0
130
Featured
See All Featured
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.5k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.8k
A Modern Web Designer's Workflow
chriscoyier
698
190k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
270
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
230
Visualization
eitanlees
152
17k
Between Models and Reality
mayunak
4
450
Product Roadmaps are Hard
iamctodd
55
13k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
320
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
HDC tutorial
michielstock
2
850
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*ςετͰڍಈΛอূ͢Δ ‣ ෦*'ΛϦϑΝΫλϦϯά
͜Ε͔Βͷలͱ՝ ‣ ల ‣ ৽نͷػೳՃɾվमͷ͍ͭͰʹςετέʔεΛՃ͍ͯ͘͠ ‣ ͍ΖΜͳύϥϝʔλͰࣗಈεΫϦʔϯγϣοτ ‣ ՝ ‣
ςετϓϩδΣΫτͷߏ͕େԽͦ͠͏ ‣ ͔͔࣌ؒΔͷͰ·ͩ$*Ͱճͤͳ͍