Save 37% off PRO during our Black Friday Sale! »

Unityテスト完全に理解した(実機、自動、利のあるテストに食らいつく話)

192c4eae3cef3307bbd1d76ec873ba9e?s=47 Toru
June 06, 2018

 Unityテスト完全に理解した(実機、自動、利のあるテストに食らいつく話)

2018/06/06 開催の[Unityテスト完全に理解した]というイベントでの死霊です。

iOSでの実機デモの動画とかはgithubにあったりする。

https://github.com/sassembla/CompletelyUnderstoodUnityTest/tree/master

192c4eae3cef3307bbd1d76ec873ba9e?s=128

Toru

June 06, 2018
Tweet

Transcript

  1. 6OJUZςετ ׬શʹཧղͨ͠ ࡴҙۦಈ։ൃ @toru_inoue by KISSAKI Inc

  2. ʮ࣮ػɺࣗಈɺརͷ͋Δςετʹ ৯Β͍ͭ͘࿩ʯͱ͍͏ͷΛ͢Δɻ ૣ͍࿩ɺ6OJUZͰͷςετͰ͜Μͳͷ΍ͬͯΔΑɺ ͜͏͍͏རӹ͕͋ΔΑɺΈ͍ͨͳ঺հͷ࿩ɻ

  3. ࣗ෼ͷ࿩ גࣜձࣾ,*44",*Ͱ6OJUZ͍ͬͨ͡Γ ͿΒͿΒͨ͠Γαʔό࡞ͬͨΓ͍ͯ͠ΔΑɻ ৭ΜͳΞηοτ࡞ͬͯ๭͔ࣾΒެ։ͨ͠Γͱ͔ɻ w "TTFU(SBQIͱ͔ ݪҼɺॳظ։ൃऀ  w ࠷ۙ͸ͳ͔ͥେن໛഑৴ܥΛ࡞͍ͬͯΔ

  4. ࣗ෼ͷ࿩ ܦྺ ίϯγϡʔϚ ˠ8FC J04"OESPJE ˠ6OJUZ ήʔϜ  8FCͷ࣌ʹ΍ͬͯͨςετ͕ 6OJUZͰ΋Ͱ͖Δͱ͍͍ͳʙͱ͍͏ͷ͕ݪ఺ɻ

  5. લޱ্ ςετϑΝʔετ͡Όͳ͖Όμϝʂ ͱ͔ɺ QSJWBUFͳϝιουͷςετ͸ʙ Έ͍ͨͳ͜ͱ͸ɺࠓ೔ͷ࿩Ͱ͸Ͳ͏Ͱ΋͍͍ͱ ࢥ͍ͬͯΔͷͰ࿩୊ʹڍ͛ͳ͍ɻ

  6. લޱ্ 6OJUZͰߦ͑Δߦ͖ͬͯͨςετͱɺ ςετΛߦ͏͜ͱʹΑΓಘΒΕΔརӹʹ ϑΥʔΧεͯ͠΍͍ͬͯ͘ɻ

  7. ࠓ೔࿩͢಺༰  ࠓ೔࿩͢ςετͷ۠෼  ݱࡏͷ6OJUZͰͷςετ࣮ྫ঺հ  Φεεϝͷςετํ਑ͱརӹͷ঺հ

  8. ࠓ೔࿩͢ςετͷ۠෼

  9. Α͋͘ΔςετͷׅΓ ςετʂͱ͍͑͹ɺ ϝονϟେ͖͘͜ΜͳׅΓ͕͋ΔΜ͚ͩͲɺ ୯ମςετ΄͔ &&ςετ 6*ૢ࡞Λߦ͏ςετ

  10. &&ςετ 6*ૢ࡞Λߦ͏ςετ ࠓճ͸୯ମςετ΄͔ɺΛϝΠϯʹɺ &&ςετ͸൪֎Ͱͪΐͬͱ৮ΕΔɺΈ͍ͨͳײ͡ɻ ୯ମςετ΄͔ Α͋͘ΔςετͷׅΓ

  11. ͸͠Ό͍Ͱॻ͍ͨΒڪΖ͍͠จྔʹͳͬͯ͠·ͬͯɺ ࣌ؒݟͨΒશવ଍Γͳ͔ͬͨΜͰɺ ࠓճͷϝΠϯςʔϚ͸&&Ҏ֎ͷςετɻ &&ͷࢿྉ͸ɺ͜ͷ຤ඌʹࡌ͚ͬͯ͋Δɻ &&ͷσϞݟ͍ͨਓ͸࠙਌ձͰͰ΋ɻ ͢·ͳ͍ɺ&&͸ಡΈ෺ʹͳͬͯ ͠·ͬͨɻ

  12. ݱࡏͷUnityͰͷ ςετ࣮ྫ঺հ

  13. ݱࡏͷ6OJUZͰͷςετ 6OJUZ͔Β6OJUZ5FTU 1MBZ.PEF5FTU͕ ࢖͑ΔΑ͏ʹͳͬͯɺ 6OJUZ5FTU IUUQTEPDTVOJUZEDPN.BOVBMUFTUJOHFEJUPSUFTUTSVOOFSIUNM 6OJUZͰͷςετͷՁ஋͕େ෯ʹ૿͑ͨɻ

  14. ݱࡏͷ6OJUZͰͷςετ 6OJUZ͔Β6OJUZ5FTU 1MBZ.PEF5FTU͕ ࢖͑ΔΑ͏ʹͳͬͯɺ 6OJUZ5FTU IUUQTEPDTVOJUZEDPN.BOVBMUFTUJOHFEJUPSUFTUTSVOOFSIUNM 6OJUZͰͷςετͷՁ஋͕େ෯ʹ૿͑ͨɻ w ެࣜͳͷͰਓʹקΊΔ͜ͱ͕Ͱ͖Δʂ w

    ΋͏ͪΐͬͱͳͱ͜Ζ͸͋Δʂʂͦ͜͸ࣗ࡞πʔϧͰΧόʔɻ
  15. ݱࡏͷ6OJUZͰͷςετ ࠓճ͸ओʹ1MBZ.PEF5FTUͷ࿩Λ͢Δɻ w 6OJUZʹ͸&EJU.PEFͱ1MBZ.PEFͷ͕ͭ͋Δ w 1MBZ.PEF͸1MBZதঢ়ଶͰಈ͘΄΅1MBZಉ༷ w &EJU.PEF͸ٯɺ1MBZঢ়ଶͰ͸ͳׂ͍ͱಛघ

  16. ݱࡏͷ6OJUZͰͷςετ 1MBZ.PEFͩͱಈ͕͘ɺ&EJUͩͱಈ͔ͳ͍ػೳ͕ɺɺ Πϕϯτ͕ணՐ͠ͳ͍ɺਐߦఀࢭ͢Δ  ͱ͔͕͋ΔͨΊɺ1MBZ.PEF͕͓͢͢Ίɻ ͱ͍͏͔&EJU.PEFΛੜ͔͢ϙΠϯτ͸ಛʹ͸ɺɺ ϥΠϒϥϦͱ͔6OJUZʹؔ܎͕ͳ͍΋ͷͱ͔ɺɺ

  17. ݱࡏͷ6OJUZͰͷςετ ͜Μͳ΍ͭɻ w σϑΥͰೖͬͯΔ Ҏ߱  w 8JOEPX5FTU3VOOFSͰ։͘ w ΤσΟλͰςετ࣮ߦ

    w ࣮ػΛ༗ઢ઀ଓˠςετ࣮ߦ ͱ͔͕Ͱ͖Δɻ ϝονϟૉ੖Β͍͠ɻ
  18. 6OJUZ5FTUͷ͍͍ͱ͜Ζ ίʔυॻ͘ɻ [UnityTest] public IEnumerator Waaaaaaaai() { /* IEnumeratorΛฦ͢ϝιουͰςετΛॻ͘͜ͱ͕Ͱ͖Δɻ ͜ΕʹΑͬͯɺಛఆͷ৚͕݅੔͏·ͰඇಉظͰ଴ͬͨΓɺ

    ޷͖ͳλΠϛϯάͰίʔυʹׯবͰ͖ͨΓ͢Δɻ */ while (true) { yield return null; } } ͜ͷςετϝιου͕ɺຖϑϨʔϜɺ Updateͷ͋ͱɺLateUpdateͷલʹݺ͹ΕΔɻ
  19. ݱࡏͷ6OJUZͰͷςετ ܽ఺ w ࣮ػΛ༗ઢ઀ଓ͠ͳ͍ͱ࣮ػςετ͕Ͱ͖ͳ͍ w 4FUVQ5FBSEPXO͕WPJE͔͠ฦͤͳ͍ͷͰ ಉظతͳ͜ͱ͔͠Ͱ͖ͣɺࣗ༝౓͕௿͍ [SetUp] public void

    Setup2() { Debug.Log(“OK“); }
  20. ݱࡏͷ6OJUZͰͷςετ ܽ఺ w ࣮ػΛ༗ઢ઀ଓ͠ͳ͍ͱ࣮ػςετ͕Ͱ͖ͳ͍ w 4FUVQ5FBSEPXO͕WPJE͔͠ฦͤͳ͍ͷͰ ಉظతͳ͜ͱ͔͠Ͱ͖ͣɺࣗ༝౓͕௿͍ [SetUp] public IEnumerator

    Setup2() { Debug.Log(“ͳΜ͔଴ͭʂ!"); yield return null; } ͜ͷίʔυ͸ ࣮ߦΤϥʔʹͳΔɻ
  21. ݱࡏͷ6OJUZͰͷςετ ܽ఺ w ࣮ػΛ༗ઢ઀ଓ͠ͳ͍ͱ࣮ػςετ͕Ͱ͖ͳ͍ w 4FUVQ5FBSEPXO͕WPJE͔͠ฦͤͳ͍ͷͰ ಉظతͳ͜ͱ͔͠Ͱ͖ͣɺࣗ༝౓͕௿͍ ੯͍͠ɺɺɺɺ ͳͷͰɺ

  22. ࣗ෼͸.JZBNBTV͍ͬͯ͏6OJUZ5FTUͷ֦ுπʔϧ Λ࢖ͬͯ΍͍͍ͬͯͬͯΔɻ .JZBNBTV IUUQTHJUIVCDPNTBTTFNCMB.JZBNBTV IUUQTTBTTFNCMBHJUIVCJP1VCMJD IUNM ݱࡏͷ Զͷ 6OJUZͰͷςετ

  23. ݱࡏͷ Զͷ 6OJUZͰͷςετ ͜Μͳ΍ͭɻ w 1MBZ࣌ɺ6*Ͱςετਐḿදࣔ w ΤσΟλͷ6OJUZ5FTUͷ(6* ͔Β࣮ߦՄೳ ;͗͠

     w ࣮ػͰςετ࣮ߦ ˠ4MBDLʹΤϥʔͱ͔εΫγϣ6Q w 4FUVQ5FBSEPXO͕ඇಉظՄ ͱ͔͕Ͱ͖Δɻ
  24. ࠓ͔Β঺հ͢Δͷ͸"VUPZB͍ͬͯ͏ ήʔϜϑϨʔϜϫʔΫͷςετɻ ೝূɺ՝ۚɺӬଓԽɺ"TTFU#VOEMFͷ ίϯτϩʔϧػߏͱ͔Λɺ J04NBD04"OESPJE8JOEPXTͱ͍ͬͨ ϓϥοτϑΥʔϜͰςετͯ͠Δɻ ࣗ෼͕Α͘΍ͬͯΔ ςετͷखॱ

  25. ࣗ෼͕Α͘΍ͬͯΔ ςετͷखॱ ͜ΜͳςετΛ͸͠Β͍ͤͯΔΑ ࣮ԋ 1. ΤσΟλͰͷςετ 2. ΤσΟλͰͷ࣮ߦ࣌ςετ 3. ࣮ػͰͷ࣮ߦ࣌ςετ

  26. ՝ۚॲཧ ˠαʔόʹૹ෇͢Δॠؒʹ՝ۚػߏΛམͱ͢ ˠະࡁͷSFDFJQU͕ϓϥοτϑΥʔϜʹ࢒Δ ˠ՝ۚػߏΛ࠶ىಈ ˠະࡁSFDFJQUΛरͬͯαʔόʹ౤͛Δ खͰ͸λΠϛϯά͕ϐʔΩʔ͗ͯ͢ ͱͯ΋Ͱ͖ͳ͍Α͏ͳ͜ͱ΋ɺςετͳΒͰ͖Δɻ ςετͷརӹ جຊ

  27. ݅௒ͷςετʹରͯ͠ɺ ΤσΟλͰͷ׬૸ʹ෼ɻ ࣮ػ1MBZ࣌ͷ׬૸ʹ෼ɻ ࣮ػͰͷ՝ۚॲཧΛؚΉ໿ճͷςετΛɺ ͜Ε͚ͩͷ࣌ؒͰ͜ͳ͍ͯ͠Δɻ ςετͷརӹ جຊ

  28. 5FTU'BJM͕ग़ͳ͍ݶΓ͸ɺ ςετ͕௨͍ͬͯΔػೳ͸݈ࡏɺ Έ͍ͨͳ֬ೝ͕ΦʔτϚνοΫʹͰ͖ΔΑͶɺ ͱ͍͏ɻ ςετͷརӹ جຊ

  29. جຊతͳ<ςετͷརӹ>Λͬ͘͟Γྻڍ͢Δͱɺ w ͿͬյΕΛݕ஌Ͱ͖Δ w Ͳ͜·ͰյΕ͍ͯΔ͔ͷ൑அࡐྉʹͳΔ w ࠶ݱˠम෮·Ͱͷ͕࣌ؒۃݶ·Ͱ୹ॖͰ͖Δ w ࠶ൃ༧๷͕Ͱ͖Δ w

    ͜͜Ζ͕҆Β͙ ਫ਼ਆ໘  w ମྗ͕ݮΒͳ͍ঢ়ଶͰ༡΂Δ ೑ମ໘  ͳͲɻ ςετͷརӹ جຊ
  30. ͱ͍͏Θ͚Ͱ ࣗ෼ͷฏԺΛ࡞Γग़͍ͯ͠ΔςετΛ঺հɻ ςετͷརӹ جຊ

  31. ςετίʔυ঺հ

  32. ࣮ࡍͷςετίʔυ ͜ͷ΁Μʹ΍·΄Ͳ͋Δ "VUPZB IUUQTHJUIVCDPNTBTTFNCMB"VUPZBUSFFNBTUFS"TTFUT"VUPZB5FTUT5FTUT ೝূɺ՝ۚɺӬଓԽɺ"TTFU#VOEMFͱ͔Λ J04NBD04"OESPJE8JOEPXTͰςετͯ͠Δɻ

  33. • PlayModeͰͷςετ • ػೳ͝ͱͷ୯ମςετ x N • ػೳଋͶͨΠϯςάΆ͍ͷ x N

    ࣮ࡍͷςετίʔυ
  34. • PlayModeͰͷςετ • ػೳ͝ͱͷ୯ମςετ x N • ػೳଋͶͨΠϯςάΆ͍ͷ x N

    ࣮ࡍͷςετίʔυ ˠ༷ʑͳػೳ΍ͦͷू߹ͷςετ͕͋Δɻ ςετ͍ͯ͠Δର৅͸ଟ࠼ɻ ͕ɺϑΥʔϚοτ͸࣮͸ϫϯύλʔϯɻ
  35.  લఏΛἧ͑ͯ TFUVQ   ςετ൑அ  ͓ΘͬͨΒ͓ย͚ͮ UFBSEPXO 

    4FUVQ ςετέʔε 5FBSEPXO ΦʔιυοΫεͳςετ ςετ࣮ߦ ࣍ͷςετ͕͋Ε͹࣮ߦ
  36. 4FUVQ ςετέʔε 5FBSEPXO ςετ࣮ߦ ࣍ͷςετ͕͋Ε͹࣮ߦ ςετέʔε͕ॴଐ͢ΔεΠʔτ୯ҐͰ ڞ௨ͷॳظԽॲཧɻ ྫ͑͹ςετର৅ͷΠϯελϯεΛ࡞ Δͱ͔ɻ ΦʔιυοΫεͳςετ

  37. 4FUVQ ςετέʔε 5FBSEPXO ςετ࣮ߦ ࣍ͷςετ͕͋Ε͹࣮ߦ ςετέʔεຊମɺ ྫ͑͹ “SetupͰnewͨ͠Πϯελϯεͷ ͋ΔϝιουΛ࣮ߦͯ͠ɺ ͦͷ݁Ռ͕ظ଴ͨ͠΋ͷ͔ʁ”

    ͱ͔Λɺ&RVBMTϝιουͱ͔Ͱൺֱɻ ΦʔιυοΫεͳςετ
  38. 4FUVQ ςετέʔε 5FBSEPXO ςετ࣮ߦ ࣍ͷςετ͕͋Ε͹࣮ߦ ςετέʔεͷ݁Ռ͕Ͳ͏͋Εɺ 4FUVQͰ࡞੒ͨ͠΋ͷΛย෇͚Δɻ ͜͜Ͱࣦഊ͢Δͱ࣍ͷςετ͕ ίέͨΓָ͍ͯ͠͠ɻ ΦʔιυοΫεͳςετ

  39. 4FUVQ5FTU5FBSEPXO 6OJUZͰࣗ෼͕ॻ͍͍ͯΔςετ΋ɺ جຊతʹ͸͜ͷϑΥʔϚοτΛ౿ऻ͍ͯ͠Δɻ 1MBZ.PEFͰͷςετ (+Miyamasu)

  40. 4FUVQ ςετέʔε 5FBSEPXO ςετ࣮ߦ 1MBZ.PEF ࣍ͷςετ͕͋Ε͹࣮ߦ 1MBZ.PEFͰͷςετ (+Miyamasu) ߏ੒͸Ұॹɻ ͕ͩɺ

  41. 4FUVQ ςετέʔε 5FBSEPXO ςετ࣮ߦ 1MBZ.PEF ࣍ͷςετ͕͋Ε͹࣮ߦ 1MBZ.PEFͰͷςετ (+Miyamasu) ͜ͷؒ͸ɺ6OJUZͷ1MBZதͱ શ͘ಉ͡ঢ়ଶʹͳΔɻ

    γʔϯΛ։͍ͨΓɺ (BNF0CKFDU୳ͨ͠Γࣗ༝ɻ 6OJUZ͕ಈ͍ͯΔঢ়ଶ ςετɻ ࣌ؒ࣠ঢ়ଶมԽ͕͋Δɻ
  42. 4FUVQ ςετέʔε 5FBSEPXO ςετ࣮ߦ 1MBZ.PEF ࣍ͷςετ͕͋Ε͹࣮ߦ 1MBZ.PEFͰͷςετ (+Miyamasu) 1MBZ.PEF͸ɺ ͜Ε΋͏ςετͱ͍͏͔

    ʮʙݸͷϝιουͰ ୹ฤήʔϜΛ૊Ήπʔϧʯ ͩͱࢥ͏ͱɺָɻ
  43. 1MBZ.PEFͰͷςετ (+Miyamasu) 6OJUZ͕ಈ͍ͯΔΜͰɺ͜Μͳςετ͕Մೳ ͓୊ɿ l.Z4DFOFγʔϯΛ։͍ͯɺ ര஄ (BNF0CKFDU ͕ஔ͔Ε͍ͯͯɺ ։͔࢝Β࠷େඵ ϥϯμϜ

    Ͱരൃɺ ര஄ (BNF0CKFDU ͸%FTUSPZ͞Εফ໓͢Δɻz ͱ͍͏ͷΛςετ͢Δɻ
  44. None
  45. ര஄

  46. 4FUVQ ςετέʔε 5FBSEPXO ςετ࣮ߦ 1MBZ.PEF ࣍ͷςετ͕͋Ε͹࣮ߦ .Z4DFOFͷ-PBE .Z4DFOFͷ6OMPBE 1MBZ.PEFͰͷςετ (+Miyamasu)

  47. .Z4DFOFͷ-PBE .Z4DFOFͷ6OMPBE 4FUVQ ςετέʔε 5FBSEPXO ςετ࣮ߦ 1MBZ.PEF ࣍ͷςετ͕͋Ε͹࣮ߦ “γʔϯʹ͋Δര஄Λݕࡧͯ͠ɺ ࠷େͰ5ඵ଴ͬͯɺ

    ͦͷؒʹര஄͕Destroy͞Εͯ ɹɹɹnullʹͳΔͷΛظ଴͢Δ” 1MBZ.PEFͰͷςετ (+Miyamasu)
  48. 4FUVQ5FBSEPXO GameObject bombCandidate; [MSetup] // MiyamasuͷsetupΞτϦϏϡʔτ public IEnumerator Setup() {

    var loadSceneOp = SceneManager.LoadSceneAsync("MyScene", LSM.Additive); while (!loadSceneOp.isDone) { yield return null; } // bombCandidateʹΠϯελϯεΛηοτ bombCandidate = GameObject.Find("Bomb"); IsNotNull(bombCandidate, “ര஄͕ɹͳ͍ʂ”); } [MTeardown] // MiyamasuͷteardownΞτϦϏϡʔτ public IEnumerator Treardown() { var unloadSceneOp = SceneManager.UnloadSceneAsync("MyScene"); while (!unloadSceneOp.isDone) { yield return null; }
  49. ςετϝιου ര஄ඵҎ಺ʹരൃ͢Δ͸ͣ [MTest]// MiyamasuͷtestҰ݅͝ͱͷΞτϦϏϡʔτ public IEnumerator BombWillBeDestroyedIn5sec() { /* ര஄͸MySceneͷϩʔυ͔Β࠷େ5ඵҎ಺ʹരൃɺDestroy͞ΕΔɺͱ͍͏૝ఆͳͷͰɺ

    bombCandidate͕nullʹͳΔ·Ͱ࠷େ5ඵ଴ͭɻ5ඵҎ্͔͔ͬͨΒtimeoutΤϥʔɻ */ yield return WaitUntil( () => bombCandidate == null, () => { throw new TimeoutException(“5ඵͨͬͯ΋രൃͯ͠ͳ͍ʂ"); }, 5.0 ); }
  50. 6OJUZ5FTU͸୯७ͳ*&OVNFSBUPSΛฦ͚ͩ͢ͳͷͰɺ ςετ͍ͨ͠ཁૉͷલఏ৚݅Λἧ͑ΔͨΊʹ ผͷςετΛར༻͢ΔɺΈ͍ͨͳͷ΋·͋͸͍ɻ ͪͳΈʹ

  51. ผͷςετΛ಺แ͢Δςετ ര஄͕രൃͯͨ͠Βۙॴͷఢ͕ࢮ͵ͷͰ͸ [MTest] public IEnumerator BombKillsNearEnemies() { // ര஄ͷۙॴʹ͍ΔఢΩϟϥΛݕ஌ var

    enemiesNearBomb = ര஄ͷۙॴʹ͍ΔఢΩϟϥΛݕ஌͢Δॲཧ(bombCandidate); // ര஄ͷരൃΛ଴ͭ var bombCoroutine = BombWillBeDestroyedIn5sec(); yield return bombCoroutine; // ര஄ͷۙॴʹ͍ͨఢΩϟϥͷੜࢮνΣοΫɺHP͕ݮ͍ͬͯΔ or ࢮΜͰ͍Δɺͱ͔ɻ foreach (var enemy in enemiesNearBomb) { False(enemy.IsAlive()); } }
  52. 1MBZ.PEFͰͷςετ͸ɺ ௨ৗͷςετͱҧͬͯϚοαϥͳঢ়ଶΛ࣋ͭ΋ͷͰ΋ ͳ͘ɺ 1MBZதʹಛఆͷςετΛ ೚ҙͷλΠϛϯάͰಈ͔ͤΔ΋ͷͰ΋ͳ͍ͷͰɺ ͦͷಛघੑΛ౿·͑ͨߟྀ࢖͍෼͚͕ඞཁɻ ஫ҙ఺

  53. w 1MBZதɺγʔϯ੾Γସ͑ޙʹɺ ϑϥά"͕ Φϑʹͳͬͯͯཉ͍͠ɺ ͱ͔ͷ༻్ͳΒ"TTFSUJPOͷ΄͏͕޲͍ͯΔ ͋ͬͯ͸ͳΒͳ͍͜ͱͷݕ஌  ߟྀ࢖͍෼͚

  54. w 1MBZதɺγʔϯ੾Γସ͑ޙʹɺ ϑϥά"͕ Φϑʹͳͬͯͯཉ͍͠ɺ ͱ͔ͷ༻్ͳΒ"TTFSUJPOͷ΄͏͕޲͍ͯΔ ͋ͬͯ͸ͳΒͳ͍͜ͱͷݕ஌  w 1MBZதͱಉ͡ঢ়ଶͰಈ͍ͯɺ <৚͕݅ἧ͏>ˠ<ͳΜ͔ߦ͏଴ͭ>ˠ<νΣοΫʂ>

    ͱ͍͏ྲྀΕΛ༻ҙ͍ͨ͠ͳΒςετΛॻ͜͏ɻ ߟྀ࢖͍෼͚
  55. Φεεϝͷςετํ਑ ͱ ͦͷརӹͷ঺հ

  56. • 1ඵͰऴΘΔࣄ৅ͷςετ͔Β • 1ϓϥοτϑΥʔϜςετ Φεεϝͷςετํ਑

  57. ୹࣌ؒͰऴΘΔɺͰ΋҆ఆ͠ͳ͍ɺɺ֬ೝΊΜͲ͍ɺɺ Έ͍ͨͳࣄ৅͕͋ͬͨΒɺ ͦͷ෦෼ʹରͯ͠ςετΛॻ͘ͷ͕͓͢͢Ίɻ ඵͰऴΘΔࣄ৅ͷ ςετͷ͓͢͢Ί ୹࣌ؒͳཁૉ΄Ͳςετ͠΍͍͢ɻ

  58. ςετ$ ඵ # ௥Ճ ςετ# ඵ " ௥Ճ ඵ͸·͋ద౰ͳΜ͚ͩͲɺ ͍͍ͩͨdඵ͘Β͍ͷൣғͰ࢝ΊΔͱָɻ

    ௒୹࣌ؒͳࣄ৅ʹର͢Δςετ͔Β ͩΜͩΜੵΈॏͶ͍ͯ͘ͱྑ͍ɻ ςετ" ඵ ඵͰऴΘΔࣄ৅ͷ ςετͷ͓͢͢Ί
  59. ྫɿ  ·ͣɺຊ౰ʹҰॠͰऴΘΔςετΛॻ͘ ᶃότϧελʔτͨ͠Βᶄ͜ͷ഑ஔͰ ᶅϢʔβʔೖྗΛ଴ͭϞʔυʹͳͬͯΔ͸ͣ ඵͰऴΘΔࣄ৅ͷ ςετͷ͓͢͢Ί

  60. ྫɿ  ·ͣɺຊ౰ʹҰॠͰऴΘΔςετΛॻ͘ ᶃότϧελʔτͨ͠Βᶄ͜ͷ഑ஔͰ ᶅϢʔβʔೖྗΛ଴ͭϞʔυʹͳͬͯΔ͸ͣ  ˢͷൃలܗΛॻ͍͍ͯ͘ ᶃΛຬͨͨ͠ΒᶄγϣοτϘλϯΛԡ͢ͱ ᶅ࣍ͷϑϨʔϜͰ͸ര஄Πϯελϯε͕ ग़ͯΔ͸ͣ

    ϑϨʔϜ ඵͰऴΘΔࣄ৅ͷ ςετͷ͓͢͢Ί
  61.  ͷൃలܥɺര஄Πϯελϯε͕ ग़ͯΔ͸ͣ ϑϨʔϜ   ͞ΒʹˢͷൃలܗΛॻ͍͍ͯ͘ ᶃΛຬͨͨ͠Β ᶄര஄͸࠷େඵҎ಺ʹരൃ ϑϨʔϜ

     ඵͰऴΘΔࣄ৅ͷ ςετͷ͓͢͢Ί
  62. ඵͰऴΘΔࣄ৅ͷ ςετͷ͓͢͢Ί ͠ΜͲ͍͜ͱ΋ɺͱͯ΋খ࢝͘͞ΊΔͱɺ ·͋ɺɺɺͳΜͱ͍͏͔ɺɺɺ ໘ന͘ͳΔ༨༟͕·ͩ͋Δͱ͍͏͔ɺɺɺ

  63. ඵͰऴΘΔࣄ৅ͷ ςετͷ͓͢͢Ί খ࢝͘͞Ίͯ·ͣརӹɺར఺ ʹςετͰ͖͍ͯΔ͜ͱ͕͋Δ ͱ͍͏ঢ়ଶΛ࡞Δͱɺଓ͚ͯߦ͘ͷָ͕ɻ ·ͨɺ৽ͨʹॻ͖ग़͢ͱ͖΋ָɻ

  64. ϓϥοτϑΥʔϜ ςετͷ͓͢͢Ί

  65. ϓϥοτϑΥʔϜςετͷ ͓͢͢Ί 6OJUZ͸ϚϧνϓϥοτϑΥʔϜɻ ͕ɺΤσΟλͷڍಈ͸͔ͳΓɺɺ͍ͩͿɺɺ ࠷ऴతʹήʔϜΛಈ͔͍ͨ͠1Gͱ͸ڍಈ͕ҟͳΔɻ ήʔϜຊདྷͷίʔυͰ͞΋͋ΓͳΜɺ ͭ·Γςετॻ͍ͯෳ਺1GͰ ಈ͔͢ͷ΋౰વେมɻ

  66. ϓϥοτϑΥʔϜςετͷ ͓͢͢Ί ͍͖ͳΓશ1GͰ ςετΛ௨ͦ͏ͱ͢Δͱਫ਼ਆతʹ٧Ή iOS/Android Windows macOS VR(Android) VR(PC) Android(low/high)

  67. ϓϥοτϑΥʔϜςετͷ ͓͢͢Ί ͲΕ͔ҰݸͰ͍͍ͷͰɺ ϓϥοτϑΥʔϜΛܾΊͯɺ ͜ͷϓϥοτϑΥʔϜͳΒશ෦ςετ௨Δʂ Έ͍ͨͳͷΛอ͓ͬͯ͘ͱਫ਼ਆతʹศརɻ

  68. ϓϥςετʹ ΦεεϝͷϓϥοτϑΥʔϜ 8):  ςετͷ࣮ߦָ͕ɺςετ࣮ߦˠࣦഊ੒ޭͷ ࢼߦճ਺͕૿΍ͤΔɻ ಛʹΤσΟλ ͓࢖͍ͷ1$ ͸࠷ߴๆʹճస͕ૣ͍ɻ ςετ͕࠷ॳʹ੒ޭ͢Δ·Ͱͷճస਺͸ΤσΟλͰՔ͙ɻ

    1.ΤσΟλ(͓࢖͍ͷPC)
  69. Ͱ΋ΤσΟλͰ͏·͍͘͘ςετίʔυΛͦͷ·· J04"OESPJEͱ͔Ͱಈ͔͢ͱແࣄࢮ͵ͷͰɺ ࣮ػͰࢮ͵ˠΤσΟλͰJGΛ࡞Δˠௐ੔ͯ͠੒ޭΛ ܁Γฦ͢͜ͱʹͳΔɻ ϓϥςετʹ ΦεεϝͷϓϥοτϑΥʔϜ

  70. ͋Β͔͡Ί஌͓ͬͯ͘ͱࢮͳͳ͍ͰࡁΉࣄ࣮ ࣮ػͰ͔͠ಈ͔ͳ͍ػೳ͸ɺݶΒΕͨ਺ଘࡏ͢Δɻ w ௨஌ w ՝ۚ w ϓϥάΠϯ ͜ΕΒͷςετ͸ɺ1ϓϥςετॻ͘ +

    ࣮ػ༻ͷίʔυΛ#ifͷதʹॻ͘ɺͱ͔΍Δͱָɻ ϓϥςετʹ ΦεεϝͷϓϥοτϑΥʔϜ
  71. ϓϥοτϑΥʔϜςετͰ ͲΜͳ͍͍͜ͱ͕͋Δ͔ 1. ৽͍͠ػߏΛςετ͍ͨ࣌͠ɺ·ͣ͸1ͭͷ PfͰςετॻ͚͹͍͍ɺͱׂΓ੾ΕΔ 2. ৽͍͠PfͰςετ૸Βࣦͤͯഊͯ͠΋ɺ [ผͷPfͰ͸ಈ͍ͯΔ͔Βɺ͕ࠩ͋Δ͚ͩ]ͱ ݴ͍੾ΕΔ 3.

    ਖ਼ղ͕มΘͬͨλΠϛϯάΛ೺ѲͰ͖Δ
  72. 1.৽͍͠ػߏΛςετ͍ͨ࣌͠ɺ·ͣ͸ 1ͭͷPfͰςετॻ͚͹͍͍ɺͱׂΓ੾ΕΔ ׂΓ੾ΕΔࣄͰख͕ಈ͔ͤΔɻ ࠷௿ݶΛܾΊ࣮ͯ૷ʹҠΕΔɻ

  73. ࣗ෼͕Α͘΍Δ΍ͭɿ  ৽ػೳ࣮૷ͷػӡ  ͸͍ΤσΟλͰςετ࣮ɾ૷ʂ ϊʔϧοΫͰ࣮ύεࢦఆ   J04࣮ػͰ࣮ύεࢦఆࢮ͢ɺɺʂ ˠςετ෦෼తʹॻ͖௚ͯ͠͸͍ʂʂ

    1.৽͍͠ػߏΛςετ͍ͨ࣌͠ɺ·ͣ͸ 1ͭͷPfͰςετॻ͚͹͍͍ɺͱׂΓ੾ΕΔ
  74. ϓϥοτϑΥʔϜ͝ͱʹಈ͔ͳ͍ςετ͕͋ͬͯ΋ ಈ͡ͳ͍ɻ ʮ͍΍ผͷͰ͸ಈ͍ͯΔ͕ࠩ͋͠ΔΜͩΖ͏ͳʁʯ ʮࠓͷ··Ͱ͸μϝ͚ͩͲಈ͘؀ڥ΋͋ΔΜͰɺ ͕ࠩΘ͔Ε͹ߦ͚ͦ͏ʯɺΈ͍ͨʹɺ ͳͥಈ͔ͳ͍͔Λ<1Gͷ͔ࠩΒߟ͑Δ>͜ͱ͕Ͱ͖Δɻ 2.৽͍͠PfͰςετ૸Βࣦͤͯഊͯ͠΋ɺ [ผͷPfͰ͸ಈ͍ͯΔ͔Βɺ͕ࠩ͋Δ͚ͩ]ͱݴ͍੾ΕΔ

  75. ͘͢ͳ͘ͱ΋ϓϥͰςετ͕௨ա͍ͯ͠Ε͹ɺ ͔ͦ͜Βࠩ෼Ͱߟ͑ΒΕΔɻ θϩ͔Βࢥߟ͢Δঢ়ଶ͔Βࣗ෼Λԕ͚͟ΔͨΊʹɺ ϓϥςετͰ࣠଍Λ࡞Δ ͔͍͍ͬ͜͜ͱݴ͍͍ͨ 2.৽͍͠PfͰςετ૸Βࣦͤͯഊͯ͠΋ɺ [ผͷPfͰ͸ಈ͍ͯΔ͔Βɺ͕ࠩ͋Δ͚ͩ]ͱݴ͍੾ΕΔ

  76. 3.ਖ਼ղ͕มΘͬͨλΠϛϯάΛ೺ѲͰ͖Δ 6OJUZ͕มΘͬͨΓɺ04͕มΘͬͨΓɺ ϋʔυ͕มΘͬͨΓɺ͍Ζ͍Ζͳ఺͕มΘΔɻ ਖ਼ղ͕มΘΔ w Ͳ͔͜ͷόά͕௚ͬͯڍಈ͕มΘͬͨΓ w ػೳͷཱͪҐஔ͕มΘͬͨΓ w ͦ΋ͦ΋ػೳ͕ফ͑ͨΓ

  77. 3.ਖ਼ղ͕มΘͬͨλΠϛϯάΛ೺ѲͰ͖Δ 6OJUZ͕มΘͬͨΓɺ04͕มΘͬͨΓɺ ϋʔυ͕มΘͬͨΓɺ͍Ζ͍Ζͳ఺͕มΘΔɻ ˠΑ͏͸ɺվΊͯςετΛ૸ΒͤΔͱɺ ࣗવͱ͠Εͬͱɺಥવʹ ΤϥʔΛు͘Α͏ͳέʔε͕ଘࡏ͢Δɻ ྫ͑͹࠷ۙͩͱUnityWebRequestͱ͔ http://sassembla.github.io/Public/2018:03:24%2018-26-28/2018:03:24%2018-26-28.html

  78. ͜͜·Ͱͷ͓͢͢Ίͷ·ͱΊ 1. ͍͖ͳΓͰ͔͍ςετඳ͘ͱ ഁ໓͢ΔͷͰখ͞ͳɺ ඵͷςετ͔Βͩͱָɻ 2. ͍͖ͳΓϚϧνʹ௅Ήͱ ࢮ͵ͷͰ·ͣ͸1ϓϥοτϑΥʔϜɻ

  79. w ͿͬյΕΛݕ஌Ͱ͖Δ w Ͳ͜·ͰյΕ͍ͯΔ͔ͷ൑அࡐྉʹͳΔ w ࠶ݱˠम෮·Ͱͷ͕࣌ؒۃݶ·Ͱ୹ॖͰ͖Δ w ࠶ൃ༧๷͕Ͱ͖Δ w ͜͜Ζ͕҆Β͙

    ਫ਼ਆ໘  w ମྗ͕ݮΒͳ͍ঢ়ଶͰ༡΂Δ ೑ମ໘  ཱͪ໭ͬͯ ςετͷརӹ جຊ ࣗ෼͸͜ͷลΛ࣮ݱ͢ΔͷʹɺΦεεϝΛ࣮ߦͯ͠Δײ͡ɻ
  80. ऴນɿςετͷಛҟੑ ήʔϜΛ࡞Δͱ͖ʹࣗൃతʹָ͕Ͱ͖Δ΋ͷ͝ͱͳΜͯ ͦ͏ͦ͏ͳ͍ɻ ߴ͍"TTFUΛങͬͨΓɺςελʔ͞ΜूΊͯ ΨϯΨϯόάग़ͯ͠͠΋ΒͬͨΓɺ ͦ͏͍͏Ϩϕϧͷ<ָ>Λɺ։ൃऀ͸<ςετ>ͱ͍͏ܗͰ ࣗ෼Ͱ࣮૷Ͱ͖Δɻ ͜Ε͸͔ͳΓͷಛҟੑͩͱࢥ͍ͬͯΔɻ

  81. ɾɾɾ ͨͩ·͋ɺςετ͕ͳ͍ͱμϝͱ͔ͦ͏͍͏ͷ ݴ͏ͭ΋Γ͸Ұ੾ͳ͍ɻଞʹ΋ྑ͍खஈ͸͋ΔͩΖ͏͠ɻ ໘ന͍ήʔϜΛ࡞Δͱ͖ͷɺࣗ෼ͷ<ָ>Λ૿΍͢ɺ ͦͷखஈͱͯ͠ςετ͕͋ΔΑɺ ͱ͍͏ఔ౓Ͱ͍͍ͱࢥ͍ͬͯΔɻ ऴນɿςετͷಛҟੑ

  82. ࠷ۙ͸6OJUZͷ࠷৽ػೳΛࢼ͢ͷʹ 1MBZ.PEFΛ࢖ͬͨΓ͍ͯ͠Δɻ ىಈ΋εςοϓ΋βΫβΫॻ͚Δ ܁ΓฦͤΔΜͰ ָɺɺɺ ͓·͚ɾ࠷ۙͷςετͱࢲ

  83. May The Benefit of Tests Be With You.

  84. 6OJUZͰ&&ςετ

  85. WT&& ͍Ζ͍Ζͳ͜ͱΛςετ͠Α͏ͱ͢Δͱɺԕ͔Βͣ ʮήʔϜͷϓϨΠͦͷ΋ͷΛςετ͍ͨ͠ʯͱ͍͏ ئ๬ʹͨͲΓண͘ɻ ࣗಈͰϘλϯԡͯ͠ʙભҠͯ͠ʙউͬͯʙෛ͚ͯʙ &&ςετ͕΍Γ͍ͨɺ͍ͬͯ͏ɻ

  86. WT&& ͜Μͳ͜ͱΛ͍ͨ͠ΑͶ w λΠτϧը໘͔Β࢝·ͬͯ w Ͳ͔ͬͷϘλϯΛԡͨ͜͠ͱʹͯ͠ w ભҠ͕ऴΘΔͷΛ଴ͬͯ w ϝχϡʔͷͲ͔͜ͷϘλϯԡͨ͜͠ͱʹͯ͠

    w ը໘্ͷͲ͔͜ʹ޲͔ͬͯਓ஌Λ௒͑ͨϘλϯ࿈SZ
  87. WT&& Ϣʔβʔૢ࡞΍6*ಈ࡞ΛίʔυͰॻ͍ͯςετ͢Δɺ Έ͍ͨͳ΍ͭʂ Α͏͸ϒϥ΢βΞϓϦͰͷ6*ςετͱಉ͡ɺ γφϦΦΛͳΜΒ͔ந৅Խ͞ΕͨίʔυͰॻ͔͘ɺ ͦΕͱ΋μΠϨΫτͳ6OJUZίʔυͰॻ͔͔͘͠ͳౕ͍ɻ

  88. WT&& ͱ͜ΖͰɺ6OJUZ5FTUɻ

  89. 4FUVQ ςετέʔε 5FBSEPXO ςετ࣮ߦ 1MBZ.PEF ࣍ͷςετ͕͋Ε͹࣮ߦ ಛఆͷγʔϯ-PBE ಛఆͷγʔϯ6OMPBE “γʔϯʹ͋ΔಛఆͷGOΛݕࡧͯ͠ ΋͠ଘࡏ͢ΔͳΒͦͷঢ়ଶ͕

    Not ActiveʹͳΔͷΛ֬ೝ͢Δɻ ੍ݶ࣌ؒ͸5ඵ” 1MBZ.PEFͰͷςετ (+Miyamasu)
  90. WT&& 1MBZ.PEF .JZBNBTV ͷςετͷॻ͖ํͰ΋ɺ ʮ(6*ૢ࡞͢ΔίʔυΛॻ͖·ͬͯ͘&&ςετʂʯ ͱ͍͏ঢ়ଶʹ͍࣋ͬͯ͘͜ͱ͸ɺɺɺ ཧ࿦తʹ͸ɺɺՄೳɺɺɺɺཧ࿦తʹ͸ɺɺɺ Ͱ΋ੜʑ͍͠ίʔυͳΜͰ͜͏ɺͳΜ͔୅ସͱ͔ ΋ͬͱಛԽͨ͠΍ͭΛɺɺ

  91. ࠓݱࡏ͋Γ͑Δબ୒ࢶ "QQJVN 6OJUZ IUUQTRJJUBDPNPPUBLFOJUFNTBFFDBDGDCFEEEB 6OJUZ6*5FTU"VUPNBUJPO'SBNFXPSL IUUQCBCBTIBUFOBCMPHDPNFOUSZ "MU6OJUZ5FTUFS /&8  IUUQTXXXTMJEFTIBSFOFUOPXTQSJOUJOHBMUVOJUZUFTUFS

    HPUBOEBVOJUZ
  92. ࠓݱࡏ͋Γ͑Δબ୒ࢶ "QQJVN 6OJUZ μΠϨΫτίʔυ  IUUQTRJJUBDPNPPUBLFOJUFNTBFFDBDGDCFEEEB 6OJUZ6*5FTU"VUPNBUJPO'SBNFXPSL μΠίʔ  IUUQCBCBTIBUFOBCMPHDPNFOUSZ

    "MU6OJUZ5FTUFS /&8 ந৅ԽγφϦΦ%4-  IUUQTXXXTMJEFTIBSFOFUOPXTQSJOUJOHBMUVOJUZUFTUFS HPUBOEBVOJUZ
  93. ࠓݱࡏ͋Γ͑Δબ୒ࢶ μΠϨΫτίʔυ6OJUZ5FTUͱ͋Μ·มΘΒΜɺɺɺ %4-͋ͷͬ͋ͷͬɺɺ ԶͷήʔϜՃ଎౓ηϯαʔͱ͔εϫΠϓͱ͔͋ͷ͋ͷɺɺɺ ˠ%4-͔Β͸ɺɺͦ͏͍͏ࡉ͔͍ͷ͸ɺɺɺ

  94. ࠓݱࡏ͋Γ͑Δબ୒ࢶ μΠϨΫτίʔυ6OJUZ5FTUͱ͋Μ·มΘΒΜɺɺɺ %4-͋ͷͬ͋ͷͬɺɺ ԶͷήʔϜՃ଎౓ηϯαʔͱ͔εϫΠϓͱ͔͋ͷ͋ͷɺɺɺ ˠ%4-͔Β͸ɺɺͦ͏͍͏ࡉ͔͍ͷ͸ɺɺɺ ͦΕͰ΋΍͍͖ͬͯΛൃشͯ͠Έͨɻ

  95. WT&& ௨ࢉͰ̐ ̑ήʔϜ͘Β͍6OJUZͰ&&΍ͬͨͱࢥ͏ɻ ˠήʔϜ͸ಛघ6*ɺಛघೖྗͷ૥۸ ˠήʔϜ͝ͱͷૉఢͳউར৚݅ΛՃຯ͢Δඞཁ ˠͳΜͱ͔ॻ͍ͯɺɺ ˠͻΐͬͱ͠ͳ͍Ͱ΋มߋʹΊͬͪΌऑ͍ʁ ઃఆ஋͕มΘͬͨΒʁ ը໘ߏ੒͕มΘͬͨΒʁ

  96. WT&& ήʔϜ͸มΘ͍ͬͯͬͯྑ͘ͳͬͨΒͦΕ͸ྑ͍ʂ ͕ɺ৚݅ͷࠜఈ͕มΘΔͱ٧Ή ςετ͕ɻ  γφϦΦίʔυͰͷςετͰ&&ʹཱͪ޲͔͏ͱɺ ʮมԽͷͨͼʹഁյ͞Εͨ఺Λߋ৽͢Δʯ ͱ͍͏Ӌ໨ʹͳΔɻͻͨ͢Βਏ͍ɻ ͱ͍͏͔ɺ&&͸ʮ੬͍ʯɻ ũƄţżŮʔ

  97. WT&& ݁Ռɺ ʮح੻తʹ҆ఆͨ͠ͱ͜ʹ͸&&ςετ͕͋ͬͯɺ Α͘มΘΔͱ͜Ζ͸͜͏ɺ΄Βɺ ਓ͕ؒ͏·͍͜ͱςετ͢ΔΜͩΑɻʯ

  98. WT&& ݁Ռɺ ʮح੻తʹ҆ఆͨ͠ͱ͜ʹ͸&&ςετ͕͋ͬͯɺ Α͘มΘΔͱ͜Ζ͸͜͏ɺ΄Βɺ ਓ͕ؒ͏·͍͜ͱςετ͢ΔΜͩΑɻʯ ˠσόοΨ͞Μຊ౰ʹ͋Γ͕ͱ͏Ҋ݅ͷු্

  99. WT&& ʮήʔϜͰ&&ςετɺཁૉͷߋ৽ʹରͯ͠ ίʔυγφϦΦهड़Ͱ௥ਵ͢Δͷ͸͠ΜͲ͍ʯ ͱ͍͏ؾ͖͕ͮ͋ͬͨɻ ߋ৽ʹରԠͯ͠ɺਓ͕ؒԿ͔࡞Δͷ͕ ༰қʹؒʹ߹Θͳ͘ͳΔɻ

  100. WT&& Կ͔͍͍ಓ۩͕ཉ͍͠ɺɺɺ 6OJUZ &&ʹ޲͍ͨπʔϧɺɺɺ Ͱ͖Δ͚ͩؤுΒͳ͍Ͱ࢖͑Δ΍ͭɺɺ ͋Δͱ͍͍ΑͶɺɺʂʂ ࣗ෼͸·ͩݟ͚ͭΒΕͯͳ͍ɻ

  101. WT&& ͜͜·Ͱ͕ύϒϦοΫ޲͚ͷճ౴ɻ

  102. WT&& ͜͜Ͱߟ͑ͯΈͨɻ ˠ6OJUZͷίϯύΠϧʹׂࠐΊΕ͹ϫϯνϟϯɺ ೖྗΠϕϯτͷશͯΛೖྗϨΠϠͰ֫ಘɺ࣮ߦΛه࿥ɺ ͦͯ͠୺຤ʹྲྀ͠ࠐΜͰΠϕϯτΛِ଄Ͱ͖ΔͷͰ͸ʁ ˠͦͨ͠Βਓ͕ؒγφϦΦॻ͘ͷͱಉ͜͡ͱΛ ήʔϜͷݱࡏͷίʔυʹͤ͞ΒΕΔͷͰ͸ʁ

  103. WT&& ਓ͕ؒ΍Βͳ͚Ε͹͍͍ͷͰ͸ʁ ʮήʔϜͰ&&ςετɺཁૉͷߋ৽ʹରͯ͠ ίʔυγφϦΦهड़Ͱ௥ਵ͢Δͷ͸͠ΜͲ͍ʯ

  104. ΍ͬͯΈͨʂ ࣗಈςετγφϦΦੜ੒࣮ߦ༻6OJUZίϯύΠϧհೖػߏ   1ͽʔʹʔ͝ʔͥΖ͍ͪ   ϦϙδτϦඇެ։  ίϯύΠϧ࣌ʹήʔϜίʔυʹׯবɺΠϕϯτه࿥ػͱΠϕೖྗܦ࿏ੜ੒

     Ϣʔβʔૢ࡞Λه࿥ɺ৚݅׬ྃ଴ͪͳͲΛγφϦΦίʔυͱͯ͠ग़ྗ   ௨৴Ͱ࣮ػʹ์ΓࠐΜͰ࠶ݱ && CZࣗಈϦϓϨΠ
  105. ࣮ԋ && CZࣗಈϦϓϨΠ

  106. Ͱ͖ͨ΋ͷ w ਓ͕ؒγφϦΦΛॻ͔ͳ͍ૢ࡞͔ΒγφϦΦग़ྗ w ਓ͕ؒγφϦΦΛ؅ཧ͢Δ w γφϦΦ͕μϝʹͳͬͨΒਓ͕ؒҰճ૸Δ w γφϦΦ͕௨༻͢Δ͏ͪ͸ࣗಈςετ͕Ͱ͖Δ &&

    CZࣗಈϦϓϨΠ ˠήʔϜʹೖΕΔͷ͸εήʔ؆୯ͳΜ͚ͩͲɺ Ϧιʔεͷ౎߹Ͱ·ͩҰൠެ։ͯ͠ͳ͍ɻ
  107. ʮ'BUF(SBOE0SEFSʹ͓͚Δ ࣗಈϦϓϨΠΛ༻͍ͨ2"վળ΁ͷ௅ઓʯ IUUQDFEFDDFTBPSKQTFTTJPO&/(TEE $&%&$ͷࢿྉͱ্͕ͯͬͯ͠ΔΜͰɺ ͳΜ͔ݟΕΔͱࢥ͏ɻ && CZࣗಈϦϓϨΠ ࢖༻ྫ

  108. ͳΜ͔͠Β΋ͬͱҰൠԽ ී௨ͷίʔυʹͯ͠ ެ։͍ͨ͠ͳʙͱ͍͏ͱ͜Ζɻ && CZࣗಈϦϓϨΠ

  109. ςετ͠΍͍͢ίʔυ w มԽ͕ಛఆͷൣғ಺ w Ұఆ࣌ؒͰऴΘΔ w ֎෦͔ΒมԽ͕ݕ஌͠΍͍͢   ։͔࢝ΒϑϨͰϑϥά͕"͔Β#ʹมΘͬͨΒ׬ྃɺͱ͔

       ϑϥάؔ࿈ͩͬͨΒ͍͘ΒͰ΋Ԡ༻͕ޮ͘ → ୯ʹ੍࣌ؒݶ͚ͭͯϑϥά͕ೲಘͰ͖Δ஋ʹͳΔ·Ͱ଴ͭɺͱ͔ͰOK → ௨ͬͨΒɺผͷई౓(͜·͔͍஋͸૝ఆ௨Γ͔ʁ)ͰςετΛ௥Ճ͢Δɻ Φϑ τϐ
  110. ςετ͠ʹ͍͘ίʔυ ઌ΄Ͳͷਅཪɻ w มԽͷ෯͕ෆఆ΍ϥϯμϜ w Ұఆ࣌ؒͰऴΘΒͳ͍ w ֎෦͔ΒมԽ͕ݕ஌Ͱ͖ͳ͍ ෺ཧΤϯδϯͱ͔ͷ஋Λࣗ༝ؾ··ʹೖΕͩ͢ͱΩπ͍ɻ →·Μ·ͩͱઈରςετʹͳΒͳ͍(ؾ෼Ͱ௨ͬͨΓ௨Βͳ͔ͬͨΓ͢Δ

    →੒ޭ͕ਓؒʹ͔͠൑அͰ͖ͳ͍΋ͷ΋ಉ༷ Φϑ τϐ
  111. ςετ͠ʹ͍͘ίʔυ ઌ΄Ͳͷਅཪɻ w มԽ͕ϥϯμϜ w Ұఆ࣌ؒͰऴΘΒͳ͍ w ֎෦͔ΒมԽ͕ݕ஌Ͱ͖ͳ͍ ෺ཧΤϯδϯͱ͔ͷ஋Λࣗ༝ؾ··ʹೖΕͩ͢ͱΩπ͍ɻ →·Μ·ͩͱઈରςετʹͳΒͳ͍(ؾ෼Ͱ௨ͬͨΓ௨Βͳ͔ͬͨΓ͢Δ

    →੒ޭ͕ਓؒʹ͔͠൑அͰ͖ͳ͍΋ͷ΋ಉ༷ ͜ΕΒ͸ήʔϜతʹ͸༗༻ͳΜͰɺ ࣗ෼Ͱई౓Λఆٛͯ͠ɺ ʮ͜ͷ஋͕࣌ؒ಺ʹ͜ͷ஋ʹͳͬͨΒ׬ྃʂʯ ͱ͔΍ΔͱΑ͛͞ɻ →Θ͔Γ΍͍͢ਖ਼ղΛఆٛͯ͠νΣοΫ͢Δɻ Φϑ τϐ
  112. ࣮ػςετͰͷΤϥʔݕ஌ ࣦഊͨ͠ςετ͸ɺσόΠεͷ໊લ Τϥʔϩ άͰ4MBDLʹऩू ˠϩάͰ൑அͰ͖ͳ͚Ε͹࠷ѱฉ͘ɺ༻ͷอݥ ˠ୺຤໊ͱ͔04WFSͱ͔ग़͢ͱḿΔ ࠔͬͨΒ Slack Φϑ τϐ

  113. Τϥʔ࣌ͷεΫϦʔϯγϣοτΛऩू ˠҰԠ΍ͬͯΔ ΍͸Γ4MBDLʹషΔ  ˠຊ౰͸Τϥʔ਺ඵલ͔Βͷಈըཉ͍͠ΑͶʂ ࠔͬͨΒ Slack ࣮ػςετͰͷΤϥʔݕ஌ Φϑ τϐ

  114. ҎԼ͓·͚ ͜Ε͔Β΋͜͏͍͏ςετ͸ॻ͜͏ͱࢥ͏  ɾ࠶ݱ͕ΊΜͲ͏͍͘͞΍ͭ  ɾ(6*ΆͪΆͪԡ͢ͷ͕ຖճਏ͍΍ͭ  ɾΑ͘σάϨ͢Δ΍ͭˡ͓લ͓લ ࠓޙཉ͍͠΋ͷ࡞ͬͯΔ΋ͷ 

    ϦϞʔτϓϩϑΝΠϦϯάूੵػ4IJTZBNP γγϟϞ     ಛఆͷ୺຤্Ͱద౰ʹ1SPpMJOHͯ͠ɺϦϞʔτͰ݁Ռऩूɻ  ஗͍ʂͱ͍͏λΠϛϯάͰԡ͢Ϙλϯͱ͔༻ҙͯ͠ɺͦͷϘλϯ͕ԡ͞ΕͨΒσʔλΛऔΓɺ ϓϩϑΝΠϧΛϓϩϑΝΠϥαʔόʹૹΔ  ΤσΟλଆͰϓϩϑΝΠϥͷ݁ՌΛݟͯɺͲ͕͜Ϋιॏ͍͔Λ൑அɺͱ͍͏ɻ ࢿ࢈ͱͯ͠ͷςετ  ɾҰ౓ෆ۩߹͕ग़Ε͹ɺಉ͡৚݅Ͱෆ۩߹Λ࠶ݱͤ͞Δૉࡐʹ࢖͑Δ  ɾະ஌ͷෆ۩߹͕ग़ͨΒɺطଘͷςετͷ֦ுΛߦͬͯςετΛߦ͏͜ͱ͕Ͱ͖Δ  ɾաڈͷςετه࿥Λ΋ͱʹɺ҆શͳ෦෼ͱͦ͏Ͱͳ͍෦෼ͷઢҾ͖͕Ͱ͖Δ    ςετ͸ɺʮະདྷͷόάΛઢҾ͖͢Δʯ͜ͱ͕Ͱ͖Δɻ ͪΐͬͱ͓͓͛͞ Φϑ τϐ