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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Yuji Imagawa
June 26, 2019
Programming
5k
8
Share
残して価値のあるテスト設計 / Test design by specification map
#gotanda.rb 第37回目 で発表したスライドです。
Yuji Imagawa
June 26, 2019
More Decks by Yuji Imagawa
See All by Yuji Imagawa
Web開発とその前にある大きな断崖と人生設計について / The difficulty of development and life plan of engineer
ug23
0
440
Other Decks in Programming
See All in Programming
PHPで TLSのプロトコルを実装してみるをもう一度しゃべりたい
higaki_program
0
190
Linux Kernelの1文字のミスで 権限昇格ができた話
rqda
0
2.3k
アーキテクチャモダナイゼーションとは何か
nwiizo
17
4.7k
CursorとClaudeCodeとCodexとOpenCodeを実際に比較してみた
terisuke
1
340
レガシーPHP転生 〜父がドメインエキスパートだったのでDDD+Claude Codeでチート開発します〜
panda_program
0
630
飯MCP
yusukebe
0
490
Reactive ❤️ Loom: A Forbidden Love Story
franz1981
2
230
夢の無限スパゲッティ製造機 -実装篇- #phpstudy
o0h
PRO
0
200
Offline should be the norm: building local-first apps with CRDTs & Kotlin Multiplatform
renaudmathieu
0
180
Vibe NLP for Applied NLP
inesmontani
PRO
0
210
ふりがな Deep Dive try! Swift Tokyo 2026
watura
0
170
ドメインイベントでビジネスロジックを解きほぐす #phpcon_odawara
kajitack
2
130
Featured
See All Featured
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Code Reviewing Like a Champion
maltzj
528
40k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
250
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
200
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.2k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
760
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
370
Abbi's Birthday
coloredviolet
2
6.6k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.3k
GraphQLとの向き合い方2022年版
quramy
50
14k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.9k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
370
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ςετέʔεʹ
མͱ͠ࠐΜͰ͍·͢