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
XP, Testing and ninja testing
Search
seki at druby.org
June 27, 2025
Programming
3
750
XP, Testing and ninja testing
Rubyセミナー大阪 2025で話したスライドのXPとテストのPartだよ!
忍者式テストはSQiP2023やSS2023を探してみるか、m_sekiに問い合わせてね
seki at druby.org
June 27, 2025
Tweet
Share
More Decks by seki at druby.org
See All by seki at druby.org
XP, Testing and ninja testing ZOZ5
m_seki
3
800
RWC 2024 DICOM & ISO/IEC 2022
m_seki
0
500
ERB, ancient and future
m_seki
3
930
ERB Hacks
m_seki
1
1.5k
わりこまれるはなし
m_seki
0
940
ぼくのかんがえたさいきょうのけいやくによるプログラミング
m_seki
2
1.3k
Learn Ractor
m_seki
1
2.8k
How many copies did you buy the first print?
m_seki
1
1.1k
Create my own search engine.
m_seki
1
5.4k
Other Decks in Programming
See All in Programming
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
400
CSC305 Lecture 06
javiergs
PRO
0
270
『毎日の移動』を支えるGoバックエンド内製開発
yutautsugi
2
270
品質ワークショップをやってみた
nealle
0
600
What's new in Spring Modulith?
olivergierke
1
160
3年ぶりにコードを書いた元CTOが Claude Codeと30分でMVPを作った話
maikokojima
0
620
技術的負債の正体を知って向き合う
irof
0
230
CSC509 Lecture 07
javiergs
PRO
0
240
Goで実践するドメイン駆動開発 AIと歩み始めた新規プロダクト開発の現在地
imkaoru
4
880
オープンソースソフトウェアへの解像度🔬
utam0k
17
3.1k
AI駆動で0→1をやって見えた光と伸びしろ
passion0102
1
770
TFLintカスタムプラグインで始める Terraformコード品質管理
bells17
2
350
Featured
See All Featured
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
657
61k
Learning to Love Humans: Emotional Interface Design
aarron
274
41k
Building Applications with DynamoDB
mza
96
6.7k
GraphQLとの向き合い方2022年版
quramy
49
14k
Art, The Web, and Tiny UX
lynnandtonic
303
21k
Why You Should Never Use an ORM
jnunemaker
PRO
59
9.6k
Code Review Best Practice
trishagee
72
19k
Making the Leap to Tech Lead
cromwellryan
135
9.6k
KATA
mclloyd
PRO
32
15k
Thoughts on Productivity
jonyablonski
70
4.9k
Rebuilding a faster, lazier Slack
samanthasiow
84
9.2k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Transcript
OJOKBUFTUJOHDPN 91ͱςετ ~ ऀࣜςετͷ࣮ફ͔Β ~
91ͱςετ ~ ऀࣜςετͷ࣮ફ͔Β ~
91Λհͨ͠ɻ࣍ςετ 91ͱςετ ~ ऀࣜςετͷ࣮ફ͔Β ~
͔͜͜Βຊฤɻ 91ͱςετ ~ ऀࣜςετͷ࣮ફ͔Β ~
ࣗݾհ ͋ͷʢҩྍػثιϑτΣΞ։ൃͷF9USFNFͳʣνʔϜʹॴଐ͢Δ։ൃऀ ؔকढ़ϓϩάϥϚ ਂ୩ඒςελʔ ͜ͷ9ઢ$5ը૾ࢲͨͪͷ։ൃͨ͠ஔͰࡱӨͨ͠ࢲͨͪͷதʢਓؒυοΫͷ࠶ݕࠪͰࡱͬͯΒͬͨΑʂʣ
91ͱςετ ~ ऀࣜςετͷ࣮ફ͔Β ~
F9USFNF1SPHSBNNJOH 91 ΞδϟΠϧϓϥΫςΟεϚοϓ"HJMF4UVEJPIUUQTXXXBHJMFTUVEJPKQBHJMFQSBDUJDFNBQ
F9USFNF1SPHSBNNJOH ✦ ϙετɾιϑτΣΞֶख๏ ✦ ιϑτΣΞ։ൃϏδωεͷن ✦ ϕετϓϥΫςΟεΛۃʹ࣮ࢪ ✦ ։ൃαΠΫϧΛૉૣ͘ճ͢
91 ΞδϟΠϧϓϥΫςΟεϚοϓ"HJMF4UVEJPIUUQTXXXBHJMFTUVEJPKQBHJMFQSBDUJDFNBQ
F9USFNF1SPHSBNNJOH ✦ ϙετɾιϑτΣΞֶख๏ ✦ ιϑτΣΞ։ൃϏδωεͷن ✦ ϕετϓϥΫςΟεΛۃʹ࣮ࢪ ✦ ։ൃαΠΫϧΛૉૣ͘ճ͢
91 ੈلͷऴΘΓͷιϑτΣΞֶΛ্ॻ͖͠ʹ͖ͨʂʢͷ࡞Γํͩͬͨͷͷ͕ঃʑʹ࡞ΒͤํʹͳͬͨɻͦΕΛ࠶ͼ࡞Γํʹͨ͠ײ͢͡Δʣ
F9USFNF1SPHSBNNJOH ✦ ϙετɾιϑτΣΞֶख๏ ✦ ιϑτΣΞ։ൃϏδωεͷن ✦ ϕετϓϥΫςΟεΛۃʹ࣮ࢪ ✦ ։ൃαΠΫϧΛૉૣ͘ճ͢
91 ϏδωεͳͷͰɺͦͦ͜͜ʹෳࡶͰɺਓࢿۚʹ੍͕͋ΓɺϦϦʔε͢Δ͕ܾ·͍ͬͯΔɻͦ͏͍͏ϓϩδΣΫτʹ͍͍ͯΔɻʢখ͍͞ͱ͖ʹཱͨͳ͍ʣ
F9USFNF1SPHSBNNJOH ✦ ϙετɾιϑτΣΞֶख๏ ✦ ιϑτΣΞ։ൃϏδωεͷن ✦ ϕετϓϥΫςΟεΛۃʹ࣮ࢪ ✦ ։ൃαΠΫϧΛૉૣ͘ճ͢
91 ͍͍͘͢͝ϓϥΫςΟεΛۃʹΔʂۃྲྀϓϩάϥϛϯάͷ༝དྷɻʢ㲈ͪΐͬͱ͍͍ͭΛ·ΜΜͳͬͨ͘Γ͠ͳ͍ʣ
F9USFNF1SPHSBNNJOH ✦ ϙετɾιϑτΣΞֶख๏ ✦ ιϑτΣΞ։ൃϏδωεͷن ✦ ϕετϓϥΫςΟεΛۃʹ࣮ࢪ ✦ ։ൃαΠΫϧΛૉૣ͘ճ͢
91 ૉૣ͘ɺʢͱ͔ૣ͘ͱ͔εϐʔυͱ͔ʣͪΐͬͱΘ͔Γʹ͍͘
F9USFNF1SPHSBNNJOH ✦ ૉૣ͘ٸ͍ͰΔ͜ͱͰͳ͍ ✦ λΠϜϘοΫε ✤ ظؒͱඪʢͷ֬ೝํ๏ʣ ✦ ֬ೝ͢Δͱ͍͏͜ͱɺͦͷํ๏ɺ࣌ ظΛλΠϜϘοΫεͷ࢝Ίʹߟ͑Δ
͜ͱ͕ૉૣ͞Λৢ͢ ✦ ਓϛε͢Δɺ͕ࠜఈʹ͋Δ ✤ ૣ͘ϛε͕όϨΔΑ͏ʹ ϛε͠ͳ͍Α͏ʹͯ͠ϛε͢Δ 91 ͍ΖΜͳλΠϜϘοΫε͕͋ͬͯɺͦΕΛར༻ͯ͠Λ໌ΔΈʹग़͢ɻʢۃʹͨ͠Β࣌ؒཧͷςΫχοΫͰͳ͘ͳͬͨʣ
F9USFNF1SPHSBNNJOH ✦ ෮։ൃͷ͍͍ͭ͘͢͝ʹͨ͠ʂ ✤ ϢʔβʔετʔϦʔ ͣͬͱΔʗຖݟ͢ʗೖΕࢠ͕ͳ͍ ✤ ड͚ೖΕςετ
શһΔʗͣͬͱΔʗຖݟ͢ʗ৽ ͨͳΛΈ͚ͭΔςετʹ͢Δ ✤ ςετۦಈ։ൃ ͋ΒΏΔΞΫςΟϏςΟʹൣғΛ͛Δ ✦ ͦ͏͍͏ͭΓͰຊฤΛฉ͜͏ ऀࣜςετͰ
͜Εͨͩͷ91Ͱ͋Δ F9USFNF1SPHSBNNJOH ✦ 91ࣗମʹۃ͞Λ͞Βʹ্͛Δ͜ͱΛଅ͢Έ͕ࡏ͞Ε͍ͯΔʢͱࢥ͏ ✤ 91ͷຊʹॻ͍ͯ͋Δఔͷۃ͞ɺग़ൃͰ͋ͬͯͦΕ͕ਖ਼͍͠91ͱ͍͏Θ͚ ͡Όͳ͍ ✤ ͦͷۃ͞ʹཹ·Δͷຊʹۃྲྀ͔ʁ ͷ91ࡇΓͷ࣌ͰͦΕʹؾ͍͍ͮͯ·ͤΜͰͨ͠
91Λհͨ͠ɻ࣍ςετ 91ͱςετ ~ ऀࣜςετͷ࣮ફ͔Β ~
ాਓ͞Μᐌ͘
ాਓ͞Μᐌ͘ ͍ͭҾ༻ͯ͘͠Εͯ͋Γ͕ͱ͏͍͟͝·͢
UXBEB͞Μᐌ͘
ղઆ͠·͢ ද໘తʹฉ͘ͱؾ͕͍͍͕ ✦ ςετΛͯ͠ϞϊΑ͘ͳΒͳ͍ ✤ Α͘͢ΔͷϓϩάϥϛϯάͩͧʂʢͦΕͦ͏ʣ ͬͺϓϩάϥϛϯάॏཁͩͳʔ
ςετͰΛݟ͚ͭͯͳ͓͢ ✦ ؾʹೖΒͳ͍͜ͱΛ୳ͯ͠ɺͬͱྑ͘͢ΔͨΊʹςετ͢Δ ✤ ͏·͍ͬͨ͘ςετɺͱ͍͏ͷ৽͍͠Λݟ͚ͭΒΕͨςετ ✤ ࣦഊͨ͠ςετɺͱ͍͏ͷͳʹ͕ݟ͔ͭΒͳ͔ͬͨςετ ͜ͷλʔϯຊฤͷཧղΛॿ͚ΔલઆͰ͢Α ΤϥʔΛൃݟ͢ΔతͰϓϩάϥϜΛ࣮ߦ͢Δաఔ͕
ςετͰ͋Δɽ ιϑτΣΞͷ৴པੑQ
ࣗಈԽ͍ͨ͠ͷʁ ͳ͓ऀࣜςετͷςετखಈςετͰ͢ ✦ ճάϦʔϯʹͳͬͯCJUΑ͘ͳΒͳ͍͚Ͳ ✤ ͔ͩΒࣗಈԽͰ͢ΑʂແବͳΜͰʂʢΘ͔Δʣ ✤ Ͱ͔ͯ͠͠࡞Γյ͕͋͠Δ͔͠Εͳ͍͔Β ͦΜͳʹ৺ੑͷਓ͕ࣗಈԽͰ͖ͨͱ͜Ζʹ͔͕͠ͳ͍ͬͯࢥ͏͕ͣͳ͍Αͳ
✤ ςετͷࣗಈԽ࣮ߦΑΓɺࣗಈԽ͢ΔաఔͰͷ࣮ͷચ࿅ʢϓϩάϥϛϯάʣ ͷ΄͏ʹՁ͕͋Δ ʮ࣭Λ୲อ͢Δʯͱ͍͏ϑϨʔζ͕ӕ͗͘͢͞ΔͷͰ᪳ͳ͘͏ਓͱڑஔ͘Α͏ʹͯ͠Δɻอͱ͍͍͍͑ͷʹ ͜ Ε Ϩ τ ϩ χ Ϝ ʁ
ऀࣜςετͷςετ͜͏͍͏ςετ ͍ΘΏΔςετٕ๏ͷతͱ͍ͩͿ͕ͪ͏ ✦ Βͳ͍Λ୳ͨ͢Ίͷςετ ✤ ͳ͓ͨ͢ΊʹΔ ✤ ޙΓͤ͞ΔͨΊʹΔ ✦ άϦʔϯͷΛ૿͍ͨ͠Θ͚͡Όͳ͍
✦ खΛݮΒͨ͢ΊͷςετͰͳ͍ ✦ Կݴ͏͚ͲखಈͰͬͯΔΑʂ ͜ͷλʔϯऀࣜςετͷཧղΛॿ͚ΔલઆͰ͢Α
͔͜͜Βຊฤɻ 91ͱςετ ~ ऀࣜςετͷ࣮ફ͔Β ~
ݴ͍ͨ͜͠ͱ͕͋Δ Γ
ظ͕ؒ͋Δͱߟ͍͑͢ ✦ ͋ͱिؒʢɾ࣌ؒʣͳΒ ✤ ͳʹΛ͢Δͷ͕͓ಘ͔ʁ ✤ ͲͷػೳΛ࡞Δ͔ ✤ ͲͷΛͳ͓͔͢ ✤
ͲΜͳςετΛ͢Δ͔ ✤ ͲΜͳจॻΛ͔͢ ✦ ظ͕ؒ͋Δ͜ͱͰબͰ͖ΔɾܾΊ ΒΕΔ ✦ ʮͷ͘͢͝Α͍͜ͱʯ͚ͩʹͳΔ λΠϜϘοΫεԾઆ ظ͕ؒఆ·Βͳ͍ͱʮΑ͍͜ͱʯΛશͯΛΓͨ͘ͳΔɻϏδωεͳͷͰ੍͕࣌ؒ͋ΔΜͩͧʂ
ͲΜͳจॻ͕ͬͨͷ͔ ݶΒΕͨظؒͰॻ͚ΔɾಡΊΔɾϝϯςφεͰ͖ΔͷͳΜͩʂʁ ✦ ͲΜͳͱ͖ʹಡΉʁ ✤ Εͨ͜Ζʹ͍߹Θ͕ͤ͋ͬͨΓɺվͨ͘͠ͳͬͨΓ͢Δͱ͖ ✦ ͳʹ͕΄͍͠ʁ ✤ ͍ํɻͦͷͱ͖ظ͍ͯͨ͠ͷಈ͖͕ॻ͍ͯ͋Δͱ͏Ε͍͠
͍·ͷಈ࡞͕ਖ਼͍͠ͷ͔յΕ͍ͯΔͷ͔ɺޙੈʹΘ͔Βͳ͍ ͦͷڍಈΛબΜͩҙਤʢ༷ͷૉΒ͠͞ɾٽ͘ٽ͘બΜͩʣͱ͔ ✦ ऀࣜςετͷνέοτͦͷͷ ✤ ͍ํɾ΄͍͠ͷ͕ςετهͰॻ͔Ε͍ͯΔ ✤ ͜ͷςετྫࣔʹΑΔ༷ʹۙ͘ɺΛ୳͢ͱ͖ͷग़ൃͱͳΔ ✤ ʢνέοτ໋ྩॻͱ͔ථͱ͔͡Όͳ͍Μͩͧʂʣ ؒຖબ͖ͯͨ݁͠Ռɺͬͨจॻड͚ೖΕςετͩͬͨ
ࠓ91ͱςετͱऀࣜςετͷ͓Λ͠·ͨ͠🥷 91ͱςετ ~ ऀࣜςετͷ࣮ફ͔Β ~