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
残して価値のあるテスト設計 / Test design by specification map
Search
Yuji Imagawa
June 26, 2019
Programming
8
4.9k
残して価値のあるテスト設計 / Test design by specification map
#gotanda.rb 第37回目 で発表したスライドです。
Yuji Imagawa
June 26, 2019
Tweet
Share
More Decks by Yuji Imagawa
See All by Yuji Imagawa
Web開発とその前にある大きな断崖と人生設計について / The difficulty of development and life plan of engineer
ug23
0
420
Other Decks in Programming
See All in Programming
Startups on Rails in Past, Present and Future–Irina Nazarova, RailsConf 2025
irinanazarova
0
300
ソフトウェア設計とAI技術の活用
masuda220
PRO
25
6.7k
The Modern View Layer Rails Deserves: A Vision For 2025 And Beyond @ RailsConf 2025, Philadelphia, PA
marcoroth
2
790
リバースエンジニアリング新時代へ! GhidraとClaude DesktopをMCPで繋ぐ/findy202507
tkmru
4
1.2k
Gemini CLIの"強み"を知る! Gemini CLIとClaude Codeを比較してみた!
kotahisafuru
2
150
テストから始めるAgentic Coding 〜Claude Codeと共に行うTDD〜 / Agentic Coding starts with testing
rkaga
16
6k
GPUを計算資源として使おう!
primenumber
1
290
構造化・自動化・ガードレール - Vibe Coding実践記 -
tonegawa07
0
150
顧客の画像データをテラバイト単位で配信する 画像サーバを WebP にした際に起こった課題と その対応策 ~継続的な取り組みを添えて~
takutakahashi
4
1.4k
Hack Claude Code with Claude Code
choplin
8
2.8k
[DevinMeetupTokyo2025] コード書かせないDevinの使い方
takumiyoshikawa
2
160
商品比較サービス「マイベスト」における パーソナライズレコメンドの第一歩
ucchiii43
0
200
Featured
See All Featured
Code Review Best Practice
trishagee
69
19k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
109
19k
Statistics for Hackers
jakevdp
799
220k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
35
2.5k
4 Signs Your Business is Dying
shpigford
184
22k
How to train your dragon (web standard)
notwaldorf
96
6.1k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Writing Fast Ruby
sferik
628
62k
A designer walks into a library…
pauljervisheath
207
24k
Building Adaptive Systems
keathley
43
2.7k
Git: the NoSQL Database
bkeepers
PRO
431
65k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
48
2.9k
Transcript
ͯ͠Ձͷ͋Δ ςετઃܭ 2019-06-26 @ gotanda.rb # 37 Yuji Imagawa (
@ug23_ )
εϚʔτΩϟϯϓͷࠓͰ͢ • ࠓ༟࢜ @ug23_ • ΤϯδχΞ4 • લ৬͕QAΤϯδχΞ • ͍·RailsΔ͠VueΔ͠ΠϯϑϥΔ
• #tddyyχ ͷͳ͔ͷͻͱ • ؾʹͳ͍ͬͯΔ͜ͱ: Sorbet
ࠓि͔ΒΦϑΟεҠస͠·ͨ͠
We are hiring! ࣄۀΛΓ͍ͨΤϯδχΞืूதͰ͢ [εϚʔτΩϟϯϓ ΤϯδχΞ] [ݕࡧ]
ࠓͷςʔϚ RSpec ͱ ςετ
ࢲͷ ςετઃܭͷͷ΄͏͕ ϝΠϯͰ͢
͓͠ͳ͕͖ • QAΤϯδχΞ࣌ͷ • Α͍ͬͯ͘Δςετઃܭ • RSpecʹԠ༻͢Δ
QAΤϯδχΞ࣌ͷ
ςετͷϨϏϡʔ͍͠ • ϨϏϡʔͯ͠ʂͱ͞ΕΔExcel • ্Լʹ͘ηϧ݁߹͞ΕͨΧςΰϦ • ҧ͍͕Θ͔Βͳ͍ࣅͨςετέʔε
ࢥͬͨ͜ͱ Excelͷςετέʔε ϨϏϡʔ͢Δͷ͕͍͠
ࢥͬͨ͜ͱ ExcelʹͳΔલʹϨϏϡʔ͍ͨ͠
ͨͲΓண͍ͨ͑ • ϚΠϯυϚοϓ͔Β࢝ΊΔ ιϑτΣΞςετ • ా ڿ (ஶ), ླ ࡾل
(ஶ) • ϚΠϯυϚοϓͷ ࡉׂ͔͍Ѫ͠·͢
ϚΠϯυϚοϓͷΑ͍ͱ͜Ζ • ॻ͘աఔͰ಄ΛཧͰ͖Δ • ݟΔଆจষΑΓݟ͍͢ • πϦʔͳͷͰࣗͷݟΔతʹΑͬͯ ୳ࡧ๏ΛબͰ͖Δ • ਂ͞༏ઌ
or ෯༏ઌ • ༿·ͰݟΔ or ͋Δ֊͚ͩ͏ ※ޮՌʹݸਓ͕ࠩ͋Γ·͢
Α͍ͬͯ͘Δςετઃܭ
ϚΠϯυϚοϓΛ͍·͢ • ํେ·͔ͳέʔεΛߟ͑Δ࣌ ϚΠϯυϚοϓΛॻ͖·͢ • ޙ͔ΒRSpecॻ࣌͘ͱ͔ɺखಈͷγεςϜςετʹͳΔ߹ • ͚ࣗͩͷͱ͖εέονϒοΫʹ ඳ͖·͕͢Gitʹ͋͛ΒΕͳ͍…
GitͰཧͰ͖ΔϚΠϯυϚοϓΛ࡞Δ • Markdown→ϚΠϯυϚοϓԽ͢Δ • ࣗ Atomͷ Markdown Mindmap Λར༻͍ͯ͠·͢
σϞ
ςετઃܭ༻ϚΠϯυϚοϓͷॻ͖ํ • ֊ߟ͑ͳ͍ • ͷͼͷͼॻ͘ʂ • ը໘ΛΠϝʔδ͍͍ͯ͠͠ Ϋϥεผͷ୯ҐΛΠϝʔδͯ͠ྑ͍ • ༿ͷཁૉ͕1ͭҎ্ͷςετέʔεʹ
ରԠ͢ΔΑ͏ʹॻ͘
͍ํ • ςετέʔεͷϨϏϡʔ࣌ʹ͏ • ৽ϝϯόʔ͕ೖͬͨ࣌ͳͲ ͦͷγεςϜͷ༷Ұཡͱͯ͠ݟͤΔ • ΈΜͳͰख͚ͯ͠ಈ࡞֬ೝ͍ͨ࣌͠ ʮ͜ͷลͬͯʯͱ͔ਤࣔ͢Δ •
ػೳ͕େ͖͘มΘͬͨΒϓϧϦΫग़͢
෭࡞༻ͱͯ͠ γεςϜͷػೳΛࣔͨ͠ ਤʹͳΔ
RSpecʹԠ༻͢Δ
ͦͦRSpec • ͱͱBDDπʔϧ • ࢲୡSpecificationΛॻ͍͍ͯΔ • "rpsec --format documentation" ͱ
࣮ߦͯ͠Έͯ΄͍͠ • ڵຯΛ࣋ͬͨํ ʰςετۦಈ։ൃʱ(ΦʔϜࣾ)ͷC
RSpecΛ༷ॻͰ͋Δ͔ͷΑ͏ʹॻ͖͍ͨ • ςετΛ࣮ߦͯ݁͠ՌΛಡΉͱ ͦͷ෦ͷίʔυͷ༷͕Θ͔ΔΑ͏ʹ ͍͖͍ͯͨ͠ • ͖ͬ͞ͷϚΠϯυϚοϓͱؔ࿈͚Δ
࣮ࡍʹͬͯΈͨ • FizzBuzzͰྫʹͯ͠Έͨ
࣮ • ݟͤ·͢ • Gistʹ͋͛·ͨ͠ • https://gist.github.com/ ug23/9aafd9e7666ffaa9a1aaba3640d6 d5d8
rspec࣮ߦ݁Ռ fizzbuzz indexΛදࣔจࣈྻʹม͢Δ 3ͷഒͷͱ͖Fizz 5ͷഒͷͱ͖Buzz 15ͷഒͷͱ͖FizzBuzz 3ͷഒͰ5ͷഒͰͳ͍ͱ͖ͦͷ·· ग़ྗ͢Δ index:1ͷͱ͖ͷදࣔจࣈྻΛվߦ۠ΓͰඪ४ग़ྗ͢Δ index:15ͷͱ͖ͷදࣔจࣈྻΛվߦ۠ΓΛඪ४ग़ྗ͢Δ
ճ͢Δ 1͔Β100·ͰͰग़ྗ͢Δ
ҙ • ͳʹ͔ΛΞτϓοτ͢Δࡍʹ ϚΠϯυϚοϓΛϕʔεʹ͢ΔΠϝʔδ • ٯ͋·Γߟ͍͑ͯ·ͤΜ ٯʹ໘ʹͳΔ͔͠Ε·ͤΜ • ͬͱ͍͍͍ํ͋Εڭ͍͑ͯͩ͘͞
·ͱΊ
·ͱΊ • ςετઃܭͷखஈͱͯ͠ ϚΠϯυϚοϓΛར༻ͯ͠·͢ • ςετઃܭͷϚΠϯυϚοϓ͕ ͦͷ··ػೳҰཡʹͳͬͯ ͍Ζ͍Ζ͑·͢ • ͦͷ··RSpecςετέʔεʹ
མͱ͠ࠐΜͰ͍·͢