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
テストケースの名前はどうつけるべきか?
Search
Kuniwak
PRO
December 14, 2024
Programming
1
530
テストケースの名前はどうつけるべきか?
Kuniwak
PRO
December 14, 2024
Tweet
Share
More Decks by Kuniwak
See All by Kuniwak
状態遷移図を書こう / Sequence Chart vs State Diagram
orgachem
PRO
2
170
欠陥を早期に発見するための Software Engineer in Test とその重要性 / What is Software Engineer in Test and How they works
orgachem
PRO
21
4.4k
住宅を WebXR で評価しよう / Evaluating My Home by WebXR
orgachem
PRO
0
170
HOME VR
orgachem
PRO
1
810
uGUI の自動操作の考え方と操作方法
orgachem
PRO
1
1.5k
Swift Macro に備えて構文木を 10min で学ぶ / Learn Syntax Tree for Swift Macro in 10 minutes
orgachem
PRO
1
1.4k
SoftWare Engineer in Test のおしごと / What is SWET
orgachem
PRO
1
1.2k
私と Nature Remo E / Nature Remo E
orgachem
PRO
0
27k
存在しないアセットへの参照と 未公開アセットでのネタバレに どう立ち向かうか / How to prevent missing assets and spoilers by assets
orgachem
PRO
1
1.2k
Other Decks in Programming
See All in Programming
GitHub Copilot and GitHub Codespaces Hands-on
ymd65536
2
150
Google Agent Development Kit でLINE Botを作ってみた
ymd65536
2
260
新メンバーも今日から大活躍!SREが支えるスケールし続ける組織のオンボーディング
honmarkhunt
5
8.2k
明示と暗黙 ー PHPとGoの インターフェイスの違いを知る
shimabox
2
590
効率的な開発手段として VRTを活用する
ishkawa
0
150
PHP 8.4の新機能「プロパティフック」から学ぶオブジェクト指向設計とリスコフの置換原則
kentaroutakeda
2
1k
Hack Claude Code with Claude Code
choplin
6
2.4k
顧客の画像データをテラバイト単位で配信する 画像サーバを WebP にした際に起こった課題と その対応策 ~継続的な取り組みを添えて~
takutakahashi
1
310
Rubyでやりたい駆動開発 / Ruby driven development
chobishiba
1
750
猫と暮らす Google Nest Cam生活🐈 / WebRTC with Google Nest Cam
yutailang0119
0
160
코딩 에이전트 체크리스트: Claude Code ver.
nacyot
0
870
ソフトウェア品質を数字で捉える技術。事業成長を支えるシステム品質の マネジメント
takuya542
2
14k
Featured
See All Featured
Designing Experiences People Love
moore
142
24k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.9k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
107
19k
Gamification - CAS2011
davidbonilla
81
5.4k
The Language of Interfaces
destraynor
158
25k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
126
53k
Automating Front-end Workflow
addyosmani
1370
200k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3.1k
Making Projects Easy
brettharned
116
6.3k
A Tale of Four Properties
chriscoyier
160
23k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
5.9k
Transcript
ςετέʔεͷ໊લ Ͳ͏͚ͭΔ͖͔ʁ ,VOJXBL 48&5( %F/"$P -UE
ࠓ͍͑ͨ͜ͱ 2 ςετέʔεʹಉύʔςΟγϣϯͷ໊લΛ͚ͭΔ
࠷ॳʹςετέʔεΫΠζ 3
ͲͪΒͷςετέʔε໊͕ϨϏϡʔ͍͢͠ʁ 4 " # ʮͷͱ͖ʯ ʮͷͱ͖'J[[ʯ ʮͷͱ͖#V[[ʯ ʮͷͱ͖'J[[#V[[ʯ ʮͰͰׂΓΕͳ͍ ͱ͖ਐจࣈྻʯ
ʮͰׂΓΕͯͰ ׂΓΕͳ͍ͱ͖'J[[ʯ ʮͰׂΓΕͯͰ ׂΓΕͳ͍ͱ͖#V[[ʯ ʮͰͰׂΓΕΔ ͱ͖'J[[#V[[ʯ
ͲͪΒͷςετέʔε໊͕ϨϏϡʔ͍͢͠ʁ 5 " # ʮͷͱ͖ʯ ʮͷͱ͖'J[[ʯ ʮͷͱ͖#V[[ʯ ʮͷͱ͖'J[[#V[[ʯ ʮͰͰׂΓΕͳ͍ ͱ͖ਐจࣈྻʯ
ʮͰׂΓΕͯͰ ׂΓΕͳ͍ͱ͖'J[[ʯ ʮͰׂΓΕͯͰ ׂΓΕͳ͍ͱ͖#V[[ʯ ʮͰͰׂΓΕΔ ͱ͖'J[[#V[[ʯ Ͳ͏ͯ͠ΛબΜͰ ͍Δ͔Θ͔Βͳ͍ ͷͱ͖Ͳ͏ͳΔΜͩΖ͏ʁ ࢼ͞ͳ͍͍ͯ͘ͷ͔ͳʁ ͕࣌ؒͳ͍ͱΑ͘Θ͔Μͳ͍͠ -(5.ͬͯͳΔʢࣄނΔʣ
ͲͪΒͷςετέʔε໊͕ϨϏϡʔ͍͢͠ʁ 6 " # ʮͷͱ͖ʯ ʮͷͱ͖'J[[ʯ ʮͷͱ͖#V[[ʯ ʮͷͱ͖'J[[#V[[ʯ ʮͰͰׂΓΕͳ͍ ͱ͖ਐจࣈྻʯ
ʮͰׂΓΕͯͰ ׂΓΕͳ͍ͱ͖'J[[ʯ ʮͰׂΓΕͯͰ ׂΓΕͳ͍ͱ͖#V[[ʯ ʮͰͰׂΓΕΔ ͱ͖'J[[#V[[ʯ ͬͨΒ͍͚͠ͲɺͲͷ ύλʔϯߟྀ͞Ε͍ͯͯ ͔ͭඃΓͳ͍ɺͭ·Γ աෆ͕ͳ͍ͱΘ͔Δ
ͭ·ΓɺςετέʔεͷաෆΛѲ͍͢͠ ςετέʔε໊͕͍͍ςετέʔε໊ͱ͍͏͜ͱɻ աෆͳ͘ςετέʔεΛબͿ࡞ۀ͕ςετٕ๏ͷ ֩৺Ͱ͋Δɻ্खʹςετέʔεΛબΕɺ ςετέʔεΛબΜͩཧ༝Λઆ໌Ͱ͖ΔΑ͏ʹͳΔɻ 7
ςετέʔεΛબΜͩཧ༝Λ આ໌Ͱ͖ΔΑ͏ʹͳΖ͏ 8
ςετέʔεͷදతͳબͼํͱͯ࣍͠ͷͭͷํ๏͕ Α͘ΒΕ͍ͯΔɿ w ಉׂ๏ʢ&RVJWBMFODF$MBTT1BSUJUJPOJOH&$1ʣ w ڥքੳ๏ʢ#PVOEBSZ7BMVF"OBMZTJT#7"ʣ 9
ςετέʔεͷදతͳબͼํͱͯ࣍͠ͷͭͷํ๏͕ Α͘ΒΕ͍ͯΔɿ w ಉׂ๏ʢ&RVJWBMFODF$MBTT1BSUJUJPOJOH&$1ʣ w ڥքੳ๏ʢ#PVOEBSZ7BMVF"OBMZTJT#7"ʣ 10
ࣄલ݅Λຬͨ͢ೖྗ͔ͯ͢Β ͳΔू߹Λ9ͱ͢Δɻ 11 ೖྗͷू߹ 9 ࣄલ݅ͱؔͷ࣮ߦલͷঢ়ଶ͕ຬ͖ͨ݅͢ɻ ͜ͷ݅Λक͍ͬͯͳ͍ঢ়ଶͰ͕࣮ؔߦ͞Εͨ߹ɺؔ ͲͷΑ͏ʹৼΔͬͯΑ͍ͷͰςετ͠ͳ͍ɻ
12 ೖྗͷू߹ 9 9 9/ 9Λ࣍ͷ݅Λຬͨ͢ 9 9
9/ͱׂ͢Δɿ
9Λ࣍ͷ݅Λຬͨ͢ 9 9 9/ͱׂ͢Δɿ ༷͔Βఆ͞ΕΔͲΜͳ ࣮Ͱɺ9Oͷதͷೖྗͷςετ ݁Ռ9OͷதͰͯ͢Ұக͢Δɻ 13 9
9 9/˲QSPHQSPH˥QPTTJCMF*NQMTQFD⟶ ˲O˥< /> ˲F˥9OUFTUTQFDQSPHF ˮ ˲F˥9OUFTUTQFDQSPHF Λຬͨ͢9ͷׂɻ 9 9 9/ ςετޭ ςετޭ ςετࣦഊ 9 9 9/ ςετޭ ςετࣦഊ ࣮# ࣮" ςετޭ
͜ͷΑ͏ͳׂΛಉׂͱ ͍͍ɺ9 9 9/ͷ͜ͱΛ ಉύʔςΟγϣϯͱ͍͏ɻ ಉׂͷఆٛࠞཚ͍ͯͯ͠ɺେ͖͚͘Δͱͭͷൊ͕͋Δ ʢৄࡉIUUQTCMPHLVOJXBLDPNFOUSZʣɻ ࠓճͷఆٛදݩͷͱΓ͔ͨʹΑΒͣશਖ਼ੑ͕อূ͞ΕΔ Α͏ʹઃܭͨ͠ܗࣜతͳఆٛΛ࠾༻͍ͯ͠Δɻ
14 ೖྗͷू߹ 9 9 9/
'J[[#V[[Λಉׂͯ͠ΈΑ͏ɻ ࣄલ݅Jͩͬͨɻ͜ΕΛ ࣮Λఆ͠ͳ͕Βׂ͍ͯ͘͠ɻ 15 *OUͷू߹ J
ग़ྗͷ'J[[ͱ#V[[ΛऔΓҧ͑ ͍ͯΔͱ͢Δͱɺ͔ͰׂΓΕΔ ೖྗͷू߹ͷςετ͕ࣦഊ͠ɺ ͦΕҎ֎ͷू߹ςετ͕ޭ͢Δɻ 16 ͔ͷΈͰ ׂΓΕΔ ͦΕҎ֎ *OUͷू߹
'J[[͕UZQP͍ͯ͠Δͱఆ͢Δͱɺ ͰׂΓΕͯͰׂΓΕͳ͍ ೖྗͷू߹ͷςετ͕ࣦഊ͠ɺଞͷ ू߹ͷςετޭ͢Δɻ ͭ·Γ͔ͰׂΓΕΔ෦ ͚ͩͰׂΓΕΔ෦ͱͦΕҎ֎ʹ ׂ͞ΕΔɻ 17 ͚ͩͰ ׂΓΕΔ
ͦΕҎ֎ ͚ͩͰ ׂΓΕΔ *OUͷू߹
ͷਐจࣈྻԽ͕ࣦഊ͍ͯ͠Δͱ͢Δͱɺ ͰͰׂΓΕͳ͍ೖྗͷू߹ͷ ςετ͕ࣦഊ͠ɺଞͷू߹ͷςετޭ͢Δɻ ͭ·ΓͰͰׂΓΕͳ͍ೖྗͱ ͦ͏Ͱͳ͍ೖྗͷू߹ʹׂ͞ΕΔɻ 18 ͚ͩͰ ׂΓΕΔ ͦΕҎ֎ ͚ͩͰ
ׂΓΕΔ ͰͰ ׂΓΕͳ͍ *OUͷू߹
݁Ռͱͯͭ͠ͷಉύʔςΟγϣϯʹ ׂ͞Εͨɻ େࡶʹઆ໌͢Δͱɺ͜͜ʹόά͕͋ͬͨΒ ͜ͷೖྗͷ͋ͨΓ͕શ໓͢Δͳɺͱ͍͏ ՕॴΛΓग़͍ͯ͘͠ͱಉׂʹͳΔɻ 19 ͚ͩͰ ׂΓΕΔ ͦΕҎ֎ ͚ͩͰ
ׂΓΕΔ ͰͰ ׂΓΕͳ͍ *OUͷू߹
͜ͷΑ͏ʹͯ͠ಘΒΕͨಉύʔςΟγϣϯʹ͓͍ͯɺ ͦΕͧΕͭͣͭҙͷදΛςετ͠ɺͦΕ͕ͯ͢ ޭ͢ΔͳΒ࣮༷Λຬ͍ͨͯ͠Δ͜ͱ͕อূ͞ΕΔɻ ͭ·ΓɺಉύʔςΟγϣϯ͝ͱʹҙͷೖྗΛͭ બΜͰςετ͢Δ͚ͩͰ͍͍ʂ 20 IUUQTHJTUHJUIVCDPN,VOJXBLBEEBFEECEBGD
མͱ͕݀͋͠Γ·͢
͜Ε·ͰͷಉׂͰɺ࣮Λఆ͍ͯ͠Δͱ͜Ζ ʹམͱ͕݀͋͠Δɻ ࣮ࡍͷ࣮͕͔͜͜Β֎Ε͍ͯΔͱɺύʔςΟγϣϯ ͷதʹςετΛޭͤ͞Δೖྗͱͦ͏Ͱͳ͍ೖྗ͕ࠞ ͬͯ͟͠·͏ɻ͢ΔͱͲ͏ͳΔ͔ɻ 22
ӡѱ͘ςετΛޭͤ͞ΔೖྗΛදʹબͿͱɺ ͦͷύʔςΟγϣϯͷଞͷςετ͠ͳ͍͔Β ࣦഊ͢Δೖྗɺ͢ͳΘͪόάΛݟಀͯ͠͠·͏ʂ 23
͜ͷམͱ݀͠Λճආ͢ΔͨΊʹࣗͷ࣮ʹ Ͳ͏͍͏όά͕ଟ͍͔ఆͰ͖ΕΑ͍ɻ Α͋͘Δόάͱͯ͠Λͱؒҧ͏Α͏ͳ όάͰ͋Δڥքόά͕ΒΕ͍ͯΔɻ 24
ڥքόάΛఆͯ͠ಉׂ͢Δͱɺࣄޙ݅ͷ ذͷڥք͚ͩΛؚΉಉύʔςΟγϣϯ͕Ͱ͖Δɻ 25
ྫ͑ɺྸΛೖྗͱͯ͠ɺ ͳΒਅɺະͳΒِΛฦ͢ ؔJT"EVMU BHF ͷ༷Λߟ͑Δɻ ࣄલ݅ʽBHFɺࣄޙ݅ ग़ྗͱʽBHFͷਅِͷҰகɻ 26 *OUͷू߹ ʽBHF
ਖ਼ղͷ࣮ͷܗΛSFUVSO BHF ͱͯ͠ɺ ΛͱͰؒҧ͑ͯ ͠·͏ఆΛ͢ΔͱɺBHF͕ͷ ͱ͖ͷςετ͕ࣦഊ͠ɺͦΕҎ֎ ͷςετޭ͢Δɻ 27 *OUͷू߹ BHF
ͦΕҎ֎
͢ΔͱɺBHFͱ͍͏ ࣄޙ݅ͷڥքͷ͚͔ͩΒͳΔ ಉύʔςΟγϣϯ͕Ͱ͖Δɻ ͜ͷΑ͏ʹڥքόάΛߟྀͨ͠ ಉύʔςΟγϣϯ͔ΒදΛ બͿํ๏Λڥքੳ๏ͱ͍͏ɻ 28 *OUͷू߹ BHF ͦΕҎ֎
ʢڥքʣ
ςετέʔεͷදతͳબͼํͱͯ࣍͠ͷͭͷํ๏͕ Α͘ΒΕ͍ͯΔɿ w ಉׂ๏ʢ&RVJWBMFODF$MBTT1BSUJUJPOJOH&$1ʣ w ڥքੳ๏ʢ#PVOEBSZ7BMVF"OBMZTJT#7"ʣ 29
͜͜·Ͱͷ·ͱΊ 30 w ಉׂ๏ʢ&RVJWBMFODF$MBTT1BSUJUJPOJOH&$1ʣ όά͕͋ͬͨΒ͜ͷೖྗ͕ࣦͯ͢ഊ͢Δͱ͍͏ՕॴΛ Γग़͍͖ͯ͠ɺͦͷද͚ͩΛςετ͢Δํ๏ɻ w ڥքੳ๏ʢ#PVOEBSZ7BMVF"OBMZTJT#7"ʣ ࣄޙ݅ͷڥքʹόά͕͋Δ͜ͱΛఆͯ͠ڥք্͔Β දΛબͿํ๏ɻ
ຊɿςετέʔεͷ໊લ 31
ςετέʔεͷաෆΛѲ͍͢͠ςετέʔε໊ ͕͍͍ςετέʔε໊ͩͬͨɻ ಉׂ๏ ڥքੳ๏ʹͱͮ͘ςετέʔεͷ ໊લʹɺಉύʔςΟγϣϯ͕Θ͔Δ໊લΛॻ͘ͱ ςετέʔεͷաෆΛѲ͘͢͠Ͱ͖Δɻ 32
ઌ΄Ͳͷఆ࣮Ͱͷ'J[[#V[[ͷ ಉύʔςΟγϣϯ͜͏ͩͬͨɿ w ͰͰׂΓΕͳ͍ೖྗͷू߹ w ͰׂΓΕͯͰׂΓΕͳ͍ೖྗͷू߹ w ͰׂΓΕͯͰׂΓΕͳ͍ೖྗͷू߹ w ͰͰׂΓΕΔೖྗͷू߹
33
ͳͷͰςετέʔε໊͜͏͢ΔͱΑ͍ɿ w ʮͰͰׂΓΕͳ͍߹ʯ w ʮͰׂΓΕͯͰׂΓΕͳ͍߹ʯ w ʮͰׂΓΕͯͰׂΓΕͳ͍߹ʯ w ʮͰͰׂΓΕΔ߹ʯ 34
͍ͭͰʹࣄޙ݅Λఴ͑ΔͱςετϨϙʔτ͕ ͦͷ··༷ͷจॻʹͳΔͷͰศརɿ w ʮͰͰׂΓΕͳ͍߹ਐจࣈྻʯ w ʮͰׂΓΕͯͰׂΓΕͳ͍߹'J[[ʯ w ʮͰׂΓΕͯͰׂΓΕͳ͍߹#V[[ʯ w ʮͰͰׂΓΕΔ߹'J[[#V[[ʯ
35
ઌ΄Ͳͷఆ࣮ͷJT"EVMUͷಉύʔςΟγϣϯ ͜͏ͩͬͨɿ w BHF w ͦΕҎ֎ 36
͜ͷͱ͖ͷςετέʔε໊ࣄޙ݅Λఴ͑ͯɿ w ʮBHFʢڥքʣͷͱ͖ग़ྗਅʯ w ʮͦΕҎ֎ͷͱ͖ग़ྗBHFʽͷਅِͱҰகʯ ڥք͔ΒͳΔಉύʔςΟγϣϯڥքͰ͋Δ ͜ͱΛΘ͔Γ͘͢͢ΔͱϨϏϡʔ͍͢͠ɻ 37
·ͱΊ 38 ςετέʔεʹಉύʔςΟγϣϯͷ໊લΛ͚ͭΔ
39
͓͞Β͍ɿ༷ͱ 40 w ࣄલ݅ ͕࣮ؔߦ͞ΕΔલʹͲ͏͍͏ঢ়ଶͰ͋Δ͖͔ɻ 'J[[#V[[Ͱ͍͏ͱɺJ w ࣄޙ݅ ࣄલ݅Λຬͨͨ͠ঢ়ଶͰɺؔΛ࣮ߦͨ͠ޙʹ Ͳ͏͍͏ঢ়ଶʹͳΔ͖͔ɻ
'J[[#V[[Ͱ͍͏ͱɺʢଓ͘ʣ
41 ೖྗͷ ग़ྗͷ 'J[[
#V[[ 'J[[ 'J[[#V[[ͷࣄޙ݅ɿ w ͰͰׂΓΕͳ͍ͱ͖ਐจࣈྻ w ͰׂΓΕͯͰׂΓΕͳ͍ͱ͖'J[[ w ͰׂΓΕͯͰׂΓΕͳ͍ͱ͖#V[[ w ͰͰׂΓΕΔͱ͖'J[[#V[[ ͓͞Β͍ɿ༷ͱ
࣮͕༷Λຬͨ͢ͱ 42 ೖྗͷ ༷ͷग़ྗ ࣮ͷग़ྗ
'J[[ #V[[ #V[[ 'J[[ ࣄલ݅Λຬͨͯ͢͢ͷঢ়ଶʹରͯ͠ɺ ͦͷ࣮ߦޙͷঢ়ଶ͕ࣄޙ݅Λຬͨ͢ͳΒɺ ࣮༷Λຬ͍ͨͯ͠Δɻ ͦΕҎ֎࣮༷Λຬ͍ͨͯ͠ͳ͍ ʢݴ͍͑Δͱ࣮ʹόά͕͋Δʣɻ όά όά