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

えっ、まだユニットテスト書いてない現場があるんですか? - ボトムアップでもっといけてるチームになるために、たった一つの大事なこと - / Why don't you write unit tests

ikikko
October 02, 2021

えっ、まだユニットテスト書いてない現場があるんですか? - ボトムアップでもっといけてるチームになるために、たった一つの大事なこと - / Why don't you write unit tests

ikikko

October 02, 2021
Tweet

More Decks by ikikko

Other Decks in Programming

Transcript

  1. ͑ͬɺ·ͩϢχοτςετ


    ॻ͍ͯͳ͍ݱ৔͕͋ΔΜͰ͔͢ʁ
    Tomonari Nakamura / Shinnosuke Yata


    2021/10/02 Scrum Fest Mikawa 2021
    ~ ϘτϜΞοϓͰ΋ͬͱ͍͚ͯΔνʔϜʹͳΔͨΊʹɺͨͬͨҰͭͷେࣄͳ͜ͱ ~

    View full-size slide

  2. தଜ ஌੒ ( ikikko )
    • ॴଐɿΫϦΤʔγϣϯϥΠϯגࣜձࣾ


    • ໾ׂɿεΫϥϜϚελʔʢ2,3νʔϜʹΑΔɺෳ਺νʔϜͰͷεΫϥϜʣ


    • ུྺɿ


    • ϝʔΧʔܥSIerͷ։ൃΤϯδχΞ


    • ࣗࣾαʔϏεͷ։ൃɾӡ༻ΤϯδχΞ → ࣾ಺ίʔνɾεΫϥϜϚελʔ


    • ݱ৬ʢ2021/05~ʣ


    • ڵຯ͕͋Δ͜ͱɿνʔϜ΍ϓϩηεվળɺCI/CDΛ͸͡Ίͱͨࣗ͠ಈԽपΓ

    View full-size slide

  3. ໼ా ਐ೭հ
    • ॴଐɿΫϦΤʔγϣϯϥΠϯגࣜձࣾ


    • ໾ׂɿΤϯδχΞ


    • ུྺɿ


    • ΞδϟΠϧ৽ଔݚम@ָఱ (2018೥)


    • ػցֶशϓϩμΫτ։ൃ (2018-2020೥)


    • ݱ৬ (2021೥)


    • ڵຯ͕͋Δ͜ͱɿMLOpsɺ͓ञɺΩϟϯϓ

    View full-size slide

  4. We Are Hiring!

    View full-size slide

  5. Ξ΢τϥΠϯ
    • എܠ


    • ΍ͬͨ͜ͱ


    • ࣾ಺TDDBCʢTDD Boot Campʣ։࠵


    • Ϣχοτςετ؀ڥͷ੔උ


    • ΍ͬͨ݁Ռ


    • େࣄʹͨ͠ࢥ͍

    View full-size slide

  6. JOINͯ͠ײͨ͜͡ͱ
    • εΫϥϜ


    • ;Γ͔͑Γ


    • ͍͖͍͖ͨ͠ݱ৔
    • σϓϩΠࣗಈԽ


    • ςετۦಈ։ൃ


    • ϦϑΝΫλϦϯά
    Α͍ͱ͜Ζ Α͘Ͱ͖Δͱ͜Ζ
    Ϩϑτ΢Οϯά͕ڧ͍νʔϜ
    https://blogs.itmedia.co.jp/hiranabe/2012/09/rightwing-and-leftwing-of-agile.html

    View full-size slide

  7. ͍͖͍͖ͱͨ͠ݱ৔ʢϨϑτ΢Οϯάʣ
    • ࡶஊ͕޻਺ͱͯ֬͠อ͞Ε͍ͯΔ


    • શνʔϜ͕ϦϞʔτͰϞϒϓϩ


    • ސ٬ͱͷ৴པؔ܎͕ग़དྷ্͕͍ͬͯΔ

    View full-size slide

  8. ੈʹ΋حົͳׂΕͨ૭ʢϥΠτ΢Οϯάʣ
    • 1ϑΝΠϧͰ1000ߦӽ͑ͷϞδϡʔ
    ϧ͕͋Δɻ


    • ؔ਺ʹ੾Γग़͞Ε͍ͯͳ͍͠ɺ΋ͪ
    ΖΜϢχοτςετ͸ͳ͍ɻ


    • શͯͷςετέʔεͰDBͷςετσ
    ʔλ͕ڞ௨Խ͞Ε͍ͯΔɻ
    ͦΕͰ΋ͳ͔ͥো֐
    ͕ى͖ͳ͍

    View full-size slide

  9. Ո੓්͸໼ాݟͨʂ

    View full-size slide

  10. Ո੓්͸ݟͨʂͦͷ̍
    εϩοτͷ໨ԡ͠ͷ࿅शʹͳΔ΄Ͳɺ
    εΫϩʔϧͤ͞ͳ͍ͱཉ͍͠΋ͷ͕ݟ
    ͔ͭΒͳ͍mainͷؔ਺΍APIςετͷ
    ࣮ߦ݁Ռ

    View full-size slide

  11. Ո੓්͸ݟͨʂͦͷ̎
    ͞ͳ͕Βਐܸ̋ڊਓΛ૝ىͤ͞ΔΑ͏
    ͳೋॏ΍ࡾॏʹғ·ΕͨϦετ಺แද
    ه΍ࡾ߲ԋࢉࢠ

    View full-size slide

  12. Ո੓්͸ݟͨʂͦͷ̏
    ·ΔͰΞϋମݧͨ͠ؾ෼ʹͳΔΑ͏
    ͳɺ࣮ߦλΠϛϯάͰ݁Ռ͕มΘΔݱ
    ࡏ࣌ࠁґଘͷAPIςετ

    View full-size slide

  13. ϝϯόʔ͸͜ͷঢ়گΛͲ͏ݟ͍ͯΔ͔
    • ෛ࠴͕͋Δ͜ͱʹ׳Εͯ͠·ͬͨਓʢׂΕ૭ཧ࿦ʣ


    • ͜Ε͕ෛ࠴Ͱ͋Δ͜ͱʹؾ͍͍ͮͯͳ͍ਓʢ֝ͷࣽ෺ʣ


    • ୯ʹมԽΛײ͡औΔ͜ͱ͕Ͱ͖ͳ͍ from ୡਓϓϩάϥϚʔ


    • ෛ࠴΁ͷ՝୊ײ͸͋Δ͕༏ઌॱҐ͔Βޙճ͠ʹ͢Δਓ(ࣗ৴ա৒ͳ͏͗͞ʣ


    • ่յͨ͠ίʔυΛॻ͘Ϟʔυ͔Βɺ͍ͣΕͲ͔͜ͰΫϦʔϯ͢ΔϞʔυʹ੾Γ
    ସΘΕΔɺͱ͍͏͏͗͞ͷΑ͏ͳࣗ৴Λ΋͍ͬͯΔ from Clean Architecture
    ʮୡਓϓϩάϥϚʔ̍൛ʯp6~p9


    ʮClean Architectureʯp38

    View full-size slide

  14. ༷ʑͳ੍໿ͷதͰੜ·Εͨ݁Ռͷͻͱͭ
    • ࢢ৔ͷϓϨογϟʔ͸଎͍


    • ઌਓ͕ͨͪ૸Γଓ͚ͯ͘Ε͔ͨΒͦ͜ࠓ͕͋Δ


    • ए͍ਓ͔ΒφΠεϛυϧ·Ͱ৭ʑͳਓ͕͍ΔνʔϜ

    View full-size slide

  15. ಈ͖ग़ͯ͠ΈΑ͏
    ͔͜͜Βվળ׆ಈ͕ελʔτ
    ※ࣗ෼͕Ԍ্͍ͯ͠Δ༁Ͱ͸͋Γ·ͤΜ
    ΋ͬͱ͍͍
    νʔϜʹͳΕΔ
    ͜ͷ؀ڥͷ··
    ࢓ࣄͨ͘͠ͳ͍
    ڧ͍ਓͨͪͱݞΛ
    ฒ΂͍ͨ ໎ͬͨΒ͠ΜͲ͍
    ํΛબͿ

    View full-size slide

  16. ࣗ෼ͷதͷܦݧΛͲ͏׆͔͔͢ߟ͑ͨ
    • աڈʹड͚ͨTDD BootCamp


    • ࣗ෼Ͱ༗ࢤͰ։͍ͨίʔσΟϯάษڧձͰͷTDD


    • ϢχοτςετΛಋೖͯ͠ίʔυ΁ͷෆ҆ΛݮΒ͍ͨ͠


    • TDDΛ࢝ΊͯϦζϜײΑ͘ϦϑΝΫλϦϯά·Ͱ΍Γ͍ͨ

    View full-size slide

  17. վળʹ͋ͨͬͯͷෆ҆ͱᷤ౻
    • TDDΛ΍ͬͨ͜ͱ͸͋Δ͕ɺΤΩεύʔτͰ͸ͳ͍ɻ


    • స৬͖ͯͯ͠൒೥΋ܦ͍ͬͯͳ͍͠ɺϦʔμʔతͳཱͪҐஔͰ͸ͳ͍
    ͷʹ͠Ό͠ΌΓͰͯ΋͍͍ͷ͔ʁ
    • ม͍͑ͨͱ͍͏ࢥ͍͕উͬͨ


    • ಈ͔ͳ͖Ό࢝·Βͳ͍ͱࢥͬͨ

    View full-size slide

  18. ਓΛר͖ࠐΉͨΊͷಈ͖ͩ͠
    • খ͞ͳվળͱࠜճ͔͠Βελʔτ͢Δ


    • ϝϯόʔ͔Βͷ৴པΛಘͳ͕Β͞Βͬͱཧ૝ΛޠΔ


    • ϓϩδΣΫτϦʔμʔʹ૬ஊ͓ͯ͘͠


    • ख఻ͬͯ͘Εͦ͏ͳਓΛݟ͚ͭΔ


    • ͪΌΜͱݴޠԽͯͬͦ͜͠ΓPBIͱ͔ʹೖΕ͓ͯ͘


    • จষͰ΋৭ʑͳϝϯόʔʹ஌ͬͯ΋Β͏ػձΛ૿΍͢
    ౰࣌ͷslack

    View full-size slide

  19. ࣌͸ຬͪͨ…
    • Ϧʔμʔʹ࠶ఏҊ͞ΕΔ


    • தଜ͞Μ΍ɺٳՋ໌͚ͷ΍ͬͱΉ͞
    ΜΛউखʹϛʔςΟϯάηοτͯ͠
    ר͖ࠐΜͰɺ࡞ઓձ͕ٞελʔτ͢
    Δ
    Ϧʔμʔ
    Ϧʔμʔ
    :)
    :)

    View full-size slide

  20. Ξ΢τϥΠϯ
    • എܠ


    • ΍ͬͨ͜ͱ


    • ࣾ಺TDDBCʢTDD Boot Campʣ։࠵


    • Ϣχοτςετ؀ڥͷ੔උ


    • ΍ͬͨ݁Ռ


    • େࣄʹͨ͠ࢥ͍

    View full-size slide

  21. ૉৼΓͰ
    ৮ͬͨ͜ͱ͕
    ͋Δ
    ࣮ફͰ
    ࢖͍ͬͯΔ
    ஌ࣝͱͯ͠
    ஌͍ͬͯΔ
    TDDBC։࠵

    View full-size slide

  22. TDDBC։࠵ͷഎܠ
    • ͪΌΜͱ࣌ؒΛͱͬͯɺཧղ΍ૉৼΓͷ৔Λఏڙ͔ͨͬͨ͠


    • ͨͩɺ୯ൃΠϕϯτͰऴΘΓͨ͘ͳ͍ͱ͍͏ࢥ͍΋͋ͬͨ
    ૉৼΓͰ
    ৮ͬͨ͜ͱ͕
    ͋Δ
    ࣮ફͰ
    ࢖͍ͬͯΔ
    ஌ࣝͱͯ͠
    ஌͍ͬͯΔ
    ୯ൃͷTDDBCͷείʔϓ

    View full-size slide

  23. ࠓͷνʔϜͰͷ୯ൃΠϕϯτͷةݥੑ
    • ࣗ෼ࣗ਎ͷܦݧͱͯ͠TDDͷϦζϜײʹ׳ΕΔ·Ͱʹ਺୊͔͔ͬͨ


    • ୯ൃͩͱϝϯόʔ͕஌ࣝͱͯ͠ٵऩͯ͠ऴΘΔՄೳੑ͕ॆ෼͋ͬͨ
    ૉৼΓͰ
    ৮ͬͨ͜ͱ͕
    ͋Δ
    ࣮ફͰ
    ࢖͍ͬͯΔ
    ஌ࣝͱͯ͠
    ஌͍ͬͯΔ
    ͜͜·ͰΛTDDBCͷείʔϓͱͯ͠ೖΕ͍ͨ

    View full-size slide

  24. ݱ৔ͷ੍໿΋Ճຯͨ͠ํ਑ͷܾఆ
    • ΍Γ͍ͨ͜ͱ


    • ෳ਺ͷ໰୊Λղ͘͜ͱͰ࣮ઓ·ͰͷԼ஍Λ࡞Γ͍ͨ


    • ੍໿


    • ۈ຿͕࣌ؒҧ͏ͷͰશһ͕ͦΖ͏࣌ؒଳ͕গͳ͍


    • ௕࣌ؒ΍ΔͱΈΜͳͷମྗ͕ϔϩϔϩʹͳΓͦ͏
    ̎࣌ؒ͘Β͍Ͱ
    ճ։࠵ʹ͠Α͏

    View full-size slide

  25. 4ճTDDBCͷྲྀΕ
    • ୈ1ճ͸࿨ా͞Μͷجௐߨԋͷಈը
    ΛΈΜͳͰݟͯͳͧΔ


    • ୈ2,3ճ͸िΛ·͙ͨ͜ͱͰϢχο
    τςετͷޮՌΛ࣮ײͯ͠΋Β͏


    • ୈ4ճΛͲ͏͢Δ͔͸ୈ3ճͷঢ়گ
    ͔Βߟ͑Δ

    View full-size slide

  26. ୈ1ճ໨ͷ޻෉఺
    • Youtubeʹ͕͍͋ͬͯΔ࿨ా͞ΜͷTDDBCͷجௐߨԋಈըΛ࢖ͬͨ


    • جௐߨԋΛ४උ͢ΔखؒΛল͍ͨ


    • ։ൃݴޠ͸࣮ࡍͷϓϩμΫτͱಉ͡΋ͷΛ࢖༻ͨ͠


    • Ͱ͖Δ͚࣮ͩફΛ૝ఆͨ͠ϫʔΫΛ͢ΔͨΊ


    • ࣄલʹ։ൃ؀ڥͷ४උΛ͓͍ͯͨ͠


    • clone͙ͯ࢝͢͠ΊΒΕΔঢ়ଶʹ͓͍ͯͨ͠

    View full-size slide

  27. 4ճTDDBCͷྲྀΕ
    • ୈ1ճ͸࿨ా͞Μͷجௐߨԋͷಈը
    ΛΈΜͳͰݟͯͳͧΔ


    • ୈ2,3ճ͸िΛ·͙ͨ͜ͱͰϢχο
    τςετͷޮՌΛ࣮ײͯ͠΋Β͏


    • ୈ4ճΛͲ͏͢Δ͔͸ୈ3ճͷঢ়گ
    ͔Βߟ͑Δ
    ૂ͍

    View full-size slide

  28. ୈ2, 3ճͰ΍ͬͨ޻෉
    • ΍ͬͱΉ͞Μͷࣗൢػ໰୊Λ͓आΓͨ͠


    • ࢓༷͕1~8͘Β͍·Ͱ͋ͬͨͷͰ۠੾Γ΍ͦ͢͏ͩͬͨ


    • 2ճ໨͸࢓༷1,2Λɺ3ճ໨͸࢓༷3,4Λൃදͯ͠είʔϓΛ۠੾ͬͨ


    • νʔϜ΍ϝϯόʔ͕มΘͬͯ΋Ϣχοτςετ͕͋Δ͜ͱʹΑͬͯ
    ్தࢀՃͰ΋΍Γ΍͍͢͜ͱΛମݧͯ͠΋Β͏


    • ϦϞʔτͷgitϨϙδτϦΛ༻ҙͯ͠pushͰ͖ΔΑ͏ʹͨ͠

    View full-size slide

  29. 4ճTDDBCͷྲྀΕ
    • ୈ1ճ͸࿨ా͞Μͷجௐߨԋͷಈը
    ΛΈΜͳͰݟͯͳͧΔ


    • ୈ2,3ճ͸िΛ·͙ͨ͜ͱͰϢχο
    τςετͷޮՌΛ࣮ײͯ͠΋Β͏


    • ୈ4ճΛͲ͏͢Δ͔͸ୈ3ճͷঢ়گ
    ͔Βߟ͑Δ

    View full-size slide

  30. ୈ4ճͷ޻෉఺
    • ܭըஈ֊Ͱ͸ଓ͚Δ͔ഇࢭʹ͢Δ͔͸ܾ͋͑ͯΊ͍ͯͳ͔ͬͨ


    • ঢ়گʹ߹ΘͤͯదԠͤ͞ΔͨΊ


    • ୈ2, 3ճͷ͋ͨΓ͔Β࣮ࡍͷϓϩμΫτΛ৮Γ͍ͨͱࢥ͍ͬͯͨ


    • ಛʹ3ճ໨͕ϚϯωϦԽ΋͋ͬͯਓ਺͕গͳ͔ͬͨͨΊ


    • ςετέʔεͷϦϑΝΫλϦϯάΛͰ͖Δ͚ͩҙࣝͯ͠΋Βͬͨ

    View full-size slide

  31. ࣮ࡍͲ͏ͩͬͨͷ͔

    View full-size slide

  32. ୈ1ճͷΑ͔ͬͨͱ͜Ζ
    • ࿨ా͞Μͷجௐߨԋಈըͷ੾Εຯ͕Ӷͯࢗ͘͞Δਓ͕ଟ͔ͬͨ


    • ࣮ࡍʹऔΓ૊ΜͰ΋Β͏໰୊ΛFizzBuzz+ʹͨ͜͠ͱͰɺߨԋͷͳͧ
    ΓΛͨ͠ޙʹ৽ͨͳ໰୊Λ௥Ճ͍ͯ͘͠ελΠϧ͕ޭΛ૗ͨ͠
    from cyber-dojo
    :PVUVCFͰແྉͰݟ
    ΕΔͷ͗͢͢͝Δ
    جௐߨԋͱશ͘ಉ͡
    ͋Δఔ౓࣮૷Ͱ͖ͨ
    ͱ͜ΖͰ௥Ճ࢓༷

    View full-size slide

  33. ୈ2~4ճͷΑ͔ͬͨͱ͜Ζ
    • ෳ਺ճࢀՃͨ͠ਓ͸TDDʹ׳Εͯɺྑ͞Λ࣮ײͯ͠΋Β͑ͨ


    • 4ճ໨ͰςετέʔεͷϦϑΝΫλϦϯάͷ੒ޭମݧ͕Ͱ͖ͨ
    ͱ͋ΔΤϯδχΞ
    શ෦ࢀՃͨ͠ਓ͸νʔϜʹ
    ໭ͬͯ෍ڭΛ࢝Ίͨ

    View full-size slide

  34. ୈ3ճޙͷTODOϦετ

    View full-size slide

  35. ୈ4ճޙͷTODOϦετ
    • ࣮͸औΓ૊Μͩ௥Ճ࢓༷ͷ
    ਺͸มΘ͍ͬͯͳ͍


    • ςετέʔεͷϦϑΝΫλ
    ϦϯάΛ͍ͯ͠ΔதͰ
    9→14έʔεʹ૿͑ͨ
    ΋͸΍ݟ͍ͯͨࣗ෼
    ֶ͕ͼʹͳͬͨ

    View full-size slide

  36. ࢀՃऀͷ;Γ͔͑Γ͔Β੒௕͕Θ͔Δ
    ୈ1ճ ୈ2ճ
    ୈ3ճ ୈ4ճ
    ճ໨ͰૉৼΓ׬ྃ
    ͨ͠ײ

    View full-size slide

  37. 4ճTDDBCͷ·ͱΊ
    • Α͔ͬͨͱ͜Ζ


    • ෳ਺ճ΍Δ͜ͱͰ஌ࣝͰऴΘΔ͜ͱ͸ආ͚ΒΕΔ


    • ӡӦ໘Ͱͷ՝୊Λ࣍ͷճʹ൓өͰ͖ΔʢݕࠪͱదԠͷΑ͏ʣ


    • ࣍΍ΔͳΒؾΛ͚͍ͭͨͱ͜Ζ


    • ୈҰճͷॏཁ౓͕ߴ͍ʢجௐߨԋ͸ඞਢʣΛղܾ͍ͨ͠


    • ೚ҙࢀՃʹͨ͠ͷͰνʔϜ͝ͱͷࢀՃ཰ͷภΓΛͳ͘͢

    View full-size slide

  38. ࠜ෇ͨ͘Ίͷҧ͏Ξϓϩʔνͷඞཁੑ
    • ஌ࣝ΍ૉৼΓΛ͢ΔΑΓɺ͙͢ʹ࣮ફʹ࢖͑Δ΋ͷΛٻΊΔνʔϜͷ
    ϝϯόʔࢀՃ཰͕ߴ͘ͳ͔ͬͨ


    • ϫʔΫγϣοϓͱ͸ҧͬͨΞϓϩʔν͕ඞཁͩͱײͨ͡


    • ݴ༿Ͱઆಘ͢Δͱ͍͏ͷ͸೉ͦ͠͏Ͱ࣮ϓϩμΫτͰ࣮ફͯ͠΋Βͬ
    ͨํ͕ਁಁ͠΍ͦ͢͏ͩͱࢥͬͨ

    View full-size slide

  39. ࣮ફͰ࢖͏ʹ͸·ͩน͕͋ͬͨ
    • ϓϩμΫτίʔυͰͷςετ؀ڥͷߏஙʹམͱ͕݀͋ͬͨ͠


    • ͜͜Λ։ൃऀ͚ͩͰղܾ͢Δͷ͸ɺ࣌ؒతʹ΋ٕज़తʹ΋೉͔ͬͨ͠
    ૉৼΓͰ
    ৮ͬͨ͜ͱ͕
    ͋Δ
    ࣮ફͰ
    ࢖͍ͬͯΔ
    ஌ࣝͱͯ͠
    ஌͍ͬͯΔ
    ͜͜ʹน͕͋Δ
    →ۤौͷܾஅͰSMʹཔΔ

    View full-size slide

  40. Ϣχοτςετ؀ڥͷ੔උ
    ૉৼΓͰ
    ৮ͬͨ͜ͱ͕
    ͋Δ
    ࣮ફͰ
    ࢖͍ͬͯΔ
    ஌ࣝͱͯ͠
    ஌͍ͬͯΔ

    View full-size slide

  41. ςετपΓͷ՝୊
    • UI / ౷߹ςετ͕ओͰɺςετ࡞੒ɾ࣮ߦʹ͕͔͔͍࣌ؒͬͯΔ


    • ςετ࣮ߦͷ࢓૊Έ͕ࣗલ࣮૷Ͱɺࡉ੍͔͍ޚ·Ͱߟྀ͞Ε͍ͯͳ͍


    • ςετσʔλΛڞ༗͍ͯͯ͠ɺଞͷςετέʔε͕ෆҙʹյΕΔ


    • Ͳ͜Ͱςετࣦഊ͍ͯ͠Δ͔͕෼͔ΓͮΒ͍ɺͳͲ


    ςετ͕։ൃΛࢧԉ͢Δ΋ͷͰͳ͘ɺ଍͔ͤʹͳ͍ͬͯΔ

    View full-size slide

  42. ΍ͬͨ͜ͱ
    • ߴ଎ɾ҆ఆͯ͠ςετΛճͤΔΑ͏ʹɺϢχοτςετ؀ڥΛ੔උ


    • Jest / pytestͱ͍ͬͨσϑΝΫτελϯμʔυͳϑϨʔϜϫʔΫΛ࠾༻

    View full-size slide

  43. ํ਑ɿςετͷָ͠͞Λମײͯ͠΋Β͏
    • Ϣχοτςετʹෆ׳Εͳਓ΋ଟ͍ʢTDDBCͰମݧͨ͠ਓ΋͍Δ͚
    ͲɺશһࢀՃͨ͠Θ͚Ͱ͸ͳ͍ʣ


    • ϓϩμΫτίʔυ͕ςετΛ૝ఆͨ͠࡞Γʹͳͬͯͳ͍ͷͰɺςετ
    ͕·ͣಈ͘ͱ͜Ζ·Ͱ͍࣋ͬͯ͘ࡍͷϋϚΓͲ͜Ζ͕ଟ͍


    • ͜ͷঢ়گͰɺ·ͣ͸ʮςετָ͍ͬͯ͠Ͷʯͱ͍͏ײ֮Λ࣋ͬͯ΋Β
    ͍͍ͨ

    View full-size slide

  44. ํ਑ɿςετͷָ͠͞Λମײͯ͠΋Β͏
    • ϋϚΓͲ͜ΖΛऔΓআ͍ͯɺຊ࣭తͳςετϩδοΫʹ஫ྗͯ͠΋Β͏


    • ςετ࣮ߦͷ؀ڥઃఆͱαϯϓϧίʔυ͸ɺ࠷ॳʹ੔͓͑ͯ͘


    • νʔϜ͕ϢʔβʔετʔϦʔʹऔΓֻ͔Δࡍɺςετͷ਽ܗΛ࡞ͬͨ
    ্ͰɺνʔϜʹ͍࣋ͬͯͬͯҰॹʹςετ࡞੒ͯ͠ΈΔ
    ʮ΍ͬͯΈͤɺݴͬͯฉ͔ͤͯɺ
    ͤͯ͞Έͤɺ΄Ίͯ΍ΒͶ͹ɺਓ
    ͸ಈ͔͡ʯCZࢁຊޒे࿡

    View full-size slide

  45. ࣮ࡍʹςετ͍ͨ͠ϝ
    ιουʢ͜͜Ͱ͸NFUIPEʣ
    ʹରͯ͠ɺνʔϜͱҰॹʹத਎
    Λॻ͍͍ͯ͘
    ํ਑ɿςετͷָ͠͞Λମײͯ͠΋Β͏
    ςετ͍ͨ͠ϩδοΫʹ
    ௚઀ؔΘΒͳ͍લॲཧͳͲ͸ɺ
    ༧Ί࡞੒͓ͯ͘͠ʢϋϚΔͱແବ
    ʹ༹͕͚࣌ؒͯɺϞνϕʔγϣ
    ϯ͕མͪΔͷͰʣ

    View full-size slide

  46. ํ਑ɿςετͷָ͠͞Λମײͯ͠΋Β͏
    • ςετ࣮ߦͷ؀ڥઃఆ


    • ઃఆϑΝΠϧͷ४උʢjest.con
    fi
    g.js ͳͲʣ


    • σʔλϕʔεΛ༻͍ͨςετΛิॿ͢Δؔ਺ʢ
    fi
    xtureʣͷ࡞੒


    • ςετॳճىಈ࣌ʹɺσʔλϕʔεͷ࡟আ / ࡞੒


    • ςετ͝ͱʹɺಠཱͨ͠σʔλͷ౤ೖ / ഁغ

    View full-size slide

  47. • σʔλϕʔεͷ࡞੒



    ํ਑ɿςετͷָ͠͞Λମײͯ͠΋Β͏
    • ςετσʔλͷ౤ೖ



    View full-size slide

  48. ํ਑ɿςετͷָ͠͞Λମײͯ͠΋Β͏
    • ϓϩμΫτίʔυ͸͍͡Βͳ͍


    • ϓϩμΫτίʔυΛ͍͡Δͱɺ৺ཧతʹड͚ೖΕͮΒ͍͔ͳͱ൑அ


    • ςετίʔυଆͰɺϞοΫͳͲΛۦ࢖ͯ͠ରԠ
    ϓϩμΫτίʔυΛςετ͠΍
    ͍͢ܗʹม͍͚͑ͯͨΒɺ΋͏
    ͪΐͬͱָͩͬͨΖ͏ͳ͋ʜ

    View full-size slide

  49. ;Γ͔͑ΓͰग़ͨײ૝

    View full-size slide

  50. Ξ΢τϥΠϯ
    • എܠ


    • ΍ͬͨ͜ͱ


    • ࣾ಺TDDBCʢTDD Boot Campʣ։࠵


    • Ϣχοτςετ؀ڥͷ੔උ


    • ΍ͬͨ݁Ռ


    • େࣄʹͨ͠ࢥ͍

    View full-size slide

  51. • ՝୊͕શͯղܾ͞ΕͨΘ͚Ͱ͸ͳ͍͕ɺ౔୆͕੔͖ͬͯͨ


    • ৽͘͠௥Ճɾमਖ਼͞ΕͨϓϩμΫτίʔυͰ͸ɺσʔλϕʔεؚΜ
    ͩ౷߹ςετϨΠϠͰͷςετ͕௥Ճ͞Ε͍͍ͯͬͯΔ


    • ϢχοτςετϨϕϧͰ͸ɺ·ͩςετ͕े෼Ͱ͸ͳ͍ͷͰɺςε
    τʢͱରʹͳΔϦϑΝΫλϦϯάʣΛਪ͠ਐΊ͍ͯ͘
    ݱঢ়

    View full-size slide

  52. • ՝୊͕શͯղܾ͞ΕͨΘ͚Ͱ͸ͳ͍͕ɺ౔୆͕੔͖ͬͯͨ
    ݱঢ়

    View full-size slide

  53. ;Γ͔͑ͬͯΈͯͷɺϝϯόʔͷײ૝
    • ཻ౓͕ૈ͍ςετ͔͠ͳ͔ͬͨͱ͜Ζ͕ɺཻ౓͕ࡉ͔͍ςετ΋ॻ͚Δ؀ڥ͕੔ͬ
    ͖ͯͯɺཧ૝ܥʹ͍͖ۙͮͯͨ


    • ςετέʔε͔Βߟ͑ΔͷΛ࣮ફ͖ͯͯ͠ɺ࢓༷Λߟ͑Δͷ্͕ख͘ͳ͖ͬͯͨײ
    ͕͢͡Δ


    • Ϣχοτςετͱ͍͏֓೦͕ਁಁ͍ͯ͠ͳ͍ਓ΋ଟ͔ͬͨதͰɺͦͷਓ΁ͷྑ͍ڭ
    ҭͷػձʹͳ͔ͬͨͳͱࢥ͏


    • ࠓճ͸ʮ0→1ʯͰͷςετ؀ڥ੔උͩͱࢥ͍ͬͯͯɺ·ͩ·ͩʮ1ʯͩͱࢥ͍ͬͯ
    Δɻ͔͜͜Βʮ1 to 10ʯͷಇ͖͔͚΋ॏཁʹͳͬͯ͘ΔͷͰɺͦΕΛਪਐ͍ͨ͠

    View full-size slide

  54. εΫϥϜϚελʔ͕ࢪࡦΛਪ͠ਐΊΔޭࡑ
    ΍Γ΍͍͢఺ ฐ֐
    ଞͷ໾ׂͱൺ΂ͯɺࣗ༝ʹಈ͖΍͍͢
    w։ൃऀͱൺ΂ͯɺશମΛݟͳ͕Βಈ͖΍͍͢
    wΞδϟΠϧίʔνͱൺ΂ͯɺதͷਓͱͯ͠ϑϧλΠϜͰ
    ࣌ؒΛ֬อͰ͖Δ
    ։ൃऀ͕ద੾ͳεΩϧΛֶΜͰ੒௕͍ͯ͘͠ػձΛɺ
    εΫϥϜϚελʔ͕ఠΈऔΔݒ೦͕͋Δ
    ʮ୹ظతʹɺ՝୊͕ղܾ͢Δଈޮੑʯ
    WT
    ʮத௕ظతͳɺνʔϜͷ੒௕ʯ

    View full-size slide

  55. εΫϥϜϚελʔ͕ࢪࡦΛਪ͠ਐΊΔޭࡑ
    • ࠓճ͸ɺࣗ෼Ͱਪ͠ਐΊΔ͜ͱΛબ୒


    • ໼ా͞Μͷ৘೤Λɺ୯ൃͷऔΓ૊ΈͰઈ΍ͨ͘͠ͳ͍


    • ͜ͷػձʹ͍͑΍ͰਐΊͨ΄͏͕ɺνʔϜʹͱͬͯޮՌ͕
    େ͖͍ͱ൑அ

    View full-size slide

  56. Ξ΢τϥΠϯ
    • എܠ


    • ΍ͬͨ͜ͱ


    • ࣾ಺TDDBCʢTDD Boot Campʣ։࠵


    • Ϣχοτςετ؀ڥͷ੔උ


    • ΍ͬͨ݁Ռ


    • େࣄʹͨ͠ࢥ͍

    View full-size slide

  57. தଜɿ৘೤Λ࣋ͬͨਓͷഎதΛԡ͍ͨ͠
    • େ੾ʹ͍ͯ͠ΔՁ஋؍ɿʮݱ৔Ͱಇ͘νʔϜͷ໾ʹཱ͍ͪͨʂʯ


    • Ձ஋؍ͷମݱํ๏ͷҰͭʹʮ৘೤Λ࣋ͬͨਓͷഎதΛԡ͢ʯ


    • ͍͟ͱ͍͏ͱ͖ʹద੾ʹഎதΛԡͤΔΑ͏ʹɺֶͼଓ͚ͯҾ͖ग़
    ͠Λ૿΍͓͖͍ͯͨ͠

    View full-size slide

  58. ໼ాɿ࠷ॳͷน͸৘೤Ͱյ͢
    • ͦΕͧΕ༏ઌॱҐ͕͋ΔͷͰৗʹϝϯόʔͷ߹ҙ͕ͱΕΔΘ͚Ͱ͸ͳ͍ɹɹɹ
    • ࣗ෼ʹྨكͳΔٕज़ྗ΍ਓΛಈ͔͢ܦݧ͕͋ͬͨ༁Ͱ͸ͳ͍


    • ͦΕͰ΋มԽ͸޿͕Δ͠ɺࣗ෼ͷؒҧ͍͕ٞ࿦ΛੜΜͰֶͼʹͳͬͨ͜
    ͱ΋͋ͬͨʢؒҧ͍≠ࣦഊʣɹ
    ٕज़΍ܦݧͰ͸ͳ͘ɺ৘೤Λ࣋ͬͯಥ͖ਐΉ
    ͜ͱ͕େࣄͩͱվΊͯײͨ͡
    ؒҧ͍͸ঢ়ଶ
    ࣦഊ͸݁Ռ

    View full-size slide




  59. ৽͍͠ΞΠσΞΛಋೖ͢ΔͨΊʹɺͦͷΞΠσΞ
    ʹ͔͚Δ৘೤Ͱɺ͋ͳͨࣗ਎Λಥ͖ಈ͔ͦ͏



    Fearless Change : 1. ΤόϯδΣϦετ
    59

    View full-size slide