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
Summary of Diagnose unreliable code with test ...
Search
shunsuke sato
June 25, 2021
Programming
1
970
Summary of Diagnose unreliable code with test repetitions
shunsuke sato
June 25, 2021
Tweet
Share
More Decks by shunsuke sato
See All by shunsuke sato
要約 "Add Live Text interaction to your app"
ushisantoasobu
1
990
ANDPAD iOS開発の生態系と課題 - 最近取り組み始めた「マルチモジュール化」について
ushisantoasobu
1
780
実践!「みてね」における自動生成活用例
ushisantoasobu
5
6.2k
5 Tips when test fails randomly
ushisantoasobu
2
3.6k
Better Way for Test Data Generation??
ushisantoasobu
1
2.8k
iOS/Androidのサブスクリプション実装における違いをざっと振り返る
ushisantoasobu
2
1.6k
24時間でMacアプリを作ってスベってきた話
ushisantoasobu
0
2.2k
Redirectable in App?
ushisantoasobu
2
910
iOSのClean Architecture テンプレ自動生成を支える技術 / generating CA's templates
ushisantoasobu
0
280
Other Decks in Programming
See All in Programming
もう少しテストを書きたいんじゃ〜 #phpstudy
o0h
PRO
17
4k
仕様変更に耐えるための"今の"DRY原則を考える
mkmk884
9
3.2k
Rubyで始める関数型ドメインモデリング
shogo_tksk
0
140
Djangoアプリケーション 運用のリアル 〜問題発生から可視化、最適化への道〜 #pyconshizu
kashewnuts
1
260
CDK開発におけるコーディング規約の運用
yamanashi_ren01
2
250
pylint custom ruleで始めるレビュー自動化
shogoujiie
0
150
Rails 1.0 のコードで学ぶ find_by* と method_missing の仕組み / Learn how find_by_* and method_missing work in Rails 1.0 code
maimux2x
1
230
kintone開発を効率化するためにチームで試した施策とその結果を大放出!
oguemon
0
160
お前もAI鬼にならないか?👹Bolt & Cursor & Supabase & Vercelで人間をやめるぞ、ジョジョー!👺
taishiyade
7
4.2k
Learning Kotlin with detekt
inouehi
1
140
コードを読んで理解するko build
bells17
1
110
データベースのオペレーターであるCloudNativePGがStatefulSetを使わない理由に迫る
nnaka2992
0
230
Featured
See All Featured
The Cost Of JavaScript in 2023
addyosmani
47
7.4k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
GraphQLの誤解/rethinking-graphql
sonatard
68
10k
How GitHub (no longer) Works
holman
314
140k
Building a Scalable Design System with Sketch
lauravandoore
461
33k
We Have a Design System, Now What?
morganepeng
51
7.4k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
100
18k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Six Lessons from altMBA
skipperchong
27
3.6k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
193
16k
A better future with KSS
kneath
238
17k
Transcript
Summary of “Diagnose unreliable code with test repetitions” at WWDC
2021 !ू·Ε4XJGU͖ʂ4XJGUѪձεϐϯΦϑ88%$ηογϣϯཁձ
ࣗݾհ
໊લࠤ౻ढ़ี ৬ۀϞόΠϧΞϓϦΤϯδχΞʢJ04ΛϝΠϯʹ"OESPJEͪΐͬͱʣ ॴଐגࣜձࣾΞϯυύου ʮݐங%9ʯΛ͍ͬͯΔձࣾ ࠓͷJ04%$ͷϓϥνφεϙϯαʔ
5XJUUFS!VTIJTBOUPBTPCV झຯίʔώʔɺαοΧʔɾϑοταϧ
Diagnose unreliable code with test repetitions
ҰݴͰ·ͱΊΔͱ ʮෆ҆ఆͳςετʢ࣌ʑίέΔςετʣʯΛͨ͢Ίʹ ʮςετͷ܁Γฦ࣮͠ߦʯػೳ͕Ճ͞Εͨ
ηογϣϯͷߏ ʮςετͷ܁Γฦ࣮͠ߦʯػೳͷ֓ཁ ʮςετͷ܁Γฦ࣮͠ߦʯػೳΛ༻͍ͨσϞ 5JQTʢYDPEFCVJMEίϚϯυ·ΘΓʣ
ηογϣϯͷߏ ʮςετͷ܁Γฦ࣮͠ߦʯػೳͷ֓ཁ ʮςετͷ܁Γฦ࣮͠ߦʯػೳΛ༻͍ͨσϞ 5JQTʢYDPEFCVJMEίϚϯυ·ΘΓʣ
ʮςετͷ܁Γฦ࣮͠ߦʯػೳͷ֓ཁ
ෆ҆ఆͳςετ͕ੜ·ΕΔݪҼ
ෆ҆ఆͳςετ͕ੜ·ΕΔݪҼ ڝ߹ঢ়ଶڥґଘάϩʔόϧεςʔτ֎෦αʔϏεͱͷ࿈ܞ
ෆ҆ఆͳςετ͕ੜ·ΕΔݪҼ ڝ߹ঢ়ଶڥґଘάϩʔόϧεςʔτ֎෦αʔϏεͱͷ࿈ܞ ෆ҆ఆͳςετΛ͢ͷ͕͍͠ཧ༝
ෆ҆ఆͳςετ͕ੜ·ΕΔݪҼ ڝ߹ঢ়ଶڥґଘάϩʔόϧεςʔτ֎෦αʔϏεͱͷ࿈ܞ ෆ҆ఆͳςετΛ͢ͷ͕͍͠ཧ༝ ࠶ݱ͢ΔʢίέΔʣͷ͕͍͠
ෆ҆ఆͳςετ͕ੜ·ΕΔݪҼ ڝ߹ঢ়ଶڥґଘάϩʔόϧεςʔτ֎෦αʔϏεͱͷ࿈ܞ ෆ҆ఆͳςετΛ͢ͷ͕͍͠ཧ༝ ࠶ݱ͢ΔʢίέΔʣͷ͕͍͠ ͦͷղܾํ๏ͷखஈͷ͕̍ͭʮςετΛ܁Γฦ͢ʯ͜ͱ
ෆ҆ఆͳςετ͕ੜ·ΕΔݪҼ ڝ߹ঢ়ଶڥґଘάϩʔόϧεςʔτ֎෦αʔϏεͱͷ࿈ܞ ෆ҆ఆͳςετΛ͢ͷ͕͍͠ཧ༝ ࠶ݱ͢ΔʢίέΔʣͷ͕͍͠ ͦͷղܾํ๏ͷखஈͷ͕̍ͭʮςετΛ܁Γฦ͢ʯ͜ͱ
৽͘͠Ճ͞ΕΔʮςετͷ܁Γฦ࣮͠ߦʯػೳʹ̏ͭͷϞʔυ͕͋Δ
ෆ҆ఆͳςετ͕ੜ·ΕΔݪҼ ڝ߹ঢ়ଶڥґଘάϩʔόϧεςʔτ֎෦αʔϏεͱͷ࿈ܞ ෆ҆ఆͳςετΛ͢ͷ͕͍͠ཧ༝ ࠶ݱ͢ΔʢίέΔʣͷ͕͍͠ ͦͷղܾํ๏ͷखஈͷ͕̍ͭʮςετΛ܁Γฦ͢ʯ͜ͱ
৽͘͠Ճ͞ΕΔʮςετͷ܁Γฦ࣮͠ߦʯػೳʹ̏ͭͷϞʔυ͕͋Δ ͦΕͧΕͲ͏͍ͬͨಈ͖Λ͢Δͷ͔ɾ༻్Կ͔ɺ͕͜ͷηογϣϯͷ Ұ൪େࣄͳͱ͜Ζ
'JYFEJUFSBUJPOT
ޭࣦഊΘͣɺࢦఆͨ͠ճςετΛ࣮ߦ͢Δ ༻్ʮςετʹෆ҆ఆ͕͞ͳ͍͔ʯΛ֬ೝ͢ΔͨΊ 'JYFEJUFSBUJPOT
6OUJMGBJMVSF
ࢦఆͨ͠ճςετΛ࣮ߦ͢Δ͕ɺࣦഊ࣌Ͱऴྃ͢Δ ༻్ʮෆ҆ఆͳςετΛ͢ʢσόοά͢Δʣʯͱ͖ʹར༻͢Δ 6OUJMGBJMVSF
3FUSZPOGBJMVSF
ࢦఆͨ͠ճςετΛ࣮ߦ͢Δ͕ɺޭͨ࣌͠Ͱऴྃ͢Δ ༻్ʮ͡Ίࣦഊ͢Δ͕͍ͣΕޭ͢ΔΑ͏ͳςετʯΛಛఆ͢ΔͨΊ 3FUSZPOGBJMVSF
ʮςετͷ܁Γฦ࣮͠ߦʯػೳΛ༻͍ͨσϞ
࠷ۙ$*Ͱςετ͕࣌ʑίέΔ͜ͱʹؾͮ͘
ʮςετͷ܁Γฦ࣮͠ߦʯػೳΛҰ࣌తʹΦϯʹͯ͠࠶$*ͰςετΛ࣮ߦͯ͠ΈΔ
ͬͺΓϥϯμϜͰίέΔΑ͏ͩ
ϩʔΧϧͰ࠶ݱ͢Δ͔ࢼͯ͠ΈΑ͏ʢz3VOUFTU4PNF 3FQFBUFEMZzΛબʣ
l'JYFEJUFSBUJPOTzϞʔυʢճʹࢦఆʣͰ࣮ߦ
ϩʔΧϧͰϥϯμϜͰίέΔ͜ͱ͕࠶ݱͰ͖ͨʂʢճίέͨʣ
ϥϯμϜͰίέΔݪҼΛಛఆ͠Α͏ʢl6OUJMGBJMVSFzϞʔυͰ࣮ߦʣ
ςετ͕ίέͨͱ͖ʹσόοΨ͕ىಈ͞ΕΔʂ
मਖ਼Ͱ͖ͨΒ࠶z'JYFEJUFSBUJPOTzϞʔυͰ࣮ߦͯ͠ΈΔ
ճςετ͕ޭͨ͠🎉ʢ͜ͷςετ͔Βෆ҆ఆ͕͓ͦ͞Β͘ফ͑ͨʣ
·ͱΊ
ෆ҆ఆͳςετʢ࣌ʑίέΔʣͱ͍͏ͷ͕͋Δ ͦͷಛఆͷͨΊͷखஈͷ͕̍ͭʮςετͷ܁Γฦ࣮͠ߦʯ ৽͘͠ʮςετͷ܁Γฦ࣮͠ߦʯͷػೳ͕Ճ͞ΕͨͷͰɺෆ҆ఆͳςετ ͕ݟ͔ͭͬͨΒɺ͜ͷػೳͰಛఆɾमਖ਼Ͱ͖ͳ͍͔ࢼͯ͠ΈΑ͏
͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠😊