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
2
610
テストケースの名前はどうつけるべきか?
Kuniwak
PRO
December 14, 2024
Tweet
Share
More Decks by Kuniwak
See All by Kuniwak
DeNA での思い出 / Memories at DeNA
orgachem
PRO
6
2.4k
それ CLI フレームワークがなくてもできるよ / Building CLI Tools Without Frameworks
orgachem
PRO
18
4.1k
状態遷移図を書こう / Sequence Chart vs State Diagram
orgachem
PRO
4
420
欠陥を早期に発見するための Software Engineer in Test とその重要性 / What is Software Engineer in Test and How they works
orgachem
PRO
21
4.5k
住宅を WebXR で評価しよう / Evaluating My Home by WebXR
orgachem
PRO
0
180
HOME VR
orgachem
PRO
1
820
uGUI の自動操作の考え方と操作方法
orgachem
PRO
1
1.5k
Swift Macro に備えて構文木を 10min で学ぶ / Learn Syntax Tree for Swift Macro in 10 minutes
orgachem
PRO
1
1.5k
SoftWare Engineer in Test のおしごと / What is SWET
orgachem
PRO
1
1.2k
Other Decks in Programming
See All in Programming
「待たせ上手」なスケルトンスクリーン、 そのUXの裏側
teamlab
PRO
0
570
rage against annotate_predecessor
junk0612
0
170
Kiroで始めるAI-DLC
kaonash
2
630
Reading Rails 1.0 Source Code
okuramasafumi
0
250
Oracle Database Technology Night 92 Database Connection control FAN-AC
oracle4engineer
PRO
1
470
Performance for Conversion! 分散トレーシングでボトルネックを 特定せよ
inetand
0
3.4k
HTMLの品質ってなんだっけ? “HTMLクライテリア”の設計と実践
unachang113
4
2.9k
楽して成果を出すためのセルフリソース管理
clipnote
0
190
もうちょっといいRubyプロファイラを作りたい (2025)
osyoyu
1
460
2025 年のコーディングエージェントの現在地とエンジニアの仕事の変化について
azukiazusa1
24
12k
How Android Uses Data Structures Behind The Scenes
l2hyunwoo
0
480
「手軽で便利」に潜む罠。 Popover API を WCAG 2.2の視点で安全に使うには
taitotnk
0
870
Featured
See All Featured
Designing Experiences People Love
moore
142
24k
VelocityConf: Rendering Performance Case Studies
addyosmani
332
24k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
The Cult of Friendly URLs
andyhume
79
6.6k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Large-scale JavaScript Application Architecture
addyosmani
513
110k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Java REST API Framework Comparison - PWX 2021
mraible
33
8.8k
Building Applications with DynamoDB
mza
96
6.6k
[RailsConf 2023] Rails as a piece of cake
palkan
57
5.8k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
KATA
mclloyd
32
14k
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[[ ࣄલ݅Λຬͨͯ͢͢ͷঢ়ଶʹରͯ͠ɺ ͦͷ࣮ߦޙͷঢ়ଶ͕ࣄޙ݅Λຬͨ͢ͳΒɺ ࣮༷Λຬ͍ͨͯ͠Δɻ ͦΕҎ֎࣮༷Λຬ͍ͨͯ͠ͳ͍ ʢݴ͍͑Δͱ࣮ʹόά͕͋Δʣɻ όά όά