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

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

solt9029
June 30, 2022
3.2k

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

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

solt9029

June 30, 2022
Tweet

Transcript

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

    1

    View Slide

  2. • ॴଐɿ ΫοΫύουגࣜձࣾ ങ෺ϓϩμΫτ։ൃ෦
    • ීஈ࢖͏ٕज़ɿ 3BJMT3FBDU)41
    1SPDFTTJOH
    • ۀ຿ྖҬɿ ൢചऀ޲͚ϓϩμΫτ &$ΞϓϦͷ"1*ͷ։ൃ
    • झຯɿ ΋ͷͮ͘Γʢࢼ࡞͕ϝΠϯʣ
    • 5XJUUFS!TPMU
    ࣗݾ঺հ
    2

    View Slide

  3. ࠓ·Ͱ࡞ͬͨ΋ͷ
    ΰϛϑΝΠϧΛཷΊࠐΜͰ͠·͏ํͷͨΊͷσεΫτοϓ্Ͱಈ͘ϧϯό
    3

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  14. ͋Δ೔ࢥͬͨ͜ͱ
    14

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  20. ςετΛԻήʔ෩ʹ࣮ߦ
    ͯ͘͠ΕΔ؀ڥΛࡶʹ࡞ͬͨ
    ͦ͜Ͱʜ
    20

    View Slide

  21. %&.0
    21

    View Slide

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

    View Slide

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

    View Slide

  24. ࣮૷
    • Իήʔ෦෼͸1SPDFTTJOHͰࡶʹ࡞ͬͨ
    • ࡶͳ࡞ΓͳͷͰɺSTQFDDPSFΛFWBM͠·ͬͨ͘
    • STQFDDPSFͷFYBNQMF݁Ռ௨஌पΓͷ࣮૷Λ݁ߏݟͨ
    • ·͔͞STQFDDPSFͷ։ൃऀ΋ɺ͜ΜͳܗͰ࣮૷ΛݟΒΕΔͱ͸ࢥͬͯ
    ͍ͳ͍͔΋͠Εͳ͍
    24

    View Slide

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

    View Slide

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

    View Slide