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
30
Flutter は DCM が 9 割
andpad
1
41
Amplify で SPA をホスティングする際の注意点
andpad
0
26
マルチプロダクト開発の現場でAWS Security Hubを1年以上運用して得た教訓
andpad
0
63
rails stats で紐解く ANDPAD のイマを支える技術たち
andpad
1
400
本編では話さない Zig の話
andpad
2
260
"noncopyable types" の使いどころについて考えてみた
andpad
0
390
ANDPAD黒板のオフラインモード機能 リリースまでの軌跡
andpad
0
280
アンドパッドのマルチプロダクト戦略を支える SRE
andpad
1
250
Other Decks in Programming
See All in Programming
Datadog DBMでなにができる? JDDUG Meetup#7
nealle
0
160
TCAを用いたAmebaのリアーキテクチャ
dazy
0
220
Rails 1.0 のコードで学ぶ find_by* と method_missing の仕組み / Learn how find_by_* and method_missing work in Rails 1.0 code
maimux2x
1
260
「個人開発マネタイズ大全」が教えてくれたこと
bani24884
1
290
PRレビューのお供にDanger
stoticdev
1
240
CloudRun, Spanner に対する負荷試験の反省と オブザーバビリティによるアプローチ
oyasumipants
1
120
Generating OpenAPI schema from serializers throughout the Rails stack - Kyobashi.rb #5
envek
1
410
pylint custom ruleで始めるレビュー自動化
shogoujiie
0
160
オレを救った Cline を紹介する
codehex
11
9.3k
ABEMA iOS 大規模プロジェクトにおける段階的な技術刷新 / ABEMA iOS Technology Upgrade
akkyie
1
230
AWS Step Functions は CDK で書こう!
konokenj
4
810
5分で理解する SOLID 原則 #phpcon_nagoya
shogogg
1
400
Featured
See All Featured
The Art of Programming - Codeland 2020
erikaheidi
53
13k
Reflections from 52 weeks, 52 projects
jeffersonlam
348
20k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
115
51k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.7k
How to Think Like a Performance Engineer
csswizardry
22
1.4k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
59k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
49k
Documentation Writing (for coders)
carmenintech
68
4.6k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.2k
Java REST API Framework Comparison - PWX 2021
mraible
29
8.4k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
How STYLIGHT went responsive
nonsquared
99
5.4k
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 ϥϯμϜͰམͪΔςετ͍͠ͷͰɺମܥతͳ͓ࣝ͑ͯ͘ͱྑͦ͞͏
͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠☕