Upgrade to Pro — share decks privately, control downloads, hide ads and more …

僕の考えた最強のテスト駆動開発

solt9029
June 30, 2022
2.7k

 僕の考えた最強のテスト駆動開発

#cookpad_tech_kitchen 第27回で発表しました。

solt9029

June 30, 2022
Tweet

Transcript

  1. ࠷ۙ࡞ͬͨ΋ͷ঺հ ΫοΫύουגࣜձࣾ Ԙग़ݚ࢙ !TPMU $PPLQBE 5FDI,JUDIFO  1

  2. • ॴଐɿ ΫοΫύουגࣜձࣾ ങ෺ϓϩμΫτ։ൃ෦ • ීஈ࢖͏ٕज़ɿ 3BJMT3FBDU)41  1SPDFTTJOH •

    ۀ຿ྖҬɿ ൢചऀ޲͚ϓϩμΫτ &$ΞϓϦͷ"1*ͷ։ൃ • झຯɿ ΋ͷͮ͘Γʢࢼ࡞͕ϝΠϯʣ • 5XJUUFS!TPMU ࣗݾ঺հ 2
  3. ࠓ·Ͱ࡞ͬͨ΋ͷ ΰϛϑΝΠϧΛཷΊࠐΜͰ͠·͏ํͷͨΊͷσεΫτοϓ্Ͱಈ͘ϧϯό 3

  4. ࠓ·Ͱ࡞ͬͨ΋ͷ ҿञTVEPΛ๷ࢭ͢ΔγεςϜ 4

  5. ࠓ·Ͱ࡞ͬͨ΋ͷ ολʔϯʂͰୡ੒ײΛ͓ॕ͍ͯ͘͠ΕΔ&OUFSΩʔ 5

  6. ࠓ·Ͱ࡞ͬͨ΋ͷ ॆిέʔϒϧΛඥʹݟཱͯͨΫϥοΧʔΞϓϦ🎉 6

  7. ࠓ·Ͱ࡞ͬͨ΋ͷ ॆిέʔϒϧΛඥʹݟཱͯͨΫϥοΧʔΞϓϦ🎉 7

  8. ҰԠٕज़ܥͷษڧձͳΜͩΑͳ🤔 ࠓճͷൃදͲ͏͠Α͏ 8

  9. ๻ͷߟ͑ͨ ࠷ڧͷςετۦಈ։ൃ ͱ͍͏λΠτϧͰൃද͠·͢ 9

  10. ςετۦಈ։ൃͱ͸ • ςετϑΝʔετͳ։ൃख๏ • ࣮૷લʹςετΛॻ͖ɺςετʹ߹͏Α͏ʹ࣮૷ • ࢓༷ɾཁ݅Λ໌֬ʹ͔ͯ͠Βɺ·ͣಈ͘ίʔυΛॻ͖ɺߋʹ ϦϑΝΫλϦϯά͢Δͱ͍͏αΠΫϧͰண࣮ʹ։ൃ 10

  11. ςετۦಈ։ൃͷϝϦοτ • ޙ޻ఔ΁όάΛ࣋ͪӽ͠ʹ͍͘ • γεςϜͷཁ݅ΛΑΓਂ͘ཧղͰ͖Δ • ։ൃऀ͕҆৺ͯ͠ίʔσΟϯάͰ͖ɺ৺ཧతෛ୲͕ݮΔ 2CPPL ςετۦಈ։ൃʢ5%%ʣͱ͸ʁ5%%ͷਐΊํΛεςοϓຖʹղઆʂ ΑΓҾ༻

    IUUQTXXXRCPPLKQDPMVNO@IUNM 11
  12. ςετۦಈ։ൃͷϝϦοτ • ޙ޻ఔ΁όάΛ࣋ͪӽ͠ʹ͍͘ • γεςϜͷཁ݅ΛΑΓਂ͘ཧղͰ͖Δ • ։ൃऀ͕҆৺ͯ͠ίʔσΟϯάͰ͖ɺ৺ཧతෛ୲͕ݮΔ 2CPPL ςετۦಈ։ൃʢ5%%ʣͱ͸ʁ5%%ͷਐΊํΛεςοϓຖʹղઆʂ ΑΓҾ༻

    IUUQTXXXRCPPLKQDPMVNO@IUNM ςετʹΑͬͯ։ൃऀͷମݧΛେ͖͘มԽ 12
  13. ςετͷ࣮ߦɾ݁ՌΛݟΔͷָ͕͍͠ • ͳ͔ͳ͔௨Βͳ͍ςετ͕͋Δͱɺࠓ౓ͦ͜੒ޭ͢Δ͔ʂʁ ͍͚Δ͔ʂʁΈ͍ͨͳؾ࣋ͪʹͳΔ • ͣͬͱςετམͱͣ͞ʹ։ൃͯ͠ΔͱɺʮԶఱ࠽͔ʁʯͱ ಾͷࣗ৴͕ੜ·Εͯ͘Δͱಉ࣌ʹɺςετΛͣͬͱམͱͣ͞ʹ ։ൃ͍ͨ͠ͱ͍͏௅ઓҙ͕ࣝժੜ͑Δ • ࣮ߦޙʹςετέʔεͷ਺͕ݟΒΕͯॆ࣮ײ͕͋Δ

    13
  14. ͋Δ೔ࢥͬͨ͜ͱ 14

  15. ςετ͸Իήʔͩʂ ͋Δ೔ࢥͬͨ͜ͱ 15

  16. ςετͷ࣮ߦɾ݁ՌΛݟΔͷָ͕͍͠ • ͳ͔ͳ͔௨Βͳ͍ςετ͕͋Δͱɺࠓ౓ͦ͜੒ޭ͢Δ͔ʂʁ ͍͚Δ͔ʂʁΈ͍ͨͳؾ࣋ͪʹͳΔ ΊͬͪΌ࿅शͯ͠Δේ໘ͷՕॴ͕ྲྀΕΔͱ͖ʹ ϋϥϋϥυΩυΩ͠ͳ͕Β ԻήʔΛϓϨΠ͢Δͱ͖ͱಉ͡ؾ࣋ͪ 16

  17. ςετͷ࣮ߦɾ݁ՌΛݟΔͷָ͕͍͠ • ͣͬͱςετམͱͣ͞ʹ։ൃͯ͠ΔͱɺʮԶఱ࠽͔ʁʯͱ ಾͷࣗ৴͕ੜ·Εͯ͘Δͱಉ࣌ʹɺςετΛͣͬͱམͱͣ͞ ʹ։ൃ͍ͨ͠ͱ͍͏௅ઓҙ͕ࣝժੜ͑Δ ϑϧίϯϘΛ໨ࢦ͍ͯ͠Δͱ͖ͱಉ͡ײ֮ 17

  18. ςετͷ࣮ߦɾ݁ՌΛݟΔͷָ͕͍͠ • ࣮ߦޙʹςετέʔεͷ਺͕ݟΒΕͯॆ࣮ײ͕͋Δ ࠷େίϯϘ਺ͱ͔ݟͯχϠχϠ͍ͯ͠Δͷͱಉ͡ 18

  19. ςετͷ࣮ߦɾ݁ՌΛݟΔͷָ͕͍͠ • ͳ͔ͳ͔௨Βͳ͍ςετ͕͋Δͱɺࠓ౓ͦ͜੒ޭ͢Δ͔ʂʁ ͍͚Δ͔ʂʁΈ͍ͨͳؾ࣋ͪʹͳΔ • ͣͬͱςετམͱͣ͞ʹ։ൃͯ͠ΔͱɺʮԶఱ࠽͔ʁʯͱ ಾͷࣗ৴͕ੜ·Εͯ͘Δͱಉ࣌ʹɺςετΛͣͬͱམͱͣ͞ʹ ։ൃ͍ͨ͠ͱ͍͏௅ઓҙ͕ࣝժੜ͑Δ • ࣮ߦޙʹςετέʔεͷ਺͕ݟΒΕͯॆ࣮ײ͕͋Δ

    ͜ͷʮָ͍͠ʯΛ΋ͬͱ৳͹ͯ͠ ։ൃऀͷମݧΛѹ౗తʹվળ 19
  20. ςετΛԻήʔ෩ʹ࣮ߦ ͯ͘͠ΕΔ؀ڥΛࡶʹ࡞ͬͨ ͦ͜Ͱʜ 20

  21. %&.0 21

  22. %&.0 22 https://www.youtube.com/watch?v=IUw4EqJQa0k

  23. ΍ͬͺΓςετ͸Իήʔ • ίϯϘཁૉ͕͋Δʢউखʹ͋ΔͱࢥͬͯΔ͚ͩʣ • ςετέʔεʹΑ࣮ͬͯߦ͕࣌ؒҧ͏ͨΊɺϦζϜΛ࡞ΕΔ • ஋Ҏ্ͷ൑ఆ͕ଘࡏ͢Δʢ TVDDFTTQFOEJOHGBJMVSFʣ • ී௨ͷԻήʔ͸0,͔/(͔ͷ஋൑ఆͰ͸ͳ͘ɺλΠϛϯάʹ

    ʮͱͯ΋߹͍ͬͯͨʯʮͦͦ͜͜߹͍ͬͯͨʯʮ߹͍ͬͯͳ͔ͬͨʯ ͳͲͷ஋Ҏ্ͷ൑ఆͰ͋Δ৔߹͕΄ͱΜͲ 23
  24. ࣮૷ • Իήʔ෦෼͸1SPDFTTJOHͰࡶʹ࡞ͬͨ • ࡶͳ࡞ΓͳͷͰɺSTQFDDPSFΛFWBM͠·ͬͨ͘ • STQFDDPSFͷFYBNQMF݁Ռ௨஌पΓͷ࣮૷Λ݁ߏݟͨ • ·͔͞STQFDDPSFͷ։ൃऀ΋ɺ͜ΜͳܗͰ࣮૷ΛݟΒΕΔͱ͸ࢥͬͯ ͍ͳ͍͔΋͠Εͳ͍

    24
  25. ࣗ෼Ͱ࢖ͬͯΈͨײ૝ • ։ൃσόοάதʹ͍ͩͿ๞͖ͯ͠·ͬͨ • ςετʹରͯ͠ςϯγϣϯͷߴ͍ͱ͖͚ͩΦεεϝ 25

  26. Ԙग़ݚ࢙ !TPMU ຖ೔ͷςετΛָ͠Έʹ͢Δ .BLFFWFSZEBZUFTUJOHGVO 26