組織にテストを書く文化を根付かせる戦略と戦術(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/

9f3a83db74bee75a64b5e6ed106a775c?s=128

Takuto Wada

July 02, 2019
Tweet

Transcript

  1. ૊৫ʹςετΛॻ͘ จԽΛࠜ෇͔ͤΔ ઓུͱઓज़ ࿨ా୎ਓ !U@XBEB ʢՆόʔδϣϯʣ

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

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

  4. ݱ৔͔ΒͷதܧͰ͢

  5. ർฐ͖ͬͨ͠ݱ৔

  6. IUUQTXXXqJDLSDPNQIPUPTPLJOBXBTPCB ߥΈ͖ͬͨίʔυ

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

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

  9. ͭͷlͳΒΘ͠z

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

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

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

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

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

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

  16. $PWFS.PEJGZ

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

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

    ۜͷ஄ؙ͸ແ͍
  19. w 5P#FͰ͸ͳ͘"T*Tͱ/PU5P#F͔Β͸͡ΊΔ w ྡͷࣳ͸੨͍ɻؾʹ͠ͳ͍͜ͱ w ਓ͸ࣗ෼ͷ଎౓Ͱ͔͠੒௕Ͱ͖ͳ͍ w ϓϩδΣΫτ΋ϓϩδΣΫτͷ଎౓Ͱ͔͠੒௕ Ͱ͖ͳ͍ w

    ʮ·ΘΓ͸΋͏ΈΜͳ΍͍ͬͯ·͢Αʯ͸ܶༀ ͳͷͰ༻๏༻ྔΛकͬͯ࢖͏͜ͱ ΠϚίί͔Β࢝ΊΔ
  20. ཧ࿦෢૷͢Δ

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

  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)
  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)
  24. IUUQTXXXqJDLSDPNQIPUPTUPNQBHFOFU ςετ͸඼࣭Λ্͛ͳ͍

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

    w ࠶ઃܭͱϦϑΝΫλϦϯάΛςετͰࢧ͑Δ ςετ͸඼࣭Λ্͛ͳ͍
  26. lςετͰ͸඼࣭͸্͕Βͳ͍ Ͱ͢Αɻςετ͸͋͘·Ͱ΋඼ ࣭Λ͋͛Δ͖͔͚ͬɻ඼࣭Λ͋ ͛Δͷ͸ϓϩάϥϛϯάͰ͢ɻ ͜Ε͸େੲ͔Βͦ͏ɻz

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

  28. ͭͷlಓ͠Δ΂z

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

    TUBDLPWFSqPXDPN͔Βͷ
 ඃݴٴ਺ୈҐ ϨΨγʔίʔυվળΨΠυ
  30. w ϨΨγʔίʔυվળΨΠυΑΓ΍΍ந৅౓͕ߴ͍ w ιϑτ΢ΣΞͷϦΤϯδχΞϦϯάΛߦ͏ͭͷબ ୒ࢶΛ͍ࣔͯ͠Δ w ϦϑΝΫλϦϯά w ϦΞʔΩςΫςΟϯά w

    ϏοάɾϦϥΠτ ϨΨγʔιϑτ΢ΣΞվળΨΠυ
  31. Ͳ͜ʹςετΛ ॻ͍͍͔ͯ͘

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

    w ੩తղੳͰϐϯϙΠϯτʹ Ͳ͔͜Β΍Δ͔
  33. ʮ௧ΜͩՕॴʯͱʮख͕ಧ͘Ռ࣮ʯ

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

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

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

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

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

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

    ͓ۚͷೖۚ ηΩϡϦςΟΞϥʔτ ৽نϢʔβొ࿥ σβΠϯมߋ
  40. Ͳ͏ςετΛ ॻ͍͍͔ͯ͘

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

    w ίϯύΠϥ*%&·͔ͤ w ࢓༷Խςετ w ࢼߦϦϑΝΫλϦϯά ϨΨγʔίʔυվળͷٕ๏
  42. w ࠷ॳ͔Βશ෦΍Ζ͏ͱ͠ͳ͍ w ςετۦಈʹͩ͜ΘΔͳ w ςετϑΝʔετʹͩ͜ΘΔͳ w ʮϢχοτʯςετʹͩ͜ΘΔͳ w ςετͷ࣮ߦ଎౓ʹͩ͜ΘΔͳ

    w ςετͷ໢ཏੑʹͩ͜ΘΔͳ ͩ͜ΘΔͳ
  43. w ྑ͍Ϣχοτςετͷࢦඪʹ΋༏ઌ ౓͕͋Δ w ࠶ݱɺ܁Γฦ͠Մೳ 3FQFBUBCMF  w ಠཱ͍ͯ͠Δ *OEFQFOEFOU

     w ଞ͸ͦΕ͔ΒͰ͍͍ ͩ͜ΘΖ͏
  44. w ςετ͕ͳ͍ͷ͸طʹઃܭ͕ѱ͍ஹީ w ઃܭ࣮૷Λม͑Δͷ͕લఏ w ࣮૷ͷςετΛॻ͔ͳ͍͜ͱ w ςετ͕Χόʔ͢Δൣғʹ༡ͼΛ࣋ͨ ͤɺΧόʔൣғ಺ΛϦϑΝΫλϦϯά w

    ঢ়گʹԠͯ͡&&ςετΛ࢖͍͜ͳ͢ ઃܭͷՄಈҬΛ֬อ͢Δ
  45. ςετࣗಈԽϐϥϛουͱΞϯνύλʔϯ IUUQTXBUJSNFMPOCMPHJOUSPEVDJOHUIFTPGUXBSFUFTUJOHJDFDSFBNDPOF

  46. l5FTU4J[FTzBU(PPHMF IUUQTUFTUJOHHPPHMFCMPHDPNUFTUTJ[FTIUNM

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

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

    ࣍ʹςετͷϝϯςφϯεΛֶͿ എதΛݟͤΔ
  49. w Ͱ͖Δ͔Β΍ΔͷͰ͸ͳ͍ w ΍Δ͔ΒͰ͖ΔΑ͏ʹͳΔ w ࣗ෼͕ॻ͚ΔΑ͏ʹͳΒͳ͚Ε͹ɺ ୭΋ॻ͚ΔΑ͏ʹ͸ͳΒͳ͍ 4PDJBM$IBOHFTUBSUTXJUI:06

  50. 4PDJBM$IBOHFTUBSUTXJUI:06

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