$30 off During Our Annual Pro Sale. View Details »

組織にテストを書く文化を根付かせる戦略と戦術(2019夏版) / Strategy and Tactics of Building Automated Testing Culture into Organization 2019 Summer Edition

組織にテストを書く文化を根付かせる戦略と戦術(2019夏版) / Strategy and Tactics of Building Automated Testing Culture into Organization 2019 Summer Edition

デブサミ夏 【B-4】 2019/07/02 13:15 ~ 14:00
https://event.shoeisha.jp/devsumi/20190702/session/2077/

Takuto Wada
PRO

July 02, 2019
Tweet

More Decks by Takuto Wada

Other Decks in Programming

Transcript

  1. ૊৫ʹςετΛॻ͘
    จԽΛࠜ෇͔ͤΔ
    ઓུͱઓज़
    ࿨ా୎ਓ !U@XBEB

    ʢՆόʔδϣϯʣ

    View Slide

  2. " $
    ΑΖ͓͘͠ئ͍͠·͢
    "

    View Slide

  3. ઓུฤ
    ૊৫ʹςετΛॻ͘
    จԽΛࠜ෇͔ͤΔ

    View Slide

  4. ݱ৔͔ΒͷதܧͰ͢

    View Slide

  5. ർฐ͖ͬͨ͠ݱ৔

    View Slide

  6. IUUQTXXXqJDLSDPNQIPUPTPLJOBXBTPCB
    ߥΈ͖ͬͨίʔυ

    View Slide

  7. ര஄ॲཧͷΑ͏ͳϦϦʔε

    View Slide

  8. lςετ͕ͳ͍ίʔυ͸
    ϨΨγʔίʔυͩʂz

    View Slide

  9. ͭͷlͳΒΘ͠z

    View Slide

  10. IUUQTXXXqJDLSDPNQIPUPTELBMP
    lςετΛॻ࣌ؒ͘͸ͳ͍z

    View Slide

  11. ετϨε
    ςετ
    ॻ੶ʰςετۦಈ։ൃʱΑΓ

    View Slide

  12. ࣗಈςετ
    ετϨε
    ॻ੶ʰςετۦಈ։ൃʱΑΓ

    View Slide

  13. ςετΛॻ͕࣌ؒ͘ͳ͍ͷͰ
    ͸ͳ͘ɺςετΛॻ͔ͳ͍͔
    Β͕࣌ؒͳ͘ͳΔͷͰ͢ɻ

    View Slide

  14. lಈ͘ίʔυʹ৮ΕΔͳz
    IUUQTXXXqJDLSDPNQIPUPT!/

    View Slide

  15. &EJU1SBZʹ͸ࢮ͕଴͍ͬͯΔ

    View Slide

  16. $PWFS.PEJGZ

    View Slide

  17. w จԽͷৢ੒͸೥୯ҐͷࣄۀʹͳΔ
    w ʮςετΛॻ͕࣌ؒ͘ͳ͍ʯͷͰ͸
    ͳ͘ʮςετΛॻ͔ͳ͍͔Β͕࣌ؒ
    ͳ͘ͳΔʯ
    w ʮಈ͘ίʔυʹ৮ΕΔͳʯͱઓ͏ɻ
    ৮Εͳ͚Ε͹ڝ૪ྗ͕ऑ·Γɺࣄۀ
    ͸؇΍͔ʹࢮΜͰ͍͘
    จԽΛม͍͑ͯ͘

    View Slide

  18. w ϨΨγʔίʔυվળʹਖ਼ղ͸ͳ͍
    w ςετࣗಈԽ͸ۜͷ஄ؙͰ͸ͳ͍
    w ಋೖํ๏ʹ΋ۜͷ஄ؙ͸ͳ͍
    w ಋೖΛ໨తʹͯ͠͸ͳΒͳ͍
    w ঢ়گ͸ݱ৔ʹΑͬͯશͯҟͳΔ
    ۜͷ஄ؙ͸ແ͍

    View Slide

  19. w 5P#FͰ͸ͳ͘"T*Tͱ/PU5P#F͔Β͸͡ΊΔ
    w ྡͷࣳ͸੨͍ɻؾʹ͠ͳ͍͜ͱ
    w ਓ͸ࣗ෼ͷ଎౓Ͱ͔͠੒௕Ͱ͖ͳ͍
    w ϓϩδΣΫτ΋ϓϩδΣΫτͷ଎౓Ͱ͔͠੒௕
    Ͱ͖ͳ͍
    w ʮ·ΘΓ͸΋͏ΈΜͳ΍͍ͬͯ·͢Αʯ͸ܶༀ
    ͳͷͰ༻๏༻ྔΛकͬͯ࢖͏͜ͱ
    ΠϚίί͔Β࢝ΊΔ

    View Slide

  20. ཧ࿦෢૷͢Δ

    View Slide

  21. ෆ۩߹ͷൃݟ͕
    ஗ΕΕ͹஗ΕΔ΄Ͳ
    ίετ͕͔͔Δ
    IUUQTXXXBTURCPSHQSFTTSPPN*452#@$FSUJpDBUJPO@/FXT@@IUNM

    View Slide

  22. © Towersquest, Inc. 2010. all rights reserved.
    5%%ಋೖޮՌ .4 *#.

    !22
    IBM Driver MS
    Windows
    MS MSN MS Visual
    Studio
    ιʔείʔυαΠζ (KLOC)
    41 6 26 155.2
    ςετίʔυαΠζ (KLOC)
    28.5 4 23.2 60.3
    TDDΛ࠾༻͍ͯ͠ͳ͍ྨࣅϓϩ
    δΣΫτͰͷܽؕີ౓Λ̍ͱ͠
    ͨͱ͖ͷܽؕີ౓
    0.61 0.38 0.24 0.09
    TDD࠾༻ʹΑΓ૿Ճͨ͠ίʔυ
    ࣮૷࣌ؒ(؅ཧऀͷݟੵʹΑΔ) 15ʙ20% 25ʙ35% 15% 20ʙ25%
    N. Nagappan, M. E. Maximilien, T. Bhat and L. Williams: Realizing quality improvement through test driven development: results and
    experiences of four industrial teams, Journal of Empirical Software Engineering, vol. 13, pp. 289-302 (2008)

    View Slide

  23. © Towersquest, Inc. 2010. all rights reserved.
    5%%ಋೖޮՌ ΤϦΫιϯଞ

    w 5%%Λ࣮ࢪͨ͠৔߹ʹใࠂ͞Ε͍ͯΔ஌ݟ
    ‣ ػೳςετͰͷෆ۩߹ݕग़਺͕࡟ݮ͞Εͨ
    ‣ ίʔσΟϯά ࣮૷
    ͷ͕࣌ؒˋ૿͑ͨ
    ‣ ςετͷΧόϨοδ͕େ͖͘ͳͬͨ
    w ඃݧऀΛର৅ͱͨ͠Ξϯέʔτ
    ‣ ͷඃݧऀ͕σόοάͷ޻਺ΛݮΒ͢ͱײͨ͡
    ‣ ͷඃݧऀ͕ཁٻ͕ચ࿅͞ΕΔͱײͨ͡
    ‣ ͷඃݧऀ͕ίʔυͷ඼࣭Λ্͛Δͱײͨ͡
    ‣ ͷඃݧऀ͕։ൃ޻਺ΛݮΒ͢ͱײͨ͡
    !23
    Boby George, a and Laurie Williams: A structured experiment of test-driven development, Journal of Information and Software Technology Vol. 46, No. 5, p. 337-342(2004)

    View Slide

  24. IUUQTXXXqJDLSDPNQIPUPTUPNQBHFOFU
    ςετ͸඼࣭Λ্͛ͳ͍

    View Slide

  25. w ඼࣭͕ʮΘ͔ΔʯΑ͏ʹͳΔ
    w Θ͔Δ͜ͱͦ͜େࣄ
    w ςετΛॻ͚ͩ͘Ͱ͸ɺྑ͘͸ͳΒͳ͍
    w ମॏܭʹ৐Δ͚ͩͰ͸૫ͤͳ͍
    w ඼࣭Λ্͛Δͷ͸ઃܭͱϓϩάϥϛϯά
    w ࠶ઃܭͱϦϑΝΫλϦϯάΛςετͰࢧ͑Δ
    ςετ͸඼࣭Λ্͛ͳ͍

    View Slide

  26. lςετͰ͸඼࣭͸্͕Βͳ͍
    Ͱ͢Αɻςετ͸͋͘·Ͱ΋඼
    ࣭Λ͋͛Δ͖͔͚ͬɻ඼࣭Λ͋
    ͛Δͷ͸ϓϩάϥϛϯάͰ͢ɻ
    ͜Ε͸େੲ͔Βͦ͏ɻz

    View Slide

  27. ૊৫ʹςετΛॻ͘
    จԽΛࠜ෇͔ͤΔ
    ઓज़ฤ

    View Slide

  28. ͭͷlಓ͠Δ΂z

    View Slide

  29. w ʮϨΨγʔίʔυͷδϨϯϚʯ
    w lίʔυΛมߋ͢ΔͨΊʹ͸ςετΛ੔උ͢Δ
    ඞཁ͕͋Δɻଟ͘ͷ৔߹ɺςετΛ੔උ͢Δ
    ͨΊʹ͸ɺίʔυΛมߋ͢Δඞཁ͕͋Δz
    w ϨΨγʔίʔυʹ৮ΔͨΊͷ

    ޠኮͱٕ๏Λ੔ཧͨ͠ຊ
    w TUBDLPWFSqPXDPN͔Βͷ

    ඃݴٴ਺ୈҐ
    ϨΨγʔίʔυվળΨΠυ

    View Slide

  30. w ϨΨγʔίʔυվળΨΠυΑΓ΍΍ந৅౓͕ߴ͍
    w ιϑτ΢ΣΞͷϦΤϯδχΞϦϯάΛߦ͏ͭͷબ
    ୒ࢶΛ͍ࣔͯ͠Δ
    w ϦϑΝΫλϦϯά
    w ϦΞʔΩςΫςΟϯά
    w ϏοάɾϦϥΠτ
    ϨΨγʔιϑτ΢ΣΞվળΨΠυ

    View Slide

  31. Ͳ͜ʹςετΛ
    ॻ͍͍͔ͯ͘

    View Slide

  32. w ʮԿ͕Ұ൪΍͹͍Ͱ͔͢ʁʯ
    w ࠷΋ࠔ͍ͬͯΔͱ͜Ζ͔Β
    w ͓ۚɺݸਓ৘ใɺʜʜ
    w ৽ػೳ։ൃ͔Β
    w όάमਖ਼ͷͱ͜Ζ͔Β
    w ੩తղੳͰϐϯϙΠϯτʹ
    Ͳ͔͜Β΍Δ͔

    View Slide

  33. ʮ௧ΜͩՕॴʯͱʮख͕ಧ͘Ռ࣮ʯ

    View Slide

  34. w ϦεΫ
    w खಈςετͷίετ
    w ࣗಈԽίετ
    ςετͷτϦΞʔδ

    View Slide

  35. ςετέʔεΛҰཡʹ·ͱΊΔ
    ςετέʔε
    σβΠϯมߋ
    ηΩϡϦςΟΞϥʔτ
    औҾཤྺ
    ޱ࠲ͷౚ݁
    ৽نϢʔβొ࿥
    ݕࡧ݁Ռͷฒͼସ͑
    ͓ۚͷೖۚ
    ৼΓࠐΈͷ֬ೝ

    View Slide

  36. ϦεΫΛݟੵ΋Δ
    ςετέʔε ϦεΫ
    σβΠϯมߋ
    ηΩϡϦςΟΞϥʔτ
    औҾཤྺ
    ޱ࠲ͷౚ݁
    ৽نϢʔβొ࿥
    ݕࡧ݁Ռͷฒͼସ͑
    ͓ۚͷೖۚ
    ৼΓࠐΈͷ֬ೝ

    View Slide

  37. खಈςετͷίετΛݟੵ΋Δ
    ςετέʔε ϦεΫ
    खಈςετͷ
    ίετ
    σβΠϯมߋ
    ηΩϡϦςΟΞϥʔτ
    औҾཤྺ
    ޱ࠲ͷౚ݁
    ৽نϢʔβొ࿥
    ݕࡧ݁Ռͷฒͼସ͑
    ͓ۚͷೖۚ
    ৼΓࠐΈͷ֬ೝ

    View Slide

  38. ࣗಈԽίετΛݟੵ΋Δ
    ςετέʔε ϦεΫ
    खಈςετͷ
    ίετ
    ࣗಈԽίετ
    σβΠϯมߋ
    ηΩϡϦςΟΞϥʔτ
    औҾཤྺ
    ޱ࠲ͷౚ݁
    ৽نϢʔβొ࿥
    ݕࡧ݁Ռͷฒͼସ͑
    ͓ۚͷೖۚ
    ৼΓࠐΈͷ֬ೝ

    View Slide

  39. ༏ઌॱҐΛ෇͚ͯฒ΂ସ͑Δ
    ςετέʔε ϦεΫ
    खಈςετͷ
    ίετ
    ࣗಈԽίετ
    ޱ࠲ͷౚ݁
    ৼΓࠐΈͷ֬ೝ
    औҾཤྺ
    ݕࡧ݁Ռͷฒͼସ͑
    ͓ۚͷೖۚ
    ηΩϡϦςΟΞϥʔτ
    ৽نϢʔβొ࿥
    σβΠϯมߋ

    View Slide

  40. Ͳ͏ςετΛ
    ॻ͍͍͔ͯ͘

    View Slide

  41. w ઀߹෦ͷݕ౼ͱۛຯ
    w ߜΓࠐΈ఺ͷൃݟͱґଘͷ෼཭
    w ࠶ݱੑ͋Δςετϋʔωεͷ੔උ
    w ௒ूதฤू )ZQFSBXBSF&EJUJOH

    w ίϯύΠϥ*%&·͔ͤ
    w ࢓༷Խςετ
    w ࢼߦϦϑΝΫλϦϯά
    ϨΨγʔίʔυվળͷٕ๏

    View Slide

  42. w ࠷ॳ͔Βશ෦΍Ζ͏ͱ͠ͳ͍
    w ςετۦಈʹͩ͜ΘΔͳ
    w ςετϑΝʔετʹͩ͜ΘΔͳ
    w ʮϢχοτʯςετʹͩ͜ΘΔͳ
    w ςετͷ࣮ߦ଎౓ʹͩ͜ΘΔͳ
    w ςετͷ໢ཏੑʹͩ͜ΘΔͳ
    ͩ͜ΘΔͳ

    View Slide

  43. w ྑ͍Ϣχοτςετͷࢦඪʹ΋༏ઌ
    ౓͕͋Δ
    w ࠶ݱɺ܁Γฦ͠Մೳ 3FQFBUBCMF

    w ಠཱ͍ͯ͠Δ *OEFQFOEFOU

    w ଞ͸ͦΕ͔ΒͰ͍͍
    ͩ͜ΘΖ͏

    View Slide

  44. w ςετ͕ͳ͍ͷ͸طʹઃܭ͕ѱ͍ஹީ
    w ઃܭ࣮૷Λม͑Δͷ͕લఏ
    w ࣮૷ͷςετΛॻ͔ͳ͍͜ͱ
    w ςετ͕Χόʔ͢Δൣғʹ༡ͼΛ࣋ͨ
    ͤɺΧόʔൣғ಺ΛϦϑΝΫλϦϯά
    w ঢ়گʹԠͯ͡&&ςετΛ࢖͍͜ͳ͢
    ઃܭͷՄಈҬΛ֬อ͢Δ

    View Slide

  45. ςετࣗಈԽϐϥϛουͱΞϯνύλʔϯ
    IUUQTXBUJSNFMPOCMPHJOUSPEVDJOHUIFTPGUXBSFUFTUJOHJDFDSFBNDPOF

    View Slide

  46. l5FTU4J[FTzBU(PPHMF
    IUUQTUFTUJOHHPPHMFCMPHDPNUFTUTJ[FTIUNM

    View Slide

  47. medium
    small
    large
    ࣗ෼ͨͪͰ4.-Λఆٛ͠ɺௐ੔͢Δ

    View Slide

  48. w αϯϓϧͱσϞ͕େࣄ
    w ਅࣅͯ͠΋Β͏౔୆Λ࡞Δ
    w ࠷ॳ͸αϯϓϧͷίϐϖͰ΋ྑ͍
    w ςετͷ͋Δੜ׆Λମݧͯ͠΋Β͏
    ͜ͱ͕େࣄ
    w ࣍ʹςετͷϝϯςφϯεΛֶͿ
    എதΛݟͤΔ

    View Slide

  49. w Ͱ͖Δ͔Β΍ΔͷͰ͸ͳ͍
    w ΍Δ͔ΒͰ͖ΔΑ͏ʹͳΔ
    w ࣗ෼͕ॻ͚ΔΑ͏ʹͳΒͳ͚Ε͹ɺ
    ୭΋ॻ͚ΔΑ͏ʹ͸ͳΒͳ͍
    4PDJBM$IBOHFTUBSUTXJUI:06

    View Slide

  50. 4PDJBM$IBOHFTUBSUTXJUI:06

    View Slide

  51. ςετ͸ϓϩͷᅂΈ
    ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠

    View Slide