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
1年近く動かないまま放置されていたiOSのUITestを直した話
Search
ANDPAD inc
November 08, 2021
Programming
0
2.3k
1年近く動かないまま放置されていたiOSのUITestを直した話
2021.11.04 【アンドパッド×ユニファ】業界変革型 Vertical SaaS のiOS/Android開発最前線
ANDPAD inc
November 08, 2021
Tweet
Share
More Decks by ANDPAD inc
See All by ANDPAD inc
アンドパッドにおける CocoaPods ライブラリ群の SwiftPackageManager への移行戦略
andpad
0
29
Flutter は DCM が 9 割
andpad
1
36
Amplify で SPA をホスティングする際の注意点
andpad
0
21
マルチプロダクト開発の現場でAWS Security Hubを1年以上運用して得た教訓
andpad
0
60
rails stats で紐解く ANDPAD のイマを支える技術たち
andpad
1
390
本編では話さない Zig の話
andpad
2
250
"noncopyable types" の使いどころについて考えてみた
andpad
0
390
ANDPAD黒板のオフラインモード機能 リリースまでの軌跡
andpad
0
270
アンドパッドのマルチプロダクト戦略を支える SRE
andpad
1
250
Other Decks in Programming
See All in Programming
Amazon Q Developer Proで効率化するAPI開発入門
seike460
PRO
0
120
未経験でSRE、はじめました! 組織を支える役割と軌跡
curekoshimizu
1
140
Introduction to kotlinx.rpc
arawn
0
760
GoとPHPのインターフェイスの違い
shimabox
2
210
15分で学ぶDuckDBの可愛い使い方 DuckDBの最近の更新
notrogue
3
490
From the Wild into the Clouds - Laravel Meetup Talk
neverything
0
130
color-scheme: light dark; を完全に理解する
uhyo
7
490
PHPのバージョンアップ時にも役立ったAST
matsuo_atsushi
0
220
データの整合性を保つ非同期処理アーキテクチャパターン / Async Architecture Patterns
mokuo
54
19k
Honoとフロントエンドの 型安全性について
yodaka
7
1.4k
データベースのオペレーターであるCloudNativePGがStatefulSetを使わない理由に迫る
nnaka2992
0
230
生成AIで加速するテスト実装 - ロリポップ for Gamersの事例と 生成AIエディタの活用
kinosuke01
0
110
Featured
See All Featured
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
10
510
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
46
2.3k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
4
430
Building Applications with DynamoDB
mza
93
6.2k
A Tale of Four Properties
chriscoyier
158
23k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5.3k
Designing on Purpose - Digital PM Summit 2013
jponch
117
7.1k
How to train your dragon (web standard)
notwaldorf
91
5.9k
The World Runs on Bad Software
bkeepers
PRO
67
11k
Transcript
When UITest is abandoned. !ʲΞϯυύουºϢχϑΝʳۀքมֵܕ7FSUJDBM4BB4ͷJ04"OESPJE։ൃ࠷લઢ ۙ͘յΕͨ··์ஔ͞Ε͍ͯͨJ04ͷ6*5FTUΛͨ͠
w ໊લࠤ౻ढ़ี w 5XJUUFS!VTIJTBOUPBTPCV w ʹ"/%1"%ʹKPJO w J04"OESPJEͷ։ൃʹैࣄ w झຯ⚽☕
ࣗݾհ
͋Β͢͡
ೖ͔ࣾΒϲ݄͘Β͍ͯ͠ ʮJ04ͷ6*5FTUΛ͢ʯͱ͍͏όοάϩάͷ୲ʹͳͬͨ
ผͷ13ʢϲ݄લʣͷͪΐͬͱͨ͠ϛεҰׅஔʹΑͬͯ 6*5FTUͷϏϧυ͕ͦͦ௨Βͳ͘ͳͬͨͷͰͦΕΛ͢ͱͷ͜ͱɻ ָউָউʙ
ͨ͠ͷʹ $*্Ͱ6*5FTU͕TVDDFTTʹͳΒͳ͍ʜͳͥʁ
$*ͷཤྺΛͬͯΈΔͱʜ ࠷ޙʹ6*5FTU͕TVDDFTTʹͳͬͨͷ͕΄΅લͱ͍͏͜ͱ͕໌
ࠓ͢͜ͱ ۙ͘յΕͨ··์ஔ͞Ε͍ͯͨJ04ͷ6*5FTUΛ͍ͯ͘͠͏͑Ͱ ֶΜͩ͜ͱ
લఏ ͜Ε·Ͱ6OJU5FTUൺֱతॻ͍͖͕ͯͨɺ6*5FTUΛॻ͘ͷ͜Ε͕ॳΊͯ
w 6*5FTU͕Ͳ͏ͯ͠յΕͨ··์ஔ͞Εͯ͠·͏ͷ͔ w ͲͷΑ͏ͳ6*5FTU͕յΕͯ͠·͏ͷ͔ w 6*5FTUΛ͍ͯ͘͠͏͑ͰֶΜͩ͜ͱɾࢥͬͨ͜ͱ ΞδΣϯμ
6*5FTU͕Ͳ͏ͯ͠յΕͨ··์ஔ͞Εͯ͠·͏ͷ͔
ࠓճͷέʔεͰ͍͏ͱɺ୯७ʹ։ൃऀͷҟಈʹΑΔͷΆ͍🤔 6*5FTU͕Ͳ͏ͯ͠յΕͨ··์ஔ͞Εͯ͠·͏ͷ͔
࠷ޙʹ$*্Ͱ 6*5FTU͕ޭͨ͠ 6*5FTU͕Ͳ͏ͯ͠յΕͨ··์ஔ͞Εͯ͠·͏ͷ͔ 2020/08
࠷ޙʹ$*্Ͱ 6*5FTU͕ޭͨ͠ 6*5FTUΛ͢ͷʹணख 6*5FTU͕Ͳ͏ͯ͠յΕͨ··์ஔ͞Εͯ͠·͏ͷ͔ 2020/08 2021/04
࠷ޙʹ$*্Ͱ 6*5FTU͕ޭͨ͠ 6*5FTUΛ͢ͷʹணख େ͖Ίͳ։ൃऀͷ ҟಈ͕ൃੜ 6*5FTU͕Ͳ͏ͯ͠յΕͨ··์ஔ͞Εͯ͠·͏ͷ͔ 2020/08 2020/10 2021/04
w 6*5FTUΛϝϯςͰ͖Δਓ͕গͳ͔ͬͨʁ w $*͕GBJMFEͰ͋Γଓ͚Δ͜ͱ͕ͨΓલͷڥͩͬͨ͜ͱ͕ʁ Ͳ͏͋Εྑ͔ͬͨͷ͔🤔
w 6*5FTUΛϝϯςͰ͖Δਓ͕গͳ͔ͬͨʁ w ෳͷ։ൃऀʹ6*5FTUͷϝϯςͷλεΫΛׂΓৼΔ w $*͕GBJMFEͰ͋Γଓ͚Δ͜ͱ͕ͨΓલͷڥͩͬͨ͜ͱ͕ʁ w ʮGBJMFEͨ͠Βɺ͙͢ʹͦΕΛ͢ʯͷపఈɺจԽͱͯ͠ৢͤ͞Δ ࠓऔΓΜͰ͍Δ͜ͱʢ͋͘·Ͱӡ༻ϕʔε͕ͩʣ
ͲͷΑ͏ͳ6*5FTU͕յΕͯ͠·͏ͷ͔
ͲͷΑ͏ͳ6*5FTU͕յΕͯ͠·͏ͷ͔ w ༷มߋʹΑΔͷ w ςετΞΧϯτʹؔ͢ΔσʔλͷมԽʹΑΔͷ w աڈʹೖΕ͍ͯͨXPSLBSPVOEʹΑΔͷ w ʢҰ൪ϋϚͬͨͷʣϥϯμϜʹίέΔṖͷݱ
ͲͷΑ͏ͳ6*5FTU͕յΕͯ͠·͏ͷ͔ w ༷มߋʹΑΔͷ w ςετΞΧϯτʹؔ͢ΔσʔλͷมԽʹΑΔͷ w աڈʹೖΕ͍ͯͨXPSLBSPVOEʹΑΔͷ w ʢҰ൪ϋϚͬͨͷʣϥϯμϜʹίέΔṖͷݱ
ςετΞΧϯτʹؔ͢ΔσʔλͷมԽʹΑΔͷ w ςετΞΧϯτʹؔ͢Δσʔλʢ%#ʣͷมԽʹΑΔ 6*ͷมԽʹΑͬͯɺ6*5FTU͕յΕΔύλʔϯ w 6*5FTU͋Δ͋Δʁ w վળࡦޙड़
աڈʹೖΕ͍ͯͨXPSLBSPVOEʹΑΔͷ w աڈʹೖΕͨXPSLBSPVOEͳίʔυʹΑͬͯٯʹ6*5FTU͕յΕͨ ύλʔϯ w XPSLBSPVOEΛͳ͘͢ͱਖ਼ৗʹಈ͘ w ʮ9$6*5FTUͪΌΜͱਐาͯ͠ΔΜͩ😁ʯͱલ͖ʹଊ͑ͯΔ
ʢҰ൪ϋϚͬͨͷʣϥϯμϜʹίέΔṖͷݱ w ͔݁Βॻ͘ͱ w ͋Δ6*5FTUΛ࣮ߦ͢Δͨͼʹσʔλ͕૿͍͑ͯͬͨ w σʔλ͕૿͑ͨ͜ͱʹΑͬͯʮϦετͷઌ಄ͷཁૉΛऔಘʯ͢Δॲཧ͕ͳͥ ͔ϥϯμϜͰίέΔͱ͍͏ݱ͕ʜ w σʔλΛਅͬ͞Βʹͯ͠ɺʮ࣮ߦ͢Δͨͼʹσʔλ͕૿͍͑ͯͬͨʯΛ
ղফͨ͜͠ͱͰϥϯμϜͰίέͳ͘ͳͬͨ🎉
ʢҰ൪ϋϚͬͨͷʣϥϯμϜʹίέΔṖͷݱ w ฐٕࣾज़ސͰ͋Δ!UBSBQQP͞Μʹ૬ஊͯ͠ղܾͰ͖ͨͷ w ʮϥϯμϜͰίέΔʯܥͷςετΛମܥతʹ·ͱΊͨૉΒ͍͠ࢿྉΛڞ ༗ͯ͠Βͬͨ w ࠓճͷέʔεʮʢ6OJU5FTUʹͳ͘ʣ6*5FTUͳΒͰͷͷʯͱೝࣝ͠ ͍ͯΔͷͰݸਓతʹ͔Βྡྷͩͬͨ
None
None
6*5FTUΛ͍ͯ͘͠͏͑ͰֶΜͩ͜ͱɾࢥͬͨ͜ͱ
6*5FTUΛ͍ͯ͘͠͏͑ͰֶΜͩ͜ͱɾࢥͬͨ͜ͱ w 6*5FTU༻ͷڥΛͰ͖Δ͚ͩ༻ҙ͢Δ w ʮϖʔδΦϒδΣΫτύλʔϯʯಡΈ͍͢ w 6*7JFXTFU"OJNBUJPOT&OBCMFE GBMTF ͳͲͰͰ͖Δ͚ͩ6*5FTUʹ͔͔Δ࣌ ؒΛॖ͢Δ
6*5FTU༻ͷڥΛͰ͖Δ͚ͩ༻ҙ͢Δ w ։ൃσόοάʹར༻͞Ε͍ͯΔڥͰ6*5FTUΛߦ͏ͱɺ w ઌड़ͨ͠ʮςετΞΧϯτʹؔ͢ΔσʔλͷมԽʹΑΔͷʯ w ʢ6*5FTUͱͯ͠ҙਤͯ͠ͳ͍ʣΞϓϦىಈ࣌ʹϞʔμϧ͕දࣔ͞ΕΔ͜ ͱ͕͋Δ w ͳͲͷ͜ͱ͕ىͬͨ͜ͷͰɺՄೳͰ͋ΔͳΒ6*5FTU༻ͷڥΛ༻ҙͯ͋͛͠
Δͱྑ͍ʢ·ͩͰ͖͍ͯͳ͍ʣ
ʮϖʔδΦϒδΣΫτύλʔϯʯಡΈ͍͢ w 6*5FTUΛҾ͖ܧ͍ͩଆͱͯ͠ɺϖʔδΦϒδΣΫτύλʔϯͰॻ͔Ε͍ͯ ͨͨΊඇৗʹίʔυ͕ಡΈ͔ͬͨ͢ w ϖʔδΦϒδΣΫτύλʔϯͱʁ w ʮը໘Λ̍ͭͷΦϒδΣΫτͱͯ͠ఆٛͯ͠ɺ6*ཁૉͷಛఆɾૢ࡞ͳͲͷ ৄࡉͦͪΒʹӅṭ͢Δ͜ͱͰɺ6*5FTUͷՄಡੑΛ͋͛Δʯͱ͍͏Ұछͷ σβΠϯύλʔϯ
6*7JFXTFU"OJNBUJPOT&OBCMFE GBMTF ͳͲͰͰ͖Δ͚ͩ6*5FTUʹ͔͔Δ࣌ؒΛॖ͢Δ w 6*5FTU࣮ߦ͕͔࣌ؒͳΓ͘ͳΔ w 6*7JFXTFU"OJNBUJPOT&OBCMFE GBMTF Λઃఆ͢ΔͳͲɺͰ͖Δ͚࣮ͩߦ࣌ ؒΛ͘͢Δ
·ͱΊ w 6*5FTU͕͍͟յΕͨͱ͖ʹ์ஔ͞Εͳ͍Α͏νʔϜͷӡ༻Λඋ͑Δ w ϥϯμϜͰམͪΔςετ͍͠ͷͰɺମܥతͳ͓ࣝ͑ͯ͘ͱྑͦ͞͏
͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠☕