Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
良いテストデータ、悪いテストデータ / testdata-antipattern
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
fortkle
October 08, 2017
Technology
7k
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
良いテストデータ、悪いテストデータ / testdata-antipattern
PHPカンファレンス2017 LT
fortkle
October 08, 2017
Transcript
34 slides
ߴߊ!GPSULMF ྑ͍ςετσʔλɺ ѱ͍ςετσʔλ 1)1ΧϯϑΝϨϯε-5
ߴɹߊ !GPSULMF !GPSULMF ίωώτגࣜձࣾɹΤϯδχΞ
ίωώτ։ൃऀϒϩάͬͯ·͢ʂ
ͯ͞ɺࠓʮςετσʔλʯͷ
ςετσʔλʁ w ։ൃεςʔδϯάڥͰ͏ σʔλϕʔεͷσʔλͷ͜ͱ w σʔλϕʔεͷσʔλ͕ඞཁͳ ࣗಈςετͰ͏σʔλͷ͜ͱ
ςετσʔλʁ w ։ൃεςʔδϯάڥͰ͏ σʔλϕʔεͷσʔλͷ͜ͱ w σʔλϕʔεͷσʔλ͕ඞཁͳ ࣗಈςετͰ͏σʔλͷ͜ͱˡࠓͪ͜Β
ࠓͦΜͳςετσʔλͷ
Πέͯͳ͍ྫΛհ͠·͢
ͦͷᶃ ຊ൪%#ΛEVNQͨ͠ςετσʔλ
ͦͷᶃ ຊ൪%#ΛEVNQͨ͠ςετσʔλ w ຊ൪εςʔδϯάͷ%#͔ΒσʔλΛEVNQ w ͦΕΛͦͷ··ࣗಈςετͷςετσʔλͱͯ͠͏ w ςετͱؔͳ͍σʔλ͕େྔʹൃੜ w શͯϝϯςφϯε͠ͳ͍ͱ͍͚ͳ͍ͱͨ͠Β࠷ѱ
w ͔͠େྔͳ͍ͤͰεϩʔςετʹʜ
ͦͷᶄ ҙຯͷͳ͍จࣈྻͷςετσʔλ
DMBTT"SUJDMFT'JYUVSFFYUFOET5FTU'JYUVSF \ QVCMJDSFDPSET< < UJUMF͋͋͋͋͋͋ CPEZ͋͋͋͋͋͋ TVCUJUMFb͋͋͋͋͋͋
DSFBUFE NPEJpFE > ʜ ུ ʜ > ͦͷᶄ ҙຯͷͳ͍จࣈྻͷςετσʔλ
ͦͷᶄ ҙຯͷͳ͍จࣈྻͷςετσʔλ w ʮςετͰ͋Δʯͱ͍͏͜ͱ͔Δ͚Ͳʜ w ҰମԿͷσʔλͳͷ͔ύοͱݟͰ͔Βͳ͍ w ςετͷʮҙਤʯ͕͔ΓͮΒ͍
ͦͷᶅ ݸਓͷओு͕ग़͍͗ͯ͢Δ ςετσʔλ
DMBTT"SUJDMFT'JYUVSFFYUFOET5FTU'JYUVSF \ QVCMJDSFDPSET< < UJUMFຐ๏͔͍ͭϓϦΩϡΞʂ CPEZຐ๏ͷ͜ͱʰΩϡΞοϓὑϥύύʱͰ ;ͨͭͷੈք͕͍·ͭͳ͕Δ TVCUJUMFb·΄ϓϦ
DSFBUFE NPEJpFE > ʜ ུ ʜ > ͦͷᶅ ݸਓͷओு͕ग़͍͗ͯ͢Δςετσʔλ
ͦͷᶅ ݸਓͷओு͕ग़͍͗ͯ͢Δςετσʔλ w ͔ͨ͠ʹʮҙຯʯ͋ΔΜ͚ͩͲʜ w ͍ผʹؒҧ͍ͬͯͳ͍Μ͚ͩͲͶʜ w ࠓޙϝϯς͠ଓ͚ΔΜ͔ͩΒ ͤΊͯޙʹݟͯʹͳΒͳ͍ํ͕·͍͠ΑͶʜ w
ΈΜͳೲಘͳΒͦΕͦΕͰΞϦ
ͦͷᶆ ߹ੑ͕औΕ͍ͯͳ͍ςετσʔλ
ͦͷᶆ ߹ੑ͕औΕ͍ͯͳ͍ςετσʔλ DMBTT"SUJDMFT'JYUVSFFYUFOET5FTU'JYUVSF \ QVCMJDSFDPSET< < UJUMF࠷ॳͷهࣄ CPEZ࠷ॳͷهࣄͷຊจ
TVCUJUMFb࠷ॳͷهࣄͷαϒλΠτϧ DSFBUFE NPEJpFE > ʜ ུ ʜ >
ͦͷᶆ ߹ੑ͕औΕ͍ͯͳ͍ςετσʔλ w ʮొ࣌ʯΑΓʮߋ৽࣌ʯͷํ͕ݹ͍ w ෆ҆ఆͳڍಈΛট͘ͷͰɺςετσʔλͱͯ͠ ద͍ͯ͠ͳ͍ w ҟৗܥͷςετσʔλͷཧʹ͍ͭͯޙड़
ͦͷᶇ Ұຕؠͷڊେͳςετσʔλ
ͦͷᶇ Ұຕؠͷڊେͳςετσʔλ w ӡ༻͢Δͱؾ͍ͨΒ'JYUVSF͕ઍߦʹʜ w ׂ͞Εͣʹɺͦͷ'JYUVSF͕ͯ͢ͷؔ࿈͢Δ ςετέʔεͰΘΕ͍ͯΔ w "ͷͨΊʹमਖ਼ͨ͠Βແؔͳ#ͷςετ͕ࣦഊʜ w
"ͷςετέʔεͰຊʹඞཁͳςετσʔλ͕ ͲΕͳͷ͔͔Βͳ͍
ͦͷᶈ ՕॴͰ͔͠Θͳ͍ͷʹ ଞͰಡΈࠐ·ΕΔςετσʔλ
ͦͷᶈ ՕॴͰ͔͠Θͳ͍ͷʹ ଞͰಡΈࠐ·ΕΔςετσʔλ w 'JYUVSFΛ͍ͬͯΔͱΑ͋͘Δ w ॳΊ৭ΜͳςετͰΘΕΔجૅతͳ 'JYUVSFͱͯ͠ઃܭ͢Δʜ w ͕࣌ؒܦͭʹͭΕͯςϯϙϥϦʔͳ'JYUVSF͕૿͑ͯ͘Δ
w ݁Ռɺ'JYUVSF͕ංେԽ͕ͪ͠
ͱɺ͜͜·ͰΠέͯͳ͍ྫΛ ݟ͖ͯ·͕ͨ͠
ΠέͯΔςετσʔλΛ࡞ΔͨΊͷ
ͭͷϙΠϯτ հ͍ͨ͠ͱࢥ͍·͢ɻ
ϙΠϯτᶃ࠷খݶ w ςετͰݕূ͢Δಈ࡞ͷͨΊʹඞཁͳͷ͚ͩ ςετσʔλʹؚΉΑ͏ʹઃܭ͢Δ w εϩʔςετΛආ͚Δ͜ͱ͕Ͱ͖Δ w ࠷খݶͳͷͰςετ͕ཧղ͍͢͠ w ޙड़ͷ'BDUPSZΛ͏ͱڞ௨ͷ'JYUVSFΛগͳ͘Ͱ͖Δ
ϙΠϯτᶄҙຯͷ͋Δσʔλ w ൚༻తͳσʔλΑΓ࣮ࡍͷΧϥϜͱ͍ۙ͠ҙຯͷ͋Δ σʔλΛ࡞Δ w ΑΓཧղ͍͢͠ w ΑΓ࣮ࡍͷΘΕํʹ͍ۙঢ়ଶͰςετͰ͖Δ w 'BLFSͳͲͷμϛʔσʔλΛੜ͢ΔϥΠϒϥϦΛ
͏ͱศར w -BSBWFMඪ४උ w ͦͷଞͷ'8؆୯ʹར༻Մ
ϙΠϯτᶅదͳׂ w దͳཻͰςετσʔλΛׂ͢Δ w ྫ͑ɺڞ௨ͷ'JYUVSFͱίϯςΩετຖͷ 'JYUVSFʹׂ w ϚελʔܥͷςʔϒϧͷσʔλͳͲڞ௨Խ w ͦΕҎ֎ίϯςΩετຖʹݸผʹ'JYUVSFΛ࡞Δ
ϙΠϯτᶆྫ͑'BDUPSZΛ͏ w 'JYUVSFςετσʔλࣗମ w 'BDUPSZςετσʔλͷεέϧτϯ w 3VCZͰݴ͏ͱ͜Ζͷ'BDUPSZ(JSM w -BSBWFMͩͱ.PEFM'BDUPSZ͕͑Δ w
'BDUPSZΛ͏ͱςετϝιουͰ ؆୯ʹςετσʔλΛ࡞ΕΔ w ҟৗܥͷςετͷͱ͖ʹศར
ϙΠϯτᶆྫ͑'BDUPSZΛ͏ w ྫ͑-BSBWFMͷ.PEFM'BDUPSZͰ ͜Μͳ෩ʹఆٛ͢Δͱ "SUJDMFϞσϧͷ'BDUPSZΛఆٛ GBDUPSZEFpOF "QQa.PEFMa"SUJDMFDMBTT GVODUJPO 'BLFSGBLFS \
SFUVSO< UJUMFGBLFSUJUMF DPOUFOUGBLFSQBSBHSBQI VTFS@JEGVODUJPO \ SFUVSOGBDUPSZ "QQa6TFSDMBTT DSFBUF JE ^ > ^
ϙΠϯτᶆྫ͑'BDUPSZΛ͏ w ؆୯ʹςετσʔλΛੜˍऔಘͰ͖Δ w ଐੑͷΦʔόʔϥΠυͰҟৗܥͷσʔλ؆୯ʹ࡞ ϢʔβʔͷςετσʔλΛੜ VTFSGBDUPSZ "QQa6TFSDMBTT NBLF
ෆਖ਼ͳϢʔβʔͷςετσʔλΛੜʢOBNF͕͍Ϣʔβʔʣ VTFSGBDUPSZ "QQa6TFSDMBTT NBLF < OBNFणݶແणݶແޒ߷ͷࡲΓΕւ࠭རਫڕͷਫߦ >
·ͱΊ w Πέͯͳ͍ྫʹؾΛ͚ͭΑ͏ w ΑΓྑ͍ςετσʔλΛ࡞ΔϙΠϯτΛߟ͑Α͏ w ᶃ࠷খݶ w ᶄҙຯͷ͋Δσʔλ w
ᶅదͳׂ w ᶆྫ͑'BDUPSZΛ͏
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠
More Decks by fortkle
See All by fortkle
無駄な物をなるべく作らないリプレイス戦略 / replace-strategy-phperkaigi2021
fortkle
1
2.8k
フルリモート時代のカンバン運用 / kanban-operation-in-remote
fortkle
0
810
GitHub Actionsで始めるPHPアプリケーションのCI実践入門 / ga-phperkaigi2020
fortkle
3
7.4k
余裕を生み出すコードレビュー 〜レビュイー編〜 / code-review-phpcon-2019
fortkle
8
7.6k
「設計振り返り」を始めてみようと思っている話 / architecture reflection
fortkle
3
650
「ママ向けNo.1アプリ」の 更なる成長を支える仕組み / startup-engineer-night-connehito
fortkle
2
370
BackstopJSで始める CSSリグレッションテスト / backstopjs-css-test
fortkle
0
1.6k
PhpStorm導入アンチパターン / phpstorm-anti-pattern
fortkle
0
2.2k
やさしいコーディング規約の導入〜その後〜 / yasashii-sonogo
fortkle
7
3.7k
Other Decks in Technology
See All in Technology
LLM 基盤と kagent v0 を全部 k8s に入れてみた / Deploy both LLM and kagent v0 in k8s
kota2and3kan
0
140
Sonnetだけで業務はまわる?
kintotechdev
1
100
Quick Automate | 目指せ Quick マスター 12
inariku
PRO
1
100
SREのためのFinOps入門
muziyoshiz
3
1.4k
PostgreSQL オプティマイザ統計の秘密
nori_shinoda
1
470
Claude Codeで新規事業を伸ばせるか? Zennの試行錯誤の記録
wadayusuke
1
120
JAWSコミュニティに 参加して1年経った結果
ssakita
0
120
現場を動かすAIエージェント#2_製造業現場でのAI活用から見た、ハマる罠と実践知
kintotechdev
2
220
高品質と高スピードを支える品質のシフトレフトのアプローチ
goyoki
2
370
AWSを利用する上で知っておきたい名前解決の話 2026
nagisa53
5
3.4k
Kiro CLI 入門 (ターミナルと CI で使う) | 目指せ Kiro マスター 03
inariku
PRO
2
140
[JAWS Festa 2026]一番いい仕事は、請求書に現れない / jawsfesta2026
sh_fk2
2
470
Featured
See All Featured
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.9k
Done Done
chrislema
187
17k
Visualization
eitanlees
153
17k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.7k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
3.1k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6.2k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.9k
For a Future-Friendly Web
brad_frost
184
11k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
690
Testing 201, or: Great Expectations
jmmastey
46
8.4k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
350