テスト駆動開発の過去・現在・未来 / History of TDD - XPJUG 2018 Keynote

9f3a83db74bee75a64b5e6ed106a775c?s=47 Takuto Wada
September 08, 2018

テスト駆動開発の過去・現在・未来 / History of TDD - XPJUG 2018 Keynote

テスト駆動開発の過去・現在・未来
XP祭り2018 基調講演
2018/09/08
http://xpjug.com/xp2018-session-keynote/

9f3a83db74bee75a64b5e6ed106a775c?s=128

Takuto Wada

September 08, 2018
Tweet

Transcript

  1. ςετۦಈ։ൃ ςετۦಈ։ൃ աڈɾݱࡏɾະདྷ ͷ ࿨ా୎ਓ 4FQ !91ࡇΓجௐߨԋ

  2. ࿨ా୎ਓ UXBEB U@XBEB UXBEB

  3. ؂मɺ؂༁ɺ຋༁ͨ͠ຊͨͪ

  4. 最近の立ち位置 ελϯυ໊ϫΠϧυɾαόϯφ

  5. assert(typeof item.id === 'strong') | | | | | |

    | false | | "foo" | Item{id:"foo",name:"bar"} "string" --- [string] 'strong' +++ [string] typeof item.id @@ -1,6 +1,6 @@ str -o +i ng 代表作は power-assert IUUQTHJUIVCDPNQPXFSBTTFSUKTQPXFSBTTFSU
  6. ΑΖ͓͘͠ئ͍͠·͢

  7. IUUQTUXJUUFSDPNYQKVHTUBUVT

  8. ʰ5FTU%SJWFO%FWFMPQNFOU#Z&YBNQMFʱͷग़൛ ͔Β೥͕ܦͪɺͦͷؒʹ͸͞·͟·ͳ͜ͱ͕͋Γ· ͨ͠ɻ ςετۦಈ։ൃ΁ͷա৒ͳظ଴ɺޡղɺۂղ΍ɺ݈શ ͳൃలɺΞδϟΠϧϓϩηεԽ΁ͷ໺৺ɺڭ৚ओٛԽɺ ҙຯͷرബԽͳͲͰ͢ɻ ຊߨԋͰ͸ॻ੶ʰςετۦಈ։ൃʱͷʮ෇࿥$ʯΛഎܠ ʹͯ͠ɺςετۦಈ։ൃͷྺ࢙Λ၆ᛌ͠ɺϓϩάϥϛ ϯάٕज़ͱͯ͠ͷςετۦಈ։ൃͷݱ୅తͳҐஔΛ࠶ ֬ೝ͠·͢ɻ

  9. Kent Beck IUUQTXXXBNB[PODPKQEQ

  10. → 2003 2017 ઈ൛ͱ৽༁ʹΑΔ෮ץ

  11. None
  12. 2007 2008 2009 2010 2002 2003 2004 2005 2006 2011

    2012 2013 2014 ෇࿥$ͷλΠϜϥΠϯ࡭ͱਓ
  13. େաڈ 5%%ͷ஀ੜ·Ͱ

  14. 2007 2008 2009 2010 2002 2003 2004 2005 2006 2011

    2012 2013 2014 ෇࿥$ͷλΠϜϥΠϯ5%%CZ&YBNQMF΁ͷಓͷΓ
  15. 5%%͕ੜ·ΕΔ·Ͱ ,FOU#FDL 8BSE$VOOJOHIBN 3PO+F⒎SJFT &SJDI(BNNB

  16.  $ISJTUPQIFS(MBFTFSʹӨڹΛड͚Δ 8Z$BTI 46OJU։ൃ $8JLJɺΦϯϥΠϯͰٞ࿦࢝·Δ $1SPKFDUɺʰ4#11ʱग़൛ 0014-"΁ͷػ಺ϖΞϓϩͰ+6OJU஀ੜ +6OJU ʰ91&TUʱʰ3FGBDUPSJOHʱग़൛
 ʮ+6OJU"$PPLT5PVSʯ

    +6OJUαΠτެ։ɺʮ5FTU*OGFDUFEʯ ࣥච࣌ʹ5FTU'JSTU1SPHSBNNJOH͔Β
 5FTU%SJWFO%FWFMPQNFOU΁ 5%%͕ੜ·ΕΔ·Ͱ
  17. DXJLJ͸͡·Γͷ஍ IUUQXJLJDDPN &YUSFNF1SPHSBNNJOH

  18. *O XIJMFMJWJOHJO;VSJDIXJUINZGBNJMZ *DBVHIUVQXJUI&SJDI (BNNB BGSJFOE*NFUXPSLJOHPOTPGUXBSFQBUUFSOT 8FIBQQFOFEUPCFqZJOHUPHFUIFSHPJOHUP"UMBOUBUP0014-" UIF CJHPCKFDUPSJFOUFEQSPHSBNNJOHDPOGFSFODF*XBOUFEUPMFBSO+BWB )FXBOUFEUPTFFUIJTGSBNFXPSL*ECFFOUBMLJOHBCPVU 8IBUDPVMECFNPSFOBUVSBMUPBDPVQMFPGHFFLTJODSBNQFE

    RVBSUFSTUIBOUPQVMMPVUBMBQUPQBOETUBSUDPEJOH  5ISFFIPVSTMBUFS XFIBEUIFCBTJDTPG+6OJUEPOF BOE*IBE MFBSOFEUIFCBTJDTPG+BWB ػ಺ϖΞϓϩͰ+6OJU஀ੜ IUUQTIPQPSFJMMZDPNQSPEVDUEP
  19. աڈ 5%%ͷ஀ੜޙ ͔Βݱࡏ·Ͱ

  20. 2007 2008 2009 2010 2002 2003 2004 2005 2006 2011

    2012 2013 2014 ෇࿥$ͷλΠϜϥΠϯY651
  21. ʰY6OJU5FTU1BUUFSOTʱʹΑΔ Ϣχοτςετपลͷޠኮͷ੔ཧ

  22. +#3BJOTCFSHFS (FSBSE.FT[BSPT .BSUJO'PXMFS ςετίʔυͷޠኮͷ੔ཧʹؔΘΔ5JNFMJOF

  23. ʮ"1BUUFSO-BOHVBHFGPS1BUUFSO8SJUJOHʯ ʮ*NQSPWJOHUIF&⒎FDUJWFOFTTPG"VUPNBUFE5FTUTʯ ʮ"HJMF3FHSFTTJPO5FTUJOH6TJOH
 3FDPSEBOE1MBZCBDLʯ ʮ.PDLTBSFOUTUVCTʯCZ.BSUJO'PXMFS 
 ʰ+6OJU3FDJQFTʱCZ+#3BJOTCFSHFS ʮ.PDLT 'BLFT 4UVCTBOE%VNNJFTʯ

    ʰY6OJU5FTU1BUUFSOTʱग़൛ ςετίʔυͷޠኮͷ੔ཧʹؔΘΔ5JNFMJOF
  24. "1BUUFSO-BOHVBHFGPS1BUUFSO8SJUJOH IUUQTIJMMTJEFOFUJOEFYQIQBQBUUFSOMBOHVBHFGPSQBUUFSOXSJUJOH (FSBSE.FT[BSPT͕ͳͥϖʔδʹഭΔେஶY651Λ1BUUFSOͱ 1BUUFSO-BOHVBHFͱͯ͠ߏ଄ԽͰ͖ͨͷ͔Λ૎Δͱɺ͜͜ʹͨͲΓண͘

  25. IUUQTXXXBNB[PODPKQEQ ʰ+6OJU3FDJQFT1SBDUJDBM.FUIPETGPS1SPHSBNNFS5FTUJOHʱग़൛ +6OJUͷ׆༻ʹ͍ͭͯ໢ཏతʹ·ͱΊͨେஶ

  26. ʮ.PDLTBSO`U4UVCTʯ ॳ൛͕೥ɻ Y651ग़൛ޙ  ʹվగ͞ΕΔ

  27. IUUQTXXXBNB[PODPKQY6OJU5FTU1BUUFSOT3FGBDUPSJOH"EEJTPO8FTMFZEQ ʰY6OJU5FTU1BUUFSOT3FGBDUPSJOH5FTU$PEFʱग़൛ ˞lY651zͱ
 ུ͞ΕΔ

  28. Y651ύλϯϥϯήʔδͱͯ͠ͷςετ

  29. ʰY6OJU5FTU1BUUFSOTʱΑΓ ςετͷϝϯςφϯείετ ཧ૝ ݱ࣮ Y651ςετίʔυ΋ϝϯςφϯεର৅ͱ͍͏ݱ࣮Λ௚ࢹ

  30. Y6515FTU%PVCMFͷఆٛͱ෼ྨ

  31. Y6515FTU%PVCMFͷఆٛͱ෼ྨ

  32. Y651༻ޠͷ੔ཧʹΑΔࠞཚͷऩଋ

  33. Y651͸ɺςετࣗಈԽͷΰʔϧ΍໨తΛ໌֬Խ͠ɺ ʮςετίʔυͷෆ٢ͳष͍ʢ5FTU4NFMMʣʯΛϦε τΞοϓ͠ɺόϥόϥͩͬͨϢχοτςετͷޠኮΛ ఆٛ͠·ͨ͠ɻ ͳ͔Ͱ΋ɺಛʹޠኮͷࠞཚ͕ݦஶͩͬͨϞοΫΦϒ δΣΫτपΓͷޠኮΛఆٛ͠ɺࠞཚΛऩଋʹ޲͔Θͤ ͨͷ͸Y651ͷେ͖ͳޭ੷ͩͬͨͱݴ͑ΔͰ͠ΐ͏ɻ ᴷ࿨ా୎ਓ ʰςετۦಈ։ൃʱʮ෇࿥$ʯ

  34. 2007 2008 2009 2010 2002 2003 2004 2005 2006 2011

    2012 2013 2014 ෇࿥$ͷλΠϜϥΠϯ(004
  35. ϩϯυϯൃͷ ςετۦಈ։ൃͷ৽͍͠ைྲྀͱ ʰ(SPXJOH0CKFDU0SJFOUFE 4PGUXBSF (VJEFECZ5FTUTʱ

  36. ϩϯυϯֶ೿ -POEPO4DIPPM ͷຄڵ

  37. /BU1SZDF 4UFWF'SFFNBO .BSUJO'PXMFS 5JN.BDLJOOPO l-POEPO4DIPPMzؔ܎ͷ5JNFMJOF ˞શһ5IPVHIU8PSLT

  38. l-POEPO4DIPPMzؔ܎ͷ5JNFMJOF l5FTUJOHXJUI/P(FUUFSTz!$POOFYUSB ʮ&OEP5FTUJOH6OJU5FTUJOHXJUI.PDL0CKFDUTʯ ʮ4UBUFWT*OUFSBDUJPO5FTUJOHʯ
 CZ.BSUJO'PXMFS ʮ.PDL3PMFT OPU0CKFDUTʯ
 ʮ.PDLTBSFOUTUVCTʯCZ.BSUJO'PXMFS ʮ&WPMWJOHBO&NCFEEFE%PNBJO4QFDJpD
 -BOHVBHFJO+BWBʯɺK.PDLϦϦʔε

    ʰ(SPXJOH0CKFDU0SJFOUFE4PGUXBSF (VJEFE
 CZ5FTUTʱग़൛
  39. l.PDLzͷ஀ੜ

  40. public void testUpdateEmployee() throws SQLException { MockStatement nameStatement = new

    MockStatement(); MockStatement detailsStatement = new MockStatement(); MockConnection connection = new MockConnection(); nameStatement.setExpectedUpdate(NAME_SQL); detailsStatement.setExpectedUpdate(DETAILS_SQL); connection.setExpectedCommitCalls(1); myEmployee.updateNameAndDetails(connection, nameStatement, detailsStatement); connection.verify(); nameStatement.verify(); detailsStatement.verify(); } l.PDLzͷ஀ੜ
  41. ෼཭ͱΠϯλϥΫγϣϯΛΑΓҙࣝͨ͠ઃܭ΁ͱಋ͔ΕΔ

  42. ෼཭ͱΠϯλϥΫγϣϯΛΑΓҙࣝͨ͠ઃܭ΁ͱಋ͔ΕΔ

  43. ෼཭ͱΠϯλϥΫγϣϯΛΑΓҙࣝͨ͠ઃܭ΁ͱಋ͔ΕΔ

  44. ʰ(SPXJOH0CKFDU0SJFOUFE4PGUXBSF (VJEFECZ5FTUTʱग़൛ ˞l(004zͱݺ͹Εɺ
 5%%ͷ࡭໨ͷόΠϒϧͱͳΔ

  45. *OTJEF0VU͔Β0VUTJEF*O΁ ࣌ؒͷྲྀΕ ࣌ؒͷྲྀΕ *OTJEF0VU 0VUTJEF*O

  46. μϒϧϧʔϓͷߏங

  47. ಉ৺ԁঢ়ͷΞʔΩςΫνϟͷ໛ࡧ ಉ৺ԁঢ়ͷΞʔΩςΫνϟͷ໛ࡧ͸͜ͷͱ͖ طʹ"MJTUBJS$PDLCVSO΍-POEPO4DIPPM ͷ໘ʑʹΑͬͯ࢝·͍ͬͯͨ

  48. ౰࣌ɺ·ͩະ։ൃͰະ஌ͷ෦෼ʹґଘͨ͠··Ͱ"5%%Λ ࣮ફ͢Δʹ͸ٕज़తͳ೉͕͋ͬͨ͠͞ͷͰ͕͢ɺ(004͸ ϞοΫΦϒδΣΫτͷ׆༻Ͱͦ͜ʹಥഁޱΛݟ͍ͩͨ͠ܗ ʹͳΓ·ͨ͠ɻ (004͸5FTU%SJWFO%FWFMPQNFOUCZ&YBNQMFΑΓ ΋આ໌ͷεέʔϧΛ޿͛ɺ࣮ࡍͷΞϓϦέʔγϣϯ։ൃʹ ͓͍ͯ΋ςετۦಈ։ൃͷख๏͸༗ޮͰ͋Δ͜ͱΛࣔ͠ɺ ޙͷ#%%ʹͭͳ͕ΔྲྀΕΛܗ࡞Γ·ͨ͠ɻ ᴷ࿨ా୎ਓ ʰςετۦಈ։ൃʱʮ෇࿥$ʯ

  49. 5%%ͷ5͸ ʮςετʯͳͷͩΖ͏͔

  50. ʮಈ࡞͢Δ͖Ε͍ͳίʔυʯɻ3PO+F⒎SJFT ͷ͜ͷ؆ܿͳݴ༿͕ɺςετۦಈ։ൃʢ5%%ʣ ͷΰʔϧͩɻಈ࡞͢Δ͖Ε͍ͳίʔυ͸͋Β ΏΔҙຯͰՁ஋͕͋Δɻ ᴷ,FOU#FDL ʰςετۦಈ։ൃʱ·͕͖͑

  51. ςετͱ͸ɼΤϥʔΛΈͭ ͚Δͭ΋ΓͰϓϩάϥϜΛ ࣮ߦ͢ΔաఔͰ͋Δɻ ᴷ(MFOGPSE+.ZFST ʰιϑτ΢ΣΞɾςετͷٕ๏ʱQ

  52. ςετۦಈ։ൃͷςετ͸ɺιϑτ΢ΣΞςετͷੈքͷʮςετʯ ͷதͰ͸Ұ෦Λ઎ΊΔ͚ͩʹա͗·ͤΜɻʹ΋͔͔ΘΒͣɺςετ ۦಈ։ൃΛաେධՁ͢Δਓ΍ɺ໊લ͔Βड͚ΔΠϝʔδΛͦͷ·· ड͚औͬͯ͠·͏ਓͳͲ͔Βʮςετۦಈ։ൃΛߦ͏͔Βόά͸θ ϩʹͳΔʯʮςετۦಈ։ൃΛߦ͏͔ΒςετΤϯδχΞ͸ෆཁʯ ͱ͍ͬͨޡͬͨҙݟ͕ฉ͔ΕΔΑ͏ʹͳ͖ͬͯ·ͨ͠ɻ ςετۦಈ։ൃͷςετ͸ɺຊ౰ʹςετͩΖ͏͔ɻςετͰ͸ͳ ͍ͱͨ͠ΒɺͦΕ͸ԿͩΖ͏͔ɻͱ͍͏໰͍͕ݱ࣮ͷ໰୊ͱͯ͠ݱ Ε͖ͯ·ͨ͠ɻ ᴷ࿨ా୎ਓ

    ʰςετۦಈ։ൃʱʮ෇࿥$ʯ
  53. 2007 2008 2009 2010 2002 2003 2004 2005 2006 2011

    2012 2013 2014 ෇࿥$ͷλΠϜϥΠϯ"HJMF5FTUJOH
  54. 5%%ͷ5͸ ʮςετʯͷҰ෦ʹ ա͗ͳ͍ "HJMF5FTUJOH

  55. -JTB$SJTQJO +BOFU(SFHPSZ #SJBO.BSJDL &MJTBCFUI)FOESJDLTPO .JLF$PIO .JDIBFM#PMUPO +BNFT#BDI "HJMF5FTUJOH5JNFMJOF

  56. "HJMF5FTUJOH5JNFMJOF ʰ5FTUJOHF9USFNF1SPHSBNNJOHʱ 5FTU.BUSJYBOElDIFDLFEFYBNQMFTz
 CZ#SJBO.BSJDL l"VUPNBUFE5FTU1ZSBNJEzCZ.JLF$PIO l5FTUJOHJOBHJMFUFBNJTBOBDUJWJUZ OPUBQIBTFz
 CZ&MJTBCFUI)FOESJDLTPO ʰ"HJMF5FTUJOHʱग़൛ l5FTUJOHWT$IFDLJOHz


    CZ.JDIBFM#PMUPOBOE+BNFT#BDI
  57. 5FTUJOHF9USFNF1SPHSBNNJOH

  58. IUUQXXXFYBNQMFSDPNPMECMPHIUNMBHJMFUFTUJOHQSPKFDU #SJBO.BSJDLʹΑΔ৅ݶϞσϧ ಉ࣌ظʹʮUFTU͡Όͳͯ͘DIFDLFEFYBNQMFͱݺ΅͏ʯ
 ͱ΋ݴ͍ͬͯΔɻ#SJBO.BSJDL͸ੌ͍ɻ

  59. l"VUPNBUFE5FTU1ZSBNJEzCZ.JLF$PIO

  60. ݱࡏςετࣗಈԽϐϥϛουͱΞΠεΫϦʔϜίʔϯΞϯνύλʔϯ IUUQTXBUJSNFMPOCMPHJOUSPEVDJOHUIFTPGUXBSFUFTUJOHJDFDSFBNDPOF

  61. ʰ"HJMF5FTUJOHʱग़൛

  62. #SJBO.BSJDLͷϞσϧΛʮΞδϟΠϧςετͷ৅ݶʯͱͯ͠࠾༻ IUUQTMJTBDSJTQJODPNVTJOHUIFBHJMFUFTUJOHRVBESBOUT

  63. IUUQXXXEFWFMPQTFOTFDPNCMPHUFTUJOHWTDIFDLJOH ʮ5FTUJOHWT$IFDLJOHʯCZ.JDIBFM#PMUPOBOE+BNFT#BDI

  64. 5%%ʹ͓͚Δςετͷߟ͑ํ͸࣮༻ओٛʹ ؏͔Ε͍ͯΔɻ5%%ʹ͓͍ͯςετ͸໨త Λୡ੒͢ΔͨΊͷखஈͰ͋Γɺͦͷ໨తͱ ͸ɺେ͍ͳΔࣗ৴Λ൐͏ίʔυͩɻ ͨͱ͑ςετແ͠Ͱ΋࣮૷ͷ஌ࣝʹΑΔࣗ৴ ͕͋ΔͷͰ͋Ε͹ɺςετΛॻ͔ͳ͍ɻ ᴷ,FOU#FDL ʰςετۦಈ։ൃʱQ

  65. 5%%ͷ5͸ʮςετʯͷҰ෦ʹա͗ͳ͍ ʰςετۦಈ։ൃʱʮ෇࿥$ʯQΑΓ

  66. ͏·͘੔ཧ͞ΕͨΞδϟΠϧςετͷ৅ݶϞσϧ ͸ɺʮςετͱ͸ɺΤϥʔΛΈ͚ͭΔͭ΋ΓͰϓϩ άϥϜΛ࣮ߦ͢ΔաఔͰ͋Δʯͱ͍͏఻౷తͳఆ ٛʹΑΔʮςετʯ΋ɺ5%%Ҏ߱ͷ։ൃݱ৔ʹ ͓͚Δʮςετʯ΋ɺڞʹ޿ൣͳιϑτ΢ΣΞςε τͷੈքΛߏ੒͢ΔҰһͰ͋Δɺͱ͍͏৽ͨͳೝ ͕ࣝ޿·Δ͖͔͚ͬʹͳΓ·͢ɻ ᴷ࿨ా୎ਓ ʰςετۦಈ։ൃʱʮ෇࿥$ʯ

  67. 2007 2008 2009 2010 2002 2003 2004 2005 2006 2011

    2012 2013 2014 ෇࿥$ͷλΠϜϥΠϯ#%%
  68. ΑΓ;͞Θ໊͍͠લΛٻΊͯ 5%%͔Β#%%΁

  69. #%%5JNFMJOF %BO/PSUI "TMBL)FMMFT”Z %BWF"TUFMT $ISJT4UFWFOTPO 4UFWFO#BLFS %BWJE$IFMJNTLZ (PKLP"E[JD

  70. #%%5JNFMJOF '*5CZ8BSE$VOOJOHIBN 'JU/FTTFCZ#PC.BSUJOଞ ʮ4UPSZ%SJWFO%FWFMPQNFOUʯCZ*OEVTUSJBM-PHJDɺ"HJMF%PY։ൃɺ
 ʰ%PNBJO%SJWFO%FTJHOʱग़൛ɺ+#FIBWF։ൃ։࢝ɺzTIPVMEzͷൃݟ +#FIBWFϦϦʔεɺ%BO $ISJT.BUUTͱz(JWFO8IFO5IFOzΛൃݟ ʮ#%%"OFXMPPLBUUFTUESJWFOEFWFMPQNFOUʯɺ34QFD։ൃ։࢝ ʮ*OUSPEVDJOH#%%ʯ 34QFDϦϦʔε

    FBTZC (SPPWZ ϦϦʔε $VDVNCFS͕34QFD͔Βಠཱ͠ɺϦϦʔε ʰ#SJEHJOHUIF$PNNVOJDBUJPO(BQʱग़൛ɺ4QPDLϦϦʔε 34QFDϦϦʔε ʰ5IF34QFD#PPLʱग़൛ɺ
 ʰ5IF$VDVNCFS#PPLʱग़൛ɺ
 ʰ4QFDJpDBUJPOCZ&YBNQMFʱग़൛
  71. public class FooTest extends TestCase { public void testIsASingleton() {}

    public void testAReallyLongNameIsAGoodThing() {} } Foo - is a singleton - a really long name is a good thing 5FTU%PY"HJMF%PY CZ$ISJT4UFWFOTPO IUUQBHJMFEPYTPVSDFGPSHFOFU ςετίʔυ͔ΒυΩϡϝϯτੜ੒
  72. lʮUFTUʯͱ͍͏୯ޠ͕Ϋϥε໊͔Β΋ϝιου໊͔Β΋औΓআ ͔ΕɺΩϟϝϧॻࣜͷϝιου໊͕௨ৗͷςΩετʹม׵͞Ε ͍ͯ·͢ɻ΍͍ͬͯΔ͜ͱ͸ͦΕ͚ͩͰ͕͢ɺޮՌ͸ڻ͘΂͖ ΋ͷͰ͢ɻ ։ൃऀͨͪ͸͜Ε͕ɺগͳ͘ͱ΋͍͔ͭ͘ͷυΩϡϝϯτʹ͸ ໾ཱͭ͜ͱʹؾ͕͖ͭɺຊ౰ͷจষʹͳ͍ͬͯΔςετϝιο υΛॻ͖࢝Ί·ͨ͠ɻͦΕ͚ͩͰ͸ͳ͘ɺϏδωευϝΠϯͷ ݴޠͰϝιουΛॻ͘ͱɺੜ੒͞ΕͨυΩϡϝϯτ͕Ϗδωε Ϣʔβ΍ΞφϦετɺςελ΋ཧղͰ͖Δ΋ͷʹͳΔ͜ͱ΋෼ ͔͖ͬͯͨͷͰ͢ɻz

    IUUQEIBUFOBOFKQEJHJUBMTPVM 5FTU%PY"HJMF%PY CZ$ISJT4UFWFOTPO
  73. IUUQTKCFIBWFPSHIUUQEIBUFOBOFKQEJHJUBMTPVM public class StackBehavior { public void shouldPopValuesInReverseOrder() throws Exception

    { stStack.push("test 1"); stStack.push("test 2"); Ensure.that(stStack.pop(), m.is("test 2")); Ensure.that(stStack.pop(), m.is("test 1")); } public void shouldLeaveValueOnStackAfterPeek() throws Exception { stStack.push("test 1"); stStack.push("test 2"); Ensure.that(stStack.peek(), m.is("test 2")); Ensure.that(stStack.pop(), m.is("test 2")); } } +#FIBWF։ൃ։࢝ CZ%BO/PSUI ˞ཌ೥ϦϦʔε lςετϝιου͸ʮTIPVMEʯͱ͍͏୯ޠͰ࢝Ίͳ͚Ε͹ͳΒͳ͍ͱ͍͏ ن໿͕ු͔ͼ·ͨ͠ɻ͜ͷจষςϯϓϨʔτɺ͢ͳΘͪͦͷΫϥε͕Կ ͔Λ͢Δ΂͖ͩͱ͍͏จষςϯϓϨʔτ͕ҙຯ͍ͯ͠Δͷ͸ɺݱࡏର৅ͱ ͳ͍ͬͯΔΫϥεʹର͢Δςετ͔͠ఆٛͰ͖ͳ͍ͱ͍͏͜ͱͰ͢z
  74. ࢲ͕5%%ʹର๊͍͍ͯͯ͠Δ໰୊ͱ͸ɺ5%%ͷϚΠϯυηοτ͕զʑΛຊདྷͱ ͸ҟͳΔํ޲ੑɺͭ·Γؒҧͬͨํ޲ੑ΁ͱಋ͍ͯ͠·͏ͱ͍͏͜ͱͩɻզʑ ͸ϏϔΠϏΞΛ࢓༷Խ͢Δ༻ޠΛ࢖ͬͯߟ͑࢝ΊΔඞཁ͕͋ΔɻςετʹΑΔݕ ূͷ༻ޠͰ͸ͳ͘ɻ ϏϔΠϏΞ࢓༷ͷ༻ޠͰߟ͑Δ͜ͱͰɺͦΕͧΕͷϏϔΠϏΞʹ͍ͭͯΑΓ໌֬ ʹߟ͑ΔΑ͏ʹͳΔɻΫϥεຖ΍ϝιουຖͷςετͱ͍͏ߟ͑ํʹཔΒͳ͘ ͳΓɺΑΓ༏Ε࣮ͨߦՄೳͳυΩϡϝϯτΛखʹ͢Δ͜ͱ͕Ͱ͖ΔΑ͏ʹͳΔɻ 5%%͸5%%Ͱ͋Γɺ୭΋ͦͷ໊લͷҙຯΛม͑Α͏ͱ͸͠ͳ͍ ͦΕΛظ଴͢΂ ͖Ͱ͸ͳ͍͠ɺͦ͏ͯ͠΋Β͍͍ͨΘ͚Ͱ΋ͳ͍

    ɻ৽͍͠΍Γํʹ͸৽໊͍͠ લ͕ඞཁͩɻ͜Εʹ͸%BO/PSUI͕ߟ͑ͯ͘Ε໊ͨલ͕͋ΔʜʜͦΕ͕#%%ɺ ϏϔΠϏΞۦಈ։ൃͩɻ ʮ#%%"OFXMPPLBUUFTUESJWFOEFWFMPQNFOUʯ CZ%BWF"TUFMT IUUQHJBOUFDIKQQBHFTJLJUFNB#%%*OUSPIUNM
  75. describe Stack, " (empty)" do before(:each) do @stack = Stack.new

    end it { @stack.should be_empty } it { @stack.should_not be_full } it "should add to the top when sent #push" do @stack.push "newly added top item" @stack.peek.should == "newly added top item" end end 34QFD։ൃ։࢝
  76. .-্Ͱͷ࿦ઓ 4UFWFO#BLFSͱ,FOU#FDL

  77. .-্Ͱͷ࿦ઓ 4UFWFO#BLFSͱ,FOU#FDL

  78. ʮ*OUSPEVDJOH#%%ʯ CZ%BO/PSUI IUUQEIBUFOBOFKQEJHJUBMTPVM

  79. IUUQTDVDVNCFSJP Feature: <some terse yet descriptive text of what is

    desired> As a <role> I want <feature> So that <business value> Scenario: <some determinable business situation> Given <some precondition> And <some other precondition> When <some action by the actor> And <some other action> Then <some testable outcome is achieved> And <something else we can check happens too> $VDVNCFS͕34QFD͔Βಠཱ
  80. #language: ja フィーチャ: ログインしてユーザを識別できる ユーザとして、 ログイン機能などで自分の情報を識別したい。 なぜなら、メッセージなどを「自分のもの」として区別したいからだ。 シナリオ: ユーザ登録してログインする 前提"新規ユーザ登録"ページを表示している

    もし"ログイン名"に"moro"と入力する かつ"E メール"に"xxxxxxxxx@xxx.xxx"と入力する かつ"作成"ボタンをクリックする ならば"こんにちは moro さん"と表示されていること $VDVNCFS͕34QFD͔Βಠཱ IUUQTUBUTV[JOFDPNCPPLTDVLF
  81. ʰ#SJEHJOHUIF$PNNVOJDBUJPO(BQʱɺʰ4QFDJpDBUJPOCZ&YBNQMFʱग़൛

  82. ʰ5IF4QFD#PPLʱʰ5IF$VDVNCFS#PPLʱग़൛

  83. 34QFD͸ɺ౰࣌രൃతʹྲྀߦ͍ͯͨ͠΢ΣϒΞϓϦέʔγϣ ϯϑϨʔϜϫʔΫ3VCZPO3BJMTͷςετͷ࢓૊Έͱͯ͠σ ϑΝΫτελϯμʔυͷ஍ҐΛ֫ಘ͠ɺ3VCZͷςεςΟϯά ϑϨʔϜϫʔΫʹ͓͍ͯѹ౗తͳγΣΞΛ֫ಘ͠·ͨ͠ɻ ͜ͷ34QFDͷେ੒ޭʹΑͬͯY4QFDܥͷߏ଄ͱޠኮ͸ଞͷݴ ޠ΁Ҡ২͞Ε࢝Ί·͢ɻ͔͜͜Β਺೥͸34QFDͱ$VDVNCFS ͕ଞͷݴޠʹҠ২͞Εͭͭɺ5%%#%%ͷγʔϯΛϦʔυ͢Δ ͜ͱʹͳΓ·͢ɻ ᴷ࿨ా୎ਓ ʰςετۦಈ։ൃʱʮ෇࿥$ʯ

  84. ΞδϟΠϧ։ൃϓϩηεͷதʹ#%%ΛऔΓࠐΊΔ͜ͱ͕Θ͔ͬ ͨ#%%ߟҊऀͨͪ͸ɺ#%%Λ͞Βʹ֦େ͠ɺ#%%ࣗ਎ΛΞ δϟΠϧ։ൃٕ๏·ͰҭͯΑ͏ͱ͠·ͨ͠ɻʰ5IF34QFD #PPLʱʹ͸͜͏͋Γ·͢ʢQʣɻ l#%%͸ϑϧελοΫͷΞδϟΠϧ։ൃٕ๏Ͱ͢ɻ#%%͸ "5%1ʢ"DDFQUBODF5FTU%SJWFO1MBOOJOHʣͱݺ͹ΕΔ "5%%ͷҰछΛؚΊɺΤΫετϦʔϜϓϩάϥϛϯά͔Βώϯ τΛಘ͍ͯ·͢z ᴷ࿨ా୎ਓ ʰςετۦಈ։ൃʱʮ෇࿥$ʯ

  85. ݱࡏ 5%%ͷ͍·

  86. 2007 2008 2009 2010 2002 2003 2004 2005 2006 2011

    2012 2013 2014 ෇࿥$ͷλΠϜϥΠϯ%))
  87. ຊॻʰςετۦಈ։ൃʱͰॻ͔Ε͍ͯΔΑ͏ͳຊདྷͷ5%% ͸ɺϓϩάϥϚ͕ࣗ෼ࣗ਎Ͱෆ҆Λ੍ޚ͢ΔͨΊͷิॿ ྠͷΑ͏ͳ໾ׂΛՌͨ͢খ͞ͳϓϥΫςΟεͰͨ͠ɻ ͔͠͠5%%͕ࢧ࣋͞Εɺ࣮ફऀ͕૿͑ɺͦΕҎ্ʹ࣮ફ ͯ͠Έ͍ͨਓ͕૿͑ɺ5%%ࣗ਎͕(004΍#%%Λܦ֦ͯ େ͍ͯ͘͠ʹͭΕͯɺͦ͜ʹ͸ͭͷɺҟͳΔํ޲Λ޲͘ มԽ͕๚Ε·ͨ͠ɻڭ৚ओٛԽͱɺҙຯͷرബԽͰ͢ɻ ᴷ࿨ా୎ਓ ʰςετۦಈ։ൃʱʮ෇࿥$ʯ

  88. ڭ৚ओٛԽ

  89. IUUQXXXCVUVODMFCPCDPN"SUJDMF46ODMF#PC5IF5ISFF3VMFT0G5EE  :PVBSFOPUBMMPXFEUPXSJUFBOZQSPEVDUJPODPEFVOMFTTJUJTUP NBLFBGBJMJOHVOJUUFTUQBTT  :PVBSFOPUBMMPXFEUPXSJUFBOZNPSFPGBVOJUUFTUUIBOJT TV⒏DJFOUUPGBJMBOEDPNQJMBUJPOGBJMVSFTBSFGBJMVSFT  :PVBSFOPUBMMPXFEUPXSJUFBOZNPSFQSPEVDUJPODPEFUIBOJT TV⒏DJFOUUPQBTTUIFPOFGBJMJOHVOJUUFTU

     ࣦഊ͢ΔϢχοτςετΛ੒ޭͤ͞ΔͨΊʹ͔͠ɺϓϩμΫτίʔυΛॻ ͍ͯ͸ͳΒͳ͍ɻ  ࣦഊͤ͞ΔͨΊʹ͔͠ɺϢχοτςετΛॻ͍ͯ͸ͳΒͳ͍ɻίϯύΠϧ Τϥʔ͸ࣦഊʹ਺͑Δɻ  ϢχοτςετΛ͚ͭͩ੒ޭͤ͞ΔҎ্ʹɺϓϩμΫτίʔυΛॻ͍ͯ͸ ͳΒͳ͍ɻ ˞5%%ͷܒ໤ීٴʹਚྗ͠ɺඇৗʹେ͖ͳޭ੷ͷ͋Δ6ODMF#PCΛ ͜ͷΑ͏ͳจ຺Ͱొ৔ͤ͞Δ͜ͱʹ͸ɺͱͯ΋ෳࡶͳࢥ͍͕͋Γ·͢
  90. IUUQEBWJEIFJOFNFJFSIBOTTPODPNUEEJTEFBEMPOHMJWFUFTUJOHIUNM

  91. lςετϑΝʔετݪཧओٛ͸ېཉͷΈΛএ͑ͨੑڭҭͷΑ͏ͳ΋ͷͩɻ ࠷ॳ͔Β͜͏ͩͬͨΘ͚Ͱ͸ͳ͍ɻࢲ͕ॳΊͯ5%%ʹग़ձͬͨͱ͖ʹ͸ɺΑΓΑ͍ιϑτ ΢ΣΞ։ൃͷੈք΁ஸॏʹট଴͞ΕͨΑ͏ʹײͨ͡ɻςεςΟϯά͕ଘࡏ͠ͳ͍ੈք͔Β ςεςΟϯάͷϓϥΫςΟε΁ͷϚΠϯυϋοΫͩɻे෼ʹςετ͞Ε͍ͯΔίʔυϕʔε ʹײ͡Δམͪண͖ɺιϑτ΢ΣΞΛมߋ͢Δͱ͖ͷ҆৺ײΛڭ͑ͯ͘Εͨɻ ݄೔͕ա͕͗ͨɺ͔͠͠ςετϑΝʔετͷϨτϦοΫ͸ΑΓ૽ʑ͘͠ɺౖΓͬΆ͍΋ͷͱ ͳ͖ͬͯͨɻΑΓڱྔʹͳ͖ͬͯͨɻ ౰ॳ͸ɺςετϑΝʔετΛʮ௚ײʹ൓͢ΔഁյṀʯͱͯ͠ɺࣗಈԽͨ͠ϦάϨογϣϯς εςΟϯά͕ଘࡏ͠ͳ͍ͱ͍͏࢒೦ͳۀքͷݱঢ়Λଧഁ͢Δඞཁ͕͔͋ͬͨ΋͠Εͳ͍ɻ ͔ͦ͠͠͏ͯ࢝͠·ͬͨͱͯ͠΋ɺ͍·Ͱ͸ତམͯ͠͠·ͬͨͷͩɻෆ৴৺ऀΛଧͪਾ͑Δ

    ϋϯϚʔͱͳΓɺϓϩϑΣογϣφϧʹ΋ͱΔιϑτ΢ΣΞ։ൃʹ޲͔ͳ͍ਓͩͱܾΊͭ ͚ΔɻϦτϚεࢼݧࢴͩɻz IUUQEIBUFOBOFKQZBDIQ
  92. ͜ͷը૾͕ಠΓา͖ͯ͠͠·ͬͨײ͸൱Ί·ͤΜ ͜ͷϥΠΦϯ΋ಉࡑ͔

  93. ৽ͨʹςετΛॻ͖࢝Ίͨਓͷ೤ҙʹ͸஫ҙ ͠Α͏ɻ5%%ͷڧཁ΄Ͳɺ5%%ͷීٴΛ๦ ͛Δ΋ͷ͸ͳ͍ɻ ͋ͳ͕ͨ؅ཧऀ΍ϦʔμʔͰ͋ͬͯ΋ɺ୭͔ ͷಇ͖ํΛڧ੍తʹม͑Δ͜ͱ͸Ͱ͖ͳ͍ɻ ᴷ,FOU#FDL ʰςετۦಈ։ൃʱQ ݪయͰఝΛࢗ͞Ε͍ͯͨͷʹʜʜ

  94. ҙຯͷرബԽ

  95. ਖ਼ղͷͳ͍࣭໰ IUUQTUXJUUFSDPNIQFP@BQTUBUVT

  96. ςετϑΝʔετͱͷࠞಉ IUUQTUXJUUFSDPNU@XBEBTUBUVT

  97. l࿨ాϞοΫΦϒδΣΫτ͸ɺΠϯλϥΫγϣϯϕʔεͷઃܭ Λߦ͏ͨΊͷಓ۩Ͱ͋ΓɺϞοΫΦϒδΣΫτ͕ॻ͖ʹ͍͘ͳ ͱ͍͏ͷ͸ɺઃܭ͕ྑ͘ͳ͍͔ΒઃܭΛྑ͍ͯ͘͘͠ͱ͍͏ݪ ಈྗʹͳΔ͸ͣͩͬͨɻ ͔͠͠ɺϞοΫΦϒδΣΫτΛ࡞ΔͨΊͷϞοΫϥΠϒϥϦʔ ͷػೳڝ૪͕ى͖ͨ݁ՌɺϞοΫϥΠϒϥϦʔ͸ͲΜͲΜͲΜ ػೳ͕ଟػೳԽ͞Ε͍͖ͯɺͰ͖Δ͜ͱ͕૿͑ɺڧྗʹͳΕ͹ ͳΔ΄ͲɺઃܭվળޮՌ͕ͲΜͲΜബΕ͍ͯͬͯ͠·ͬͨɻ ͱʹ͔͘ڧྗͳػೳΛ࢖ͬͯɺطଘͷػೳΛແཧ΍Γςετ͢ ΔͨΊɺΧόϨοδΛ্͛ΔͨΊͷಓ۩ʹ੒ΓԼ͕ͬͯ͠·ͬ

    ͨɻͦΕͬͯݱঢ়ͷ௥ೝ͡Όͳ͍Ͱ͔͢z ϞοΫϥΠϒϥϦͷڧԽͱͦͷൽ೑ͳ݁຤ IUUQTUXPQBHJMFFTNDPKQXIBUEPXFOFFEGPSHSPXUIPGGVUVSFDCBGF
  98. ݱ࣌఺ʹ͓͚Δଟ͘ͷਓͷೝࣝ͸࣍ͷΑ͏Ͱ͋Δͱචऀ͸ଊ ͍͑ͯ·͢ɻ w5%%ςετΛઌʹॻ͘ίʔυͷॻ͖ํͷ͜ͱ wϞοΫΦϒδΣΫτςετΛॻ͘ͷ͕೉͍͠ର৅ʹର ͯ͠ແཧ΍ΓςετΛॻ͘ࡍʹ࢖͏πʔϧ w#%%TUZMFY4QFDܥͷޠኮͰςετίʔυΛॻ͘͜ͱ w#%%$VDVNCFSͷΑ͏ͳ(IFSLJOܥπʔϧΛ࢖ͬͯ ड͚ೖΕςετΛࣗಈԽ͢Δ͜ͱ ᴷ࿨ా୎ਓ ʰςετۦಈ։ൃʱʮ෇࿥$ʯ

    ҙຯͷرബԽͷ݁Ռ
  99. #%%ͷࠞཚ4QFD#%%ͱ4DFOBSJP#%% IUUQTXXXTMJEFTIBSFOFUFWFS[FUCEEJOTZNGPOZ

  100. 5%%͸ςετͩͱ͍͏ޡղΛղͨ͘Ίʹ%BO/PSUIʹΑΓ ൃ໌͞Εͨ#%%͕ɺ೥ܦ͍ͬͨ·ɺਓʑʹςετͩͱ ޡղ͞Ε͍ͯΔͷ͸ൽ೑ͳ͜ͱͩɻ IUUQTUXJUUFSDPNBTMBL@IFMMFTPZTUBUVT

  101. l8IFOJUTUJNFUPXSJUFDPEF #%%JTOPEJ⒎FSFOUGSPN5%%8SJUF BGBJMJOHUFTU8BUDIJUGBJM8SJUFFOPVHIDPEFUPNBLFJUQBTT $MFBOVQZPVSNFTT SFGBDUPS  4PIPXJT#%%T5%%EJ⒎FSFOU *OBDPVQMFPGBSFBT  #%%HJWFTZPVBXFMMEFpOFETUBSUJOHQPJOU5IFFYBNQMFT

    DSFBUFECZUIFEFMJCFSBUFEJTDPWFSZQSPDFTT  5FTUTUIBUSFTVMUGSPN#%%BSFOPUVOJUUFTUT CVUIJHIMFWFMUFTUT UIBUJOUFSBDUXJUIUIFTZTUFNBUBNVDINPSFHSBOVMBSMFWFM *EPOUDPOTJEFSUPPMTMJLF34QFDUPCFB#%%UPPM*UIJOLPGJU NPSFBTBVOJUUFTUJOHUPPMUIBUJTHSFBUGPS5%%JOUIFTQJSJUPG #%%z IUUQTDVDVNCFSJPCMPHBTMBLTWJFXPGCEE ݁ہ5%%ͱ#%%͸Ͳ͏ҧ͏ͷ
  102. Ͳ͏ͯ͜͠͏ͳͬͨʁ ߟ͑ͯΈΔ

  103. #%%͸ɺ·ͣ3BJMT΍34QFDͷོ੝ͱಉ࣌ظʹग़͖ͯͨ֓೦ͩͬͨͨΊɺ 3BJMT΍34QFDͷར༻֦େʹ߹Θͤͯར༻ऀ͕૿͑·ͨ͠ɻͦͷޙɺϦʔϯɾε λʔτΞοϓɺܧଓతσϦόϦʔɺ%FW0QT౳ͷ୆಄ʹΑͬͯɺΑΓେ͖ͳมԽ ͷதͷॏཁͳٕज़తཁૉʹͳΓ·͢ɻ #%%͕໨ࢦͨ͠൒ܘͷҟͳΔϑΟʔυόοΫϧʔϓͱސ٬ࢀՃΛॏࢹͯ͠։ൃΛ ߦ͏ख๏͸ɺϦʔϯܥͷࢥ૝ͷதͰϏδωεͱڧ݁͘ͼ͖ͭɺΑΓચ࿅͞Εͨܗ΁ ͱมԽ͠·ͨ͠ɻड͚ೖΕςετΛؚΊͨࣗಈςετΛॻ͍ͯӡ༻͢Δٕज़͸ͦͷ ॏཁ౓͸͞Βʹ૿͠·͕ͨ͠ɺ5%%#%%ࣗ਎͸։ൃํ๏࿦ͷτϨϯυͷத৺͔ Β཭ΕɺܧଓతσϦόϦʔɺ%FW0QTΛߏ੒͢Δٕज़ͷͻͱͭʹऩ·Γ·ͨ͠ɻ πʔϧར༻ऀ͸૿͑ͨ΋ͷͷɺҙຯͷرബԽ΋͞ΒʹਐΈɺΞδϟΠϧ։ൃϓϩη

    εͱͯ͠ͷ#%%͸ഇΕɺπʔϧͱํݴ͚͕ͩ࢒ͬͨɺͱ͍͏ͷ͕೥ݱࡏͷ 5%%#%%Ͱ͢ɻ ᴷ࿨ా୎ਓ ʰςετۦಈ։ൃʱʮ෇࿥$ʯ
  104. ະདྷ 5%%ͷ͜Ε͔Β

  105. 5%%͸֦େ͠ɺաେධՁ͞ΕɺઌӶԽͱҙຯͷ رബԽ͕ى͜ΓɺͦͷධՁ͸΍΍աখͳͱ͜Ζ ʹམ͖ͪͯ·ͨ͠ɻ աେධՁ͕ऩ·ͬͨͷ͸ྑ͍΋ͷͷɺ࣮૾͕ࣦ ΘΕͨͷͰࠓ౓͸աখධՁʹͳ͍ͬͯ·͢ɻʰς ετۦಈ։ൃʱ͕ඳ͍࣮ͨ૾ΑΓ΋ɺഎܠ͕ࣦ ΘΕͨ෼͚ͩաখධՁͰ͢ɻ lಉ͡ͱ͜ΖʹͱͲ·Δʹ͸୾ྗ͕͍ΔzCZ ,FOU#FDL

  106. None
  107. ҙຯ͕رബԽࣦͯ͠ΘΕɺπʔϧ͚͕ͩ࢒͍ͬͯΔͷ ͕ݱ୅ͷςετͷݱঢ়Ͱ͢ɻ ͳͥ͋Δਓ͸ʮUFTUʯͱݴ͍ɺ·ͨ͋Δਓ͸ʮTQFDʯ ΍ʮFYBNQMFʯͱ͍͏໊લΛ޷Ήͷ͔ɻ աఔ΍ҙຯ෇͚͕શ෦ࣦΘΕɺςετ͸ʮॻ͔͞ΕΔʯ ΋ͷͰ͋ͬͯɺ͜ͷݴޠͷ͜ͷςετϥΠϒϥϦ͸͜͏ ࢖͏ͱ͍ͬͨ৘ใ͹͔Γ͕ݟ͔ͭΓ·͢ɻ ಓ۩͔͠࢒͍ͬͯͳ͍ͷͰɺഎܠ΍ࢥ૝ɺจ຺Λ෮׆ ͤ͞Δඞཁ͕͋Γ·ͨ͠ɻͦΕ͕ʮ෇࿥̘ʯͰ͢ɻ

  108. ʰςετۦಈ։ൃʱ෮ץ΁ͷಓ IUUQUXBEBIBUFOBCMPHKQFOUSZUEECPPL

  109. ͜ͷ೥Ͱ೔ຊʹ͓͍ͯ΋ςετࣗಈԽ͕޿͘ߦΘΕΔΑ͏ʹͳ͕ͬͨɺ ςετۦಈ։ൃΛ࣮ફ͍ͯ͠Δਓؒ͸·ͩগͳ͘ɺཧղ͕ਐΜͰ͍Δͱ ͸͍͑ͳ͍ɻ ͔͠͠ɺʮςετۦಈ։ൃʯͱ͍͏໊લ͚ͩ͸े෼ʹ޿·ͬͨɻ ͦͷ݁Ռɺͦͷ໊લ͔Β૝ى͞ΕΔ಺༰ͱ࣮ࡍͷϓϥΫςΟεͱͷဃ཭ ʹجͮ͘ޡղ΍㒷ᨱɺςετۦಈ։ൃͷޮՌ΍ద༻ൣғʹର͢Δաେධ Ձ΍աখධՁ͕සൟʹൃੜ͍ͯ͠ΔɻͦͷҰํͰɺݪཧओٛతͳ܏޲΋ ͋ΔɻݪయͨΔຊॻʰςετۦಈ։ൃʱʹ͸ͦ͜·Ͱڭ৚ओٛతʹॻ͔ Ε͍ͯͳ͍ʹ΋ؔΘΒͣɺฉ͖͔ͬͨ͡ςετۦಈ։ൃͷखॱʹ४ڌ͢ Δ͜ͱࣗମ͕໨తԽͯ͠͠·͍ͬͯΔΤϯδχΞ΋ݟΒΕΔɻ

    ͭ·Γɺ໊લ͚͕ͩҰਓา͖͍ͯ͠Δɻςετۦಈ։ൃʹؔ͢Δٞ࿦͸ ࣠Λ࣋ͨͣɺৗʹൃࢄ͢Δ܏޲ʹ͋Δɻ ຊॻΛ೔ຊͷಡऀʹ঺հ͢΂͖ཧ༝ IUUQUXBEBIBUFOBCMPHKQFOUSZUEECPPL
  110. ະͩʹςετۦಈ։ൃʹର͢Δਖ਼֬ͳཧղ͕ਐ·ͳ͍ݪҼͷͻͱͭ ͸ɺ༷ʑͳࣄ৘΋͋Γɺଟ͘ͷΤϯδχΞʹϐΞιϯ൛ʰςετۦ ಈ։ൃೖ໳ʱ͕ಡ·Εͳ͔ͬͨ͜ͱͰ͋Ζ͏ɻʮςετۦಈ։ൃʯ ͱ͍͏໊લΛ஌͍ͬͯΔΤϯδχΞͷதͰɺϐΞιϯ൛ʰςετۦ ಈ։ൃೖ໳ʱΛಡΜͩਓͷׂ߹͕গͳ͗͢Δɻ͜ͷຊ͕޿·͍ͬͯ Ε͹ɺ࣮ྫΛ൐ͬͨ಺༰ʹΑͬͯΤϯδχΞͷཧղ΋ਐΈɺ೔ຊʹ ͓͚Δςετۦಈ։ൃͷීٴ͸ਐΜͩͱߟ͑ΒΕΔɻ ೔ຊʹ͓͚Δςετۦಈ։ൃͷਖ਼͍͠ཧղΛਐΊɺ։ൃͷݱ৔ʹΑ Γਂ͍ࣗ৴ͱվળͷػձΛ༩͑ΔͨΊʹ΋ɺ͍·ͦ͜ݪయͨΔʰς ετۦಈ։ൃʱ͕ٻΊ΍͍͢Ձ֨ͱ಺༰Ͱ෮ץ͠ɺଟ͘ͷΤϯδχ

    Ξʹಡ·Εͳ͚Ε͹ͳΒͳ͍ɻ ຊॻΛ೔ຊͷಡऀʹ঺հ͢΂͖ཧ༝ IUUQUXBEBIBUFOBCMPHKQFOUSZUEECPPL
  111. ʰςετۦಈ։ൃʱ͸ɺࣗ෼ͨͪͷίʔυʹࣗ৴Λ ࣋ͬͯ։ൃΛଓ͚͍ͨϓϩάϥϚɺνʔϜϦʔμʔ޲ ͚ͷॻ੶Ͱ͋Δɻ ͜Ε͸ςετۦಈ։ൃͷߟҊऀࣗ਎ʹΑͬͯॻ͔Εͨ ݪయͰ͋Γɺςετۦಈ։ൃͱ͸୯ʹςετࣗಈԽΛ ߦ͏͜ͱͰ͸ͳ͘ɺϢχοτςετͱϦϑΝΫλϦϯ άΛ྆ྠͱͨ͠খ͍͞αΠΫϧΛճ͢͜ͱͰෆ࣮֬ੑ Λ੍ޚ͠ɺෆஅͷઃܭਐԽΛՄೳʹ͢Δख๏Ͱ͋Δ͜ ͱΛɺಡऀ͸࣮ྫΛ௨ֶͯ͠Ϳ͜ͱ͕Ͱ͖Δɻ ΤϨϕʔλʔϐον

    IUUQUXBEBIBUFOBCMPHKQFOUSZUEECPPL
  112. %))ͷݴ͏ͱ͓Γɺ5%%#%%ͷจ຺΍എܠ͸ ͋Δఔ౓ࣦΘΕ·ͨ͠ɻ ͔͠͠ɺࣗಈςετΛॻ͘ϓϥΫςΟε͸ੈͷத ʹཱ೿ʹࠜ෇͖ɺࣗ෼ͨͪͰࣗಈςετΛॻ͘ͷ ͕ʮ;ͭ͏ʯͳੈͷதʹͳΓ·ͨ͠ɻ͜Ε͸େ͖ ͳલਐͰ͢ɻ ᴷ࿨ా୎ਓ ʰςετۦಈ։ൃʱʮ෇࿥$ʯ

  113. wͻͱΓ͔Β࢝ΊΒΕ·͢ wςετ΍5%%͸εΩϧͰ͢ɻͭ·Γʜ w࠽ೳͰ͸ͳ͘ɺशಘՄೳͰ͢ wྔ͸࣭ʹసԽ͠·͢ wʮࣸܦʯ͕͓͢͢Ί 5%%͸εΩϧͰ͢

  114. ࣸܦ

  115. IUUQUXJUUFSDPNU@XBEBTUBUVTFT

  116. ຊॻ΋ɺಡΜ͚ͩͩͰ͸ਂ͍ಘ৺ʹ͸ࢸΒͳ͍Ͱ͠ΐ ͏ɻ͔͠͠ɺςετۦಈ։ൃͷྑ͞ɺڧΈ͸खΛಈ ͔ͤ͹Θ͔Γ·͢ɻ ͳͥͳΒɺ5%%ͷຊ࣭͸ਫ਼ਆঢ়ଶͷίϯτϩʔ ϧɺෆ҆ͱࣗ৴ͷ੍ޚʹ͋Δ͔ΒͰ͢ɻ݁Ռʢॻ͔ ΕͨίʔυͱςετίʔυʣͰ͸ͳ͘ɺաఔʢࢥߟ ϓϩηεͱϦϑΝΫλϦϯάʣʹຊ࣭͕͋Γ·͢ɻ ᴷ࿨ా୎ਓ ʰςετۦಈ։ൃʱʮ෇࿥$ʯ

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

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

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

  120. ςετΛॻ͍ͯ΋ઃܭΛվળ͠ͳ͍ͷͰ͋Ε͹ɺ ͦΕ͸ͨͩͷճؼςετͰ͋Γɺݱঢ়ͷ௥ೝͰ͠ ͔͋Γ·ͤΜɻ ςετۦಈ։ൃʹ͓͚Δ࣭ͷ޲্ͷखஈ͸ɺϦ ϑΝΫλϦϯάʹΑΔܧଓతͰΠϯΫϦϝϯλϧ ͳઃܭͰ͋Γɺʮ୯ͳΔςετϑΝʔετʯͱ ʮςετۦಈ։ൃʯͷҧ͍͸ͦ͜ʹ͋Γ·͢ɻ ᴷ࿨ా୎ਓ ʰςετۦಈ։ൃʱʮ෇࿥$ʯ

  121. ςετۦಈ։ൃ͸ɺಡऀͷօ͞Μͷϓϩάϥϛϯ άελΠϧʹগͳ͔ΒͣӨڹΛ༩͑ΔͰ͠ΐ͏ɻ ຊॻΛಡΜͩ͏͑Ͱɺ࠷ऴతʹ͸ςετۦಈ։ൃ Λ࢖Θͳ͘ͱ΋ɺશ͘໰୊͸͋Γ·ͤΜɻ ࣗ෼͕׆༻Ͱ͖ΔςΫχοΫͷͻͱͭͱͯ͠ςε τۦಈ։ൃ͕ՃΘΕ͹ɺͦΕͰे෼Ͱ͢ɻ ᴷ࿨ా୎ਓ ʰςετۦಈ։ൃʱʮ෇࿥$ʯ

  122. ܦݧΛੵΜͩ։ൃऀ͸ɺςετίʔυͷॻ͖ํ΍ྔɺ ॻ͘λΠϛϯάʹؔͯ͠ɺࣗ෼ͷؒ߹͍Λ͍࣋ͬͯ· ͢ɻ ͞·͟·ͳύϥμΠϜɺςΫχοΫΛܦݧͯ͠໭ͬͯ ͖ͨͱ͜Ζ͕ɺ།Ұແೋͷࣗ෼ͷϓϩάϥϛϯάελ ΠϧͰ͢ɻ͞·͟·ͳੈքΛܦݧ͠ɺࣗ෼ͷελΠϧ Λݟ͚͍ͭͯͩ͘͞ɻ ᴷ࿨ా୎ਓ ʰςετۦಈ։ൃʱʮ෇࿥$ʯ

  123. །Ұແೋͷࣗ෼ͷϓϩάϥϛϯάελΠϧΛҭΜͰ͍ͩ͘͞ ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠