pytestによるCIレボリューション(2020年更新版)

40e86de32af123cd0460d2e5326c5573?s=47 abenben
July 04, 2020

 pytestによるCIレボリューション(2020年更新版)

2020年7月4日の「Python Charity Talks in Japan」で発表したスライドです。
https://pyconjp.connpass.com/event/177586/

40e86de32af123cd0460d2e5326c5573?s=128

abenben

July 04, 2020
Tweet

Transcript

  1. 2020.7.4(⼟) Institution for a Global Society株式会社 阿部⼀也(あべんべん) 1ZUIPO$IBSJUZ5BMLTJO+BQBO QZUFTUʹΑΔ$*ϨϘϦϡʔγϣϯ

  2. ͓લ୭Α ʲॴଐʳ *OTUJUVUJPOGPSB(MPCBM4PDJFUZגࣜձࣾ ͷ ্੮ݚڀһʢ㲈*5ΤϯδχΞʣͰ͢ɻ ʲ*5ίϛϡχςΟӡӦʢछྨʣʳ 4UBSU1ZUIPO$MVC GJOQZ GJOBODFͱQZUIPO 'JO+"84

    95FDI+"84 GPVOE*5ʢαϙʔλʔʣ ͭ͘͹ɾദͷ༿ϏοτίΠϯ ϑΟϯςοΫΤϯδχΞཆ੒ίϛϡχςΟ 76$"-BCP ͋΂Μ΂ΜʢѨ෦Ұ໵ʣ
  3. དྷि΋ษڧձ͠·͢ IUUQTGJOQZDPOOQBTTDPNFWFOU IUUQTTUBSUQZUIPODPOOQBTTDPNFWFOU

  4. ஫ҙࣄ߲ ຊࢿྉͷ಺༰͸શͯஶऀݸਓʹؼ͢Δ΋ͷͰ͋Γɺ ॴଐ͢ΔػؔͷݟղΛ൓өͨ͠΋ͷͰ͸͋Γ·ͤΜɻ

  5. ࠓ೔ͷ͓࿩ • QZUFTUʹ͍ͭͯ • $*ʢ$JSDMF$*ʣʹ͍ͭͯ

  6. ࠓ೔ͷൃද͸ 1Z$PO +1Ͱൃදͨ͠಺༰ͷ ΞοϓσʔτͰ͢ɻ https://pycon.jp/2019/sessions/?sessionId=225

  7. QZUFTUʹ͍ͭͯ

  8. ςετۦಈ1ZUIPO ʲ໨࣍ʳ $)"15&3͸͡ΊͯͷQZUFTU $)"15&3ςετؔ਺Λ࡞੒͢Δ $)"15&3QZUFTUͷϑΟΫενϟ $)"15&3૊ΈࠐΈϑΟΫενϟ $)"15&3ϓϥάΠϯ $)"15&3ߏ੒ $)"15&3QZUFTUΛଞͷπʔϧͰ࢖ͬͯΈΔ ෇࿥"Ծ૝؀ڥ

    ෇࿥#QJQ ෇࿥$QZUFTUͷϓϥάΠϯ ෇࿥%1ZUIPOϓϩδΣΫτͷύοέʔδԽͱ഑෍ ෇࿥&Y6OJUϑΟΫενϟ ෇࿥' ˒ Ϋϥ΢υͰQZUFTUΛ࢖͏ $JSDMF$* ෇࿥( ˒ QZUFTUΛ༻͍ͨςετۦಈ։ൃ ˒ ೔ຊޠ຋༁൛ͷΈ IUUQTXXXTIPFJTIBDPKQCPPLEFUBJM
  9. ςετͷछྨ ςετͷछྨ ಺༰ උߟ Ϣχοτςετ ؔ਺΍ΫϥεͳͲɺίʔυͷ͘͝Ұ෦ΛνΣοΫ͢Δςετɻ ϗϫΠτϘοΫε ςετ ݁߹ςετ ෳ਺ͷΫϥε΍αϒγεςϜͳͲɺҰճΓେ͖ͳίʔυΛ

    νΣοΫ͢Δςετɻ ϗϫΠτϘοΫε ςετ γεςϜςετ ςετ͍ͯ͠ΔςετશମΛνΣοΫ͢Δςετɻຊ൪؀ڥʹ ͍ۙ؀ڥͰςετΛ͢Δɻ ϒϥοΫϘοΫε ςετ ػೳςετ γεςϜશମͷػೳͱੑೳΛςετ͢Δɻ γεςϜ͕ސ٬ͷཁٻΛຬ͍ͨͯ͠Δ͔Λςετ͢Δɻ ϒϥοΫϘοΫε ςετ ൽԼςετ ࠷ऴతͳΤϯυϢʔβʔͷΠϯλϑΣʔεʹର࣮ͯ͠ߦ͞ΕΔ ͷͰ͸ͳ͘ɺද໘ͷ͙͢Լʹ͋ΔΠϯλʔϑΣʔεʹର࣮ͯ͠ ߦ͢Δςετɻ "1*૚ʹରͯ͠ߦ͏ςετɻ ϒϥοΫϘοΫε ςετ
  10. (PPHMF&OHJOFFSJOH1SBDUJDFT%PDVNFOUBUJPO ü %FTJHOʢγεςϜʹͱͬͯద੾ͳઃܭ͔ʁʣ ü 'VODUJPOBMJUZʢ࡞ऀ͕ҙਤͨ͠ͱ͓ΓʹৼΔ෣͏͔ʁʣ ü $PNQMFYJUZʢͰ͖Δ͚ͩγϯϓϧʹͳ͍ͬͯΔ͔ʁʣ ü 5FTUTʢద੾ͳࣗಈςετ͕උΘ͍ͬͯΔ͔ʁʣ ü

    /BNJOHʢม਺΍Ϋϥεɺϝιουʹ໌֬ͳ໊લ͕෇͚ΒΕ͍ͯΔ͔ʁʣ ü $PNNFOUTʢίϝϯτ͸໌֬Ͱ෼͔Γ΍͍͔͢ʁʣ ü 4UZMFʢίʔυ͸ελΠϧΨΠυʹै͍ͬͯΔ͔ʁʣ ü %PDVNFOUBUJPOʢؔ࿈͢ΔυΩϡϝϯτ͸ߋ৽͞Ε͍ͯΔ͔ʁʣ ※日本語プロジェクト https://shuuji3.github.io/eng-practices/ https://www.publickey1.jp/blog/19/googlegoogle_engineering_practices_documentation.html
  11. 1ZUIPOͷϢχοτςετϑϨʔϜϫʔΫ VOJUUFTU OPTFςετ ࣍ϖʔδͰઆ໌ 1ZUIPOͷඪ४ϥΠϒ ϥϦͱͯ͠༻ҙ͞Εͯ ͍Δɻ +6OJUΛϕʔεʹͯ͠ ͍Δʢ5FTU$BTFΛܧ ঝ͢Δඞཁ͕͋Δʣɻ

    ଟ࠼ͳΦϓγϣϯͰॊ ೈͳςετ͕Ͱ͖ɺΧ όϨοδΛऔΔ͜ͱ΋ Ͱ͖Δɻ %4-ه๏ʹରԠ͍ͯ͠ Δɻ ಛఆͷΫϥεΛܧঝ͢ Δඞཁ͕ͳ͍
  12. (PPHMFτϨϯυ

  13. QZUFTUͷಛ௃ ü ୯७ͳςετΛॻ͘ͷ͕؆୯Ͱ͋Δɻ ü ෳࡶͳςετΛॻ͘ͷ΋؆୯Ͱ͋Δɻ ü ςετ͕ಡΈ΍͍͢ɻ ü ςετ͕ಡΈ΍͍͢ɻʢॏཁͳͷͰ̎ճॻ͖·ͨ͠ʣ ü

    ΋ͷͷ਺ඵͰ࢖͍࢝ΊΔ͜ͱ͕Ͱ͖Δɻ ü ςετΛࣦഊͤ͞Δʹ͸BTTFUΛ࢖༻͢Δɻ TFMGBTTFSU&RVBM Ͱ΋TFMGBTTFSU-FTT5IBO Ͱ΋ͳ͘ɺͨͩͷBTTFSUͰ͋Δɻ ü VOJUUFTUɺOPTF༻ʹॻ͔Εͨςετ΋࣮ߦͰ͖Δɻ ʮςετۦಈ1ZUIPOʯ!ᠳӭࣾΑΓ
  14. QZUFTUͷΠϯετʔϧ

  15. QZUFTUͷGJYUVSF ϑΟΫενϟ͸ɺ࣮ࡍͷςετؔ਺ͷ࣮ߦʹઌཱͬͯʢ·ͨ͸ͦͷલޙʹʣɺ QZUFTUʹΑ࣮ͬͯߦ͞ΕΔؔ਺Ͱ͢ɻ ༷ʑͳείʔϓͰར༻ՄೳʢTFTTJPO DMBTT NPEVMF GVODUJPOʣ ࢀߟɿςετۦಈ1ZUIPOʢᠳӭࣾʣ

  16. ͨ͠ࢉ ͻ͖ࢉ ͔͚ࢉ όάΛ࢓ࠐΜͩ ΘΓࢉ ςετର৅ͷϓϩάϥϜ +

  17. ᶃϦετͷ಺༰ΛՄࢹԽ͢ΔͨΊʹ༻ҙ ςετΫϥεʢQZUFTUʣ

  18. ᶃςετύλʔϯͷ഑ྻ ʢҎԼͷͭΛνΣοΫΛ͢Δʣ        

     ᶆςετͷ࣮ࢪ ᶄςετύλʔϯΛ ࣮̍ͮͭࢪ ᶅςετσʔλͷՄࢹԽํ๏ Ճࢉͷςετ
  19. ݮࢉͷςετ

  20. ͔͚ࢉͷςετ ソースコード側にバグがあるので テストが失敗する予定

  21. ʲ࢓ࠐΈʳςετલʹ SFUVSOΛೖΕ ςετέʔεʹ ࿙ΕΛൃੜͤ͞Δ ΘΓࢉͷςετ

  22. QZUFTUͷ࣮ߦ ࣦഊͨ͠ςετͷ ৄࡉ͕ग़ྗ͞ΕΔ ͷͰΘ͔Γ΍͍͢

  23. շదͳ؀ڥͰ։ൃΛ

  24. շదͳ؀ڥͰ։ൃΛ ςετʹؔ͢Δ ػೳ͕ॆ࣮ ʢ༗ঈ൛ͷΈʣ ΠϯλϥΫςΟϒ ͳσʔλ෼ੳʹ͸ ޲͍͍ͯΔ͕։ൃ ޲͚Ͱ͸ͳ͍

  25. 74$PEFͱ͸ • ϚΠΫϩιϑτʹΑͬͯ։ൃ͞Ε͍ͯΔιʔείʔυΤσΟλɻ ʢ೥ϦϦʔεʣ • ιʔείʔυ͕ϋΠϥΠτදࣔ͞ΕΔɻ ʢ༷ʑͳϓϩάϥϛϯάݴޠʹରԠʣ • ϑΝΠϧ΍ϑΥϧμͷ؅ཧ͕؆୯ɻ •

    ศརͳ֦ுػೳ͕͋Δɻ • ̎ͭͷϑΝΠϧΛಉ࣌ʹ։͍ͯ ࡞ۀͰ͖Δɻ • ίʔυͷࣗಈิ׬ػೳɻ • ೔ຊޠઃఆɻ • 8JEPXT049-JOVYͰಈ࡞Մೳɻ
  26. 1ZUIPOͷࣗಈิ׬Λ༗ޮԽ ஫ҙʣ༗ޮʹ͢Δʹ͸ɺجຊઃఆ͔Β QZUIPOKFEJ&OBCMFEΛݕࡧͯ͠ɺνΣοΫΛ֎͢͜ͱɻ

  27. ͜ͷล 74$PEFͰQZUFTUͷઃఆ

  28. ᶃςετΛදࣔ ᶄςετΛ࣮ߦ ᶅ݁ՌΛ֬ೝ 74$PEFͰQZUFTUͷ࣮ߦ

  29. ςετͷࣦഊ͕ ৄࡉʹදࣔ͞ΕΔ 74$PEFͰQZUFTUͷ࣮ߦ

  30. 1Z$IBSNͱ͸ • ߴ඼࣭ͳ*%& • 8JEPXT049-JOVYͰಈ࡞Մೳɻ • 1SPGFTTJPOBM&EJUJPOʢ༗ঈ൛ʣͱ$PNNVOJUZ&EJUJPOʢແঈ൛ʣ͕͋Δɻ • 8FC։ൃʹ͸1SPGFTTJPOBM&EJUJPO͕͓קΊɻ +BWB4DSJQUɺ$PGGFF4DSJQUɺ5ZQF4DSJQUɺ)5.-$44αϙʔτ

    ϑϨʔϜϫʔΫɿ%KBOHPɺ'MBTLɺ(PPHMF"QQ&OHJOFɺ1ZSBNJEɺXFCQZͷαϙʔτ σʔλϕʔεͱ42-ͷαϙʔτ • ༗ঈ൛ʹ͸೔ؒͷ ϑϦʔτϥΠΞϧ͕͋ΔͷͰ·ͣ͸ମݧɻ • ೔ຊޠઃఆ΋Մೳ ʢ&1-ϥΠηϯεͰผஂମ͕ఏڙʣ IUUQTRJJUBDPNTVFDIBSPJUFNTECCGG • ςετϑϨʔϜϫʔΫʹରԠʢ༗ঈ൛ͷΈʣ
  31. 1Z$IBSNʢ༗ঈ൛ʣͰQZUFTUͷઃఆ ʮ3VOʯϝχϡʔͷʮ&EJU$POGJHVSBUJPOTʯ͔ΒҎԼͷը໘Λ։͍ͯɺ ࠨ্ͷ ΛΫϦοΫͯ͠ʮ1ZUIPOUFTUTʯ͔ΒʮQZUFTUʯΛબ୒͢Δɻ

  32. 1Z$IBSNʢ༗ঈ൛ʣͰQZUFTUͷઃఆ /BNFʹ೚ҙͷ໊લΛೖྗͯ͠ɺ 5BSHFUʹ͸ UFTUͷ͋ΔϑΥϧμΛࢦఆ͢Δɻ

  33. 1Z$IBSNʢ༗ঈ൛ʣ͸ɺ ໰୊ͷ͋ΔՕॴͷ ϦϯΫ͕༻ҙ͞ΕΔͷͰ ͙͢ʹιʔε΁ભҠ͕Ͱ͖Δɻ 1Z$IBSNʢ༗ঈ൛ʣͰQZUFTUͷઃఆ

  34. $JSDMF$*ʹ͍ͭͯ

  35. $*$%ͱ͸ $* $% $POUJOVPVT*OUFHSBUJPO $POUJOVPVT%FMJWFSZ ܧଓతΠϯςάϨʔγϣϯ ܧଓతσϦόϦʔ ։ൃऀ޲͚ͷࣗಈԽϓϩηεɻ ৽͍͠ίʔυมߋ͕ఆظతʹϏϧυɺ ςετ͞Εɺ౷߹ϦϙδτϦʹ౷߹

    ͞ΕΔ͜ͱɻ όάͷࣗಈൃݟɺख࡞ۀͷഉআɺೲ ظ୹ॖͳͲͷ։ൃޮ཰Խ͕໨తɻ ։ൃऀʹΑΔมߋΛϦϙδτϦ͔Β ຊ൪؀ڥʹࣗಈతʹϦϦʔε͠ɺސ ٬͕࢖༻Ͱ͖ΔΑ͏ʹ͢Δ΋ͷɻ ৽نίʔυͷಋೖ࡞ۀͷෛ୲Λ࠷খ ݶʹ͢Δͷ΋໨తɻ
  36. $JSDMF$* Ϗϧυɿιʔείʔυ͔Β࣮ߦՄೳͳΞϓϦέʔγϣϯΛߏங͠·͢ɻ ʢ%PDLFSΠϝʔδͷQVMMɺґଘύοέʔδͷΠϯετʔϧɺίϯύΠϧʣ ςετɿ65ͳͲͷςετίʔυΛ࣮ߦͯ͠ಈ࡞֬ೝΛͨ͠ΓɺίʔυελΠϧνΣοΫΛߦ͏ɻ σϓϩΠɿϏϧυͯ͠ςετ͕௨ͬͨ΋ͷΛຊ൪؀ڥ΍ݕূ؀ڥͳͲʹϦϦʔε͠·͢ɻ • Ϋϥ΢υܕͷ$*$%αʔϏεʢ4BB4ʣ • (JU)VC·ͨ͸(JU#VDLFUͱ࿈ܞ͠ͳ͕Β࢖͏ •

    QSJWBUFϦϙδτϦͰ΋ແྉ • $JSDMF$*ͷ7.ʹ44)઀ଓͯ͠σόοά͕Մೳ
  37. ୅දతͳΫϥ΢υؔ࿈ςΫϊϩδʔͷҰཡ Cloud Native Computing Foundation作成 : IUUQTMBOETDBQFDODGJP

  38. ୅දతͳΫϥ΢υؔ࿈ςΫϊϩδʔͷҰཡ Cloud Native Computing Foundation作成 : IUUQTMBOETDBQFDODGJP ֦େ͢Δͱ ൃݟʂʂ

  39. ʢิ଍ʣ(JU)VC"DUJPOT $JSDMF$*ͷϫʔΫϑϩʔͱ΄΅ಉ͡ػೳ ʻϝϦοτʼ ɾ(JU)VC͚ͩͰϫʔΫϑϩʔΛ׬݁Ͱ͖Δͷ͸ັྗ ʻσϝϦοτʼ ɾ$JSDMF$*΄Ͳࡉ͔͍ઃఆ͸Ͱ͖ͳ͍ɻ ɾੑೳɾ҆ఆੑʢ$JSDMF$*ͷ7.ʹൺ΂Δͱײ֮తʹ͔ͳΓ஗͍ʣ ɾύΠϓϥΠϯ·Ͱͷ੍ޚ͸ͳ͍ʢ$JSDMF$*ͷ৽ػೳʣ IUUQTXXXBNB[PODPKQEQ IUUQTNJZBKBOCPPUIQNJUFNT

  40. $JSDMF$*ͷϓϥϯ IUUQTDJSDMFDJKQQSJDJOH

  41. $JFDMF$*͕৽6*ʹͳΓɺ͞Βʹݟ΍͘͢ͳͬͨ چ6* ৽6*

  42. ϩʔΧϧ؀ڥ΁ͷηοτΞοϓ NBD %PDLFS͕ೖ͍ͬͯͳ͍৔߹͸ɺΠϯετʔϧɻ $JSDMF$*ͷΠϯετʔϧ

  43. αϯϓϧίʔυʢ(JU)VCʣ https://github.com/abenben/circleci-pytest-2020 αϯϓϧ͸ͪ͜Βͷ(JU)VCͰެ։

  44. ϓϩδΣΫτͷߏ੒ $JSDMF$*ͷઃఆϑΝΠϧ ιʔείʔυ ςετίʔυ QZUFTUͷઃఆʢԿ͔͋Ε͹ʣ

  45. $JSDMF$*ͷઃఆʢجຊఆٛɾ༻ޠʣ δϣϒͷதͰڞ௨͢Δॲཧ͸ɺ ίϚϯυͱͯ͠ఆٛͰ͖·͢ɻ TUFQʢεςοϓʣɿ ୯ҰͷίϚϯυɻ KPCʢδϣϒʣɿ ୯ҰͷFYFDVUPS্Ͱ࿈ଓ࣮ͯ͠ߦ͢Δεςοϓ ͷू߹ɻ XPSLGMPXʢϫʔΫϑϩʔʣɿ δϣϒͷू߹ɻ࣮ߦॱং͸೚ҙʹઃఆɻ

    PSCɿ طଘͷ$JSDMF$*ઃఆ͔Β࢖͍͍ͨͱ͚ͩ͜࢖͑Δ ศརͳ৽ػೳɻQZUIPOPSCT΋ެ։͞ΕͯΔͷͰ ࢖ͬͪΌ͓͏ɻ DPNNBOEɿ Ұ࿈ͷεςοϓͷఆٛΛ֎ͩͨ͠͠΋ͷɻ ύΠϓϥΠϯʢDPOGJHZNMϑΝΠϧͦͷ΋ͷʣɿ Ϗϧυ͕τϦΨʔ͞Εͨͱ͖ʹ࣮ߦ͞ΕΔϫʔΫ ϑϩʔΛؚΉɺઃఆϑΝΠϧશମɻϫʔΫϑϩʔ Λแؚ͢Δɻ
  46. $JSDMF$*ͷઃఆʢδϣϒʣ TUFQʢεςοϓʣɿ ୯ҰͷίϚϯυɻ KPCʢδϣϒʣɿ ୯ҰͷFYFDVUPS্Ͱ࿈ଓ࣮ͯ͠ߦ͢Δεςοϓ ͷू߹ɻ XPSLGMPXʢϫʔΫϑϩʔʣɿ δϣϒͷू߹ɻ࣮ߦॱং͸೚ҙʹઃఆɻ PSCɿ طଘͷ$JSDMF$*ઃఆ͔Β࢖͍͍ͨͱ͚ͩ͜࢖͑Δ

    ศརͳ৽ػೳɻQZUIPOPSCT΋ެ։͞ΕͯΔͷͰ ࢖ͬͪΌ͓͏ɻ DPNNBOEɿ Ұ࿈ͷεςοϓͷఆٛΛ֎ͩͨ͠͠΋ͷɻ ύΠϓϥΠϯʢDPOGJHZNMϑΝΠϧͦͷ΋ͷʣɿ Ϗϧυ͕τϦΨʔ͞Εͨͱ͖ʹ࣮ߦ͞ΕΔϫʔΫ ϑϩʔΛؚΉɺઃఆϑΝΠϧશମɻϫʔΫϑϩʔ Λแؚ͢Δɻ
  47. $JSDMF$*ͷઃఆʢϫʔΫϑϩʔʣ TUFQʢεςοϓʣɿ ୯ҰͷίϚϯυɻ KPCʢδϣϒʣɿ ୯ҰͷFYFDVUPS্Ͱ࿈ଓ࣮ͯ͠ߦ͢Δεςοϓ ͷू߹ɻ XPSLGMPXʢϫʔΫϑϩʔʣɿ δϣϒͷू߹ɻ࣮ߦॱং͸೚ҙʹઃఆɻ PSCɿ طଘͷ$JSDMF$*ઃఆ͔Β࢖͍͍ͨͱ͚ͩ͜࢖͑Δ

    ศརͳ৽ػೳɻQZUIPOPSCT΋ެ։͞ΕͯΔͷͰ ࢖ͬͪΌ͓͏ɻ DPNNBOEɿ Ұ࿈ͷεςοϓͷఆٛΛ֎ͩͨ͠͠΋ͷɻ ύΠϓϥΠϯʢDPOGJHZNMϑΝΠϧͦͷ΋ͷʣɿ Ϗϧυ͕τϦΨʔ͞Εͨͱ͖ʹ࣮ߦ͞ΕΔϫʔΫ ϑϩʔΛؚΉɺઃఆϑΝΠϧશମɻϫʔΫϑϩʔ Λแؚ͢Δɻ
  48. $JSDMF$* 0SCT 1ZUIPO༻ IUUQTDJSDMFDJDPNPSCTSFHJTUSZPSCDJSDMFDJQZUIPO

  49. ϩʔΧϧ1$্ͷ%PDLFSͰಈ࡞Λ֬ೝ͢Δ͜ͱ΋Ͱ͖Δ ஫ҙɿϩʔΧϧͰ͸ϫʔΫϑϩʔ͸ αϙʔτ͠ͳ͍ͷͰ+0#୯ҐͰ࣮ߦ͠·͢ ஫ҙɿϩʔΧϧͰɺ࣮ߦ Ͱ͖ͳ͍΋ͷ΋͋Δɻ DJSDMFDJMPDBMFYFDVUFKPCUFTU@BEE@TVCUSBDU

  50. ϩʔΧϧ1$্Ͱ$JSDMF$*ͷઃఆϑΝΠϧΛνΣοΫ DJSDMFDJ DPOGJHWBMJEBUF $POGJHGJMFBUDJSDMFDJDPOGJHZNM JTWBMJE

  51. ૣ଎ɺ4BB4൛$JSDMF$*Λར༻࢓༷ʂ ·ͣ͸Ϣʔβʔొ࿥͔Β

  52. ϓϩδΣΫτΛϑΥϩʔ͢Δ ॳճϩάΠϯ௚ޙ͸ɺͲͷ(JU)VCͷϓϩδΣΫτͱ΋࿈ܞ͍ͯ͠ͳ͍ͷͰɺ ʮ'PMMPX1SPKFDUTʯΛԡͯؔ͠࿈෇͚Λ͢Δɻ

  53. (JU)VCͷϓϩδΣΫτ΁ؔ࿈͚ͮ બ୒͢Δ

  54. (JU)VC΁ͷؔ࿈͚ͮ௚ޙʹࣗಈͰ$*͕࣮ߦ͞ΕΔ ͭͷςετ͕ಉ࣌ʹz3VOOJOHதzɻ ৄࡉ͕ݟ͚ͨΕ͹ ʮUFTU@DBMDVMBUPSʯͷϦϯΫͰ֬ೝ

  55. ϫʔΫϑϩʔͰঢ়گΛ֬ೝ ͔͚ࢉɾΘΓࢉͷςετͰԿ͔ࣦഊʢ'"*-&%ʣͯ͠Δʂ˔ΛΫϦοΫ͠Α͏ ςετ͕ฒྻͰߦΘΕ͍ͯΔͷΛ֬ೝͰ͖Δ

  56. ʢࢀߟʣύΠϓϥΠϯը໘͔Β΋֬ೝͰ͖Δ ͔͚ࢉɾΘΓࢉͷςετͰԿ͔ࣦഊʢ'"*-&%ʣͯ͠Δʂ˔ʮ'BJMFEʯΛΫϦοΫͯ֬͠ೝ

  57. ͔͚ࢉͷςετ͕ࣦഊ ºͷ݁Ռ͕  Ͱ ºͷ݁Ռ͕  ͬͯɺɺɺ ͜Ε଍͠ࢉʹͳͬͯΔʁʁ

  58. $JSDMF$*ͱ4MBDLΛ࿈ܞ͢Δ TMBDL༻ͷPSCTͳͲ΋ެ։͞Ε͍ͯΔɻ ˞چ6*ը໘ʹ੾Γସ͑Δͱɺ6*͔ΒTMBDLͷ8FCIPPL63-Ͱ΋࿈ܞͰ͖·͢ʢࣗ෼͸ͪ͜ΒͰઃఆʣɻ

  59. 4MBDLͰ΋௨஌Λड͚ΕΔʢࣦഊʂʣ ৄࡉ৘ใ΁ͷϦϯΫ͕ ͨ͘͞Μ͋ͬͯ ΊͪΌΊͪΌ਌੾ʂ

  60. 44)઀ଓͯ͠αʔόʔͰͷσόοά͕Մೳ ͜͜Λ ΫϦοΫ αʔόʔ΁ 44)ํ๏͕ग़ͯ͘Δ 44)Ͱ઀ଓͯ͠ QZUFTUΛQECͰσόοά

  61. όάΛमਖ਼͢Δ

  62. (JU)VC΁1VTI 1Z$IBSN͔Β

  63. $JSDMF$*͕ࣗಈͰ࠶࣮ߦ͢Δ

  64. ςετ͸੒ޭͨ͠ɻ͕ɺ৽ͨͳ໰୊ൃੜʂ ςετͷΧόϨοδͰࣦഊʢ'"*-&%ʣͯ͠Δʂ˔ʮ'BJMFEʯΛΫϦοΫͯ֬͠ೝ

  65. ίʔυͷத͕શ෦ςετ͞Εͯͳ͍ʂ

  66. ςετΧόϨοδ͕໿͔͠ͳ͍

  67. ΧόϨοδϨϙʔτʢ"35*'"$54ʣΛ֬ೝ͢Δ ͜͜ΛΫϦοΫ

  68. QZUFTUDPWͷ݁ՌΛ֬ೝ *OEFYIUNMΛݟΔ

  69. ςετ͞Ε͍ͯͳ͍ՕॴΛಛఆ ΧόϨοδ͕ͷ DBMDVMBUPSQZͷϦϯΫ͔Β ৄࡉΛ֬ೝ͢Δ ʮ͋ΕͬʁΘΓࢉͷςετ͕͞Εͯͳ͍ʂʁʯ ʢςετίʔυΛݟͯΈΑ͏ʂʣ

  70. ΘΓࢉͷςετΛνΣοΫ ʮ͋ɺ͜Μͳͱ͜ΖʹSFUVSO͕ʯ ʢʹςετͯ͠ͳ͔ͬͨ׼ʣ lSFUVSOzΛ࡟আ͠·͢ɻ

  71. मਖ਼ͯ͠(JU)VC΁1VTI 1Z$IBSN͔Β

  72. গ͢͠Δͱɺ4MBDL͔Β$JSDMF$*੒ޭͷ௨஌

  73. $JSDMF$*ͷδϣϒ΋શ෦੒ޭʘ ?0? ʗ ϫʔΫϑϩʔ͔Βݟͯ΋ %FQMPZ·Ͱ੒ޭͯ͠ΔͷΛ֬ೝ

  74. $JSDMF$*ύΠϓϥΠϯ ґଘؔ܎ͷͳ͍࡞ۀ͸ɺϫʔΫϑϩʔຖʢྫɿ$*$%ͱυΩϡϝϯτެ։ʣʹ४උͯ͠ ಉ࣌ʹ΍ͬͪΌ͍·͠ΐ͏ʂ

  75. $%ͷ෦෼ʹ͍ͭͯ ࣌ؒͷ౎߹Ͱɺઆ໌Λলུ͠·͢ɻ  @@  $JSDMF$*͔Βෳ਺ͷ8FC ΞϓϦέʔγϣϯαʔό΁σϓϩΠɺ 'BB4 'VODUJPOBTB4FSWJDFʣʹ΋σϓϩΠͰ͖·͢ɻ ฒྻͰςετΛߦͬͯɺશͯͷςετ͕׬͔ྃͯ͠Β

    ҰׅͰσϓϩΠ͢ΔͳͲͷಉظΛߦ͏͜ͱ΋Ͱ͖·͢ɻ 'BB4"84 -BNCEB (PPHMF $MVEF 'VODUJPOT "[VSV 'VODUJPOT ࠓճ͸આ໌͖͠Ε·ͤΜͰ͕ͨ͠ɺ $JSDMF$*ʹ͸෼ࢄॲཧʢ1BSBMMFMJTNʣͳͲɺ ଞʹ΋ศརͳػೳ͕ͨ͘͞ΜඋΘ͍ͬͯ·ͨ͠ɻ
  76. 74$PEFͷ$JSDMF$*֦ுػೳ ᶅ$JSDMF$*֦ுΛ Πϯετʔϧ͢Δ ᶆ$JSDMF$*ͷΩʔΛઃఆ͢Δ ᶇ͜͜ΛΫϦοΫ͢Δͱ$JSDMF$*ͷ4BB4Λදࣔ ᶃ$JSDMF$*ͷϢʔβઃ ఆΛදࣔ ᶄ1FSTPOBM"1*5PLFOͰ೚ҙͷτʔΫϯΛ࡞੒

  77. ·ͱΊ ü ػցʹͰ͖Δ࡞ۀ͸ۃྗࣗಈԽ͠Α͏ʂ ʢࣗ෼΍஥ؒͷແବΛݮΒͤΔʣ

  78. ΤϯδχΞืूதͰ͢ʂ IUUQTJHMPCBMTPDJFUZDPNDBSFFST ۀ຿ৄࡉ 8FCΞϓϦέʔγϣϯ੍࡞ɾӡ༻ ΞϓϦέʔγϣϯɺαʔϏεվળͷϓϥϯχϯάࢀՃ Ԡืࢿ֨ Լهͷ஌ࣝɺεΩϧɺܦݧΛ͓࣋ͪͷํ •+BWB3VCZ1ZUIPO1)1$4DBMB(PͳͲͷϓϩάϥϛϯ άݴޠΛ࢖༻ͨ͠ɺαʔόʔαΠυϓϩάϥϜ։ൃͷܦݧ •8FCαʔϏεͷӡ༻ܦݧ

    •3%#.4ར༻ܦݧ •αʔόʔαΠυͷ஌ࣝ ׻ܴεΩϧ Լهͷ஌ࣝɺεΩϧɺܦݧΛ͓࣋ͪͷํ •$*πʔϧར༻ܦݧ •ΞδϟΠϧ։ൃͷܦݧ •"NB[PO8FC4FSWJDF &$ 3%4 4౳ •8FCΞϓϦέʔγϣϯϑϨʔϜϫʔΫͷར༻ܦݧ •+4ϑϨʔϜϫʔΫར༻ͷܦݧʢ7VFKT BOHVMBS3FBDUKT ͳͲ •+BWB4DSJQU $44 )5.- •(JU •ϓϩδΣΫτ؅ཧπʔϧʢ+JSB3FENJOF#BDLMPH౳ʣͷ஌ࣝ •/P42-ར༻ܦݧ •ϑϩϯτΤϯυͷ஌ࣝ •όϥϯεྑ͍Ϗδωε஌ࣝ