Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Agile開発に入り込むQAの方法 #D3QA / Agile QA Night

706ff501573a736401aa4de5adc88e05?s=47 nihonbuson
March 14, 2019

Agile開発に入り込むQAの方法 #D3QA / Agile QA Night

2019年3月14日開催のD3QAイベント「Agile QA Night」での発表資料です。
https://d-cube.connpass.com/event/121450/

スライド内で紹介した参考資料
◆P34
テスト駆動開発から品質保証へと橋を架ける
https://speakerdeck.com/twada/jasst-18-kansai-from-tdd-to-qa?slide=20

◆P38
テストエンジニアはどのような思考でペアプロ・モブプロに参加しているのか #WACATE
http://nihonbuson.hatenadiary.jp/entry/2018/12/24/000000

テストエンジニアの観点を持ってテスト書いていくぞな話
https://kariaduu.hatenablog.com/entry/2018/12/18/232511

706ff501573a736401aa4de5adc88e05?s=128

nihonbuson

March 14, 2019
Tweet

Transcript

  1. Agile։ൃʹೖΓࠐΉ QAͷํ๏ ϒϩοίϦʔ

  2. Agenda • Agile։ൃͱQAͷؔΘΓํ • Ϟϒϓϩͷ୊ࡐͱਐΊํ • ࢲͷࢦఠ఺ • ͓ΘΓʹ

  3. ࠓ೔ͷ໨త • QA͕ͲͷΑ͏ʹ։ൃͱίϥϘͰ͖Δͷ͔
 ஌ͬͯ΋Β͏ • Agile։ൃͷҰྫͱͯ͠ɺϞϒϓϩͷதͰ
 ࢲʢςετΤϯδχΞʣ͸ͲͷΑ͏ͳ
 ࢥߟɾձ࿩Λ͍ͯ͠Δͷ͔஌ͬͯ΋Β͏

  4. Agile։ൃͱ
 QAͷؔΘΓํ

  5. QAͷؔΘΓํͦͷ1 • εϓϦϯτ಺͸։ൃͷΈ • ਺εϓϦϯτͷޙɺςετظؒΛઃ͚ͯ
 QA͕ςετΛ࣮ࢪ͢Δ 4QSJOU 4QSJOU 4QSJOU ։ൃ

    QA 2"5FTU
  6. QAͷؔΘΓํͦͷ2 • εϓϦϯτ಺͸։ൃͷΈ • ࣍εϓϦϯτͷظؒதʹɺ
 QA͕લεϓϦϯτͷςετΛ࣮ࢪ͢Δ 4QSJOU 4QSJOU 4QSJOU ։ൃ

    QA 4QSJOU 5FTU 4QSJOU 5FTU 4QSJOU 5FTU 4QSJOU
  7. QAͷؔΘΓํͦͷ3 • εϓϦϯτ಺͸։ൃͱQA͕ೖΔ • εϓϦϯτͷޙ൒ʹQA͕ςετΛ࣮ࢪ͢Δ 4QSJOU 4QSJOU 4QSJOU ։ൃ QA

    5FTU 5FTU 5FTU 4QSJOU 5FTU
  8. QAͷؔΘΓํͦͷ4 • εϓϦϯτ಺͸։ൃͱQA͕ೖΔ • εϓϦϯτͷ࠷ॳ͔ΒQA͕ೖ͍ͬͯΔ • ϞϒϓϩࢀՃऀͷҰһͱͯ͠ೖΔ 4QSJOU 4QSJOU 4QSJOU

    ։ൃ QA 5FTU 5FTU 5FTU 4QSJOU 5FTU
  9. Ϟϒϓϩͷ୊ࡐͱਐΊํ

  10. Ϟϒϓϩͷ୊ࡐͳͲ WACATEͰͷϞϒϓϩମݧձͷޫܠ

  11. Ϟϒϓϩͷ୊ࡐͳͲ • ୊ࡐ͸ࣗಈൢചػ • Cucumber+JUnit • PO໾ͬΆ͍͜ͱΛࢲ͕࣮ࢪ • ࢀՃऀ͸΄ͱΜͲ͕Ϟϒϓϩະܦݧ •

    1ਓ͚ͩϞϒϓϩܦݧ͋Γ
  12. 1ͭ໨ͷςετγφϦΦ Scenario: ೖֹۚ֬ೝ Given ࣗಈൢചػ͕͋Δ When 100ԁΛೖۚ Then 100ԁ͕ೖۚ͞Ε͍ͯΔ public

    class VendingMachine { int currentMoney; public void insertCoin(int money) { currentMoney = money; } public int getCurrentMoney() { return currentMoney; } }
  13. 2ͭ໨ͷςετγφϦΦ
 ϓϩμΫτΦʔφʔ͔Βͷཁ๬ Scenario: ೖֹۚ֬ೝ Given ࣗಈൢചػ͕͋Δ When 100ԁΛೖۚ Then 100ԁ͕ೖۚ͞Ε͍ͯΔ

    public class VendingMachine { int currentMoney; public void insertCoin(int money) { currentMoney = money; } public int getCurrentMoney() { return currentMoney; } } 10ʮ͓ۚΛԁೖΕͨޙʹɺԁΛೖΕͨΒɺ
 ͪΌΜͱԁʹͳΔΑ͏ʹͯ͠΄͍͠ͳʯ
  14. 2ͭ໨ͷςετγφϦΦ ςετγφϦΦͷ࡞੒ Scenario: ೖֹۚ֬ೝ Given ࣗಈൢചػ͕͋Δ When 100ԁΛೖۚ Then 100ԁ͕ೖۚ͞Ε͍ͯΔ

    Scenario: ೖֹۚ֬ೝ Given ࣗಈൢചػ͕͋Δ When 100ԁΛೖۚ And 50ԁΛೖۚ Then 150ԁ͕ೖۚ͞Ε͍ͯΔ public class VendingMachine { int currentMoney; public void insertCoin(int money) { currentMoney = money; } public int getCurrentMoney() { return currentMoney; } }
  15. 2ͭ໨ͷςετγφϦΦ ࣮૷ίʔυͷमਖ਼ Scenario: ೖֹۚ֬ೝ Given ࣗಈൢചػ͕͋Δ When 100ԁΛೖۚ Then 100ԁ͕ೖۚ͞Ε͍ͯΔ

    Scenario: ೖֹۚ֬ೝ Given ࣗಈൢചػ͕͋Δ When 100ԁΛೖۚ And 50ԁΛೖۚ Then 150ԁ͕ೖۚ͞Ε͍ͯΔ public class VendingMachine { int currentMoney = 0; public void insertCoin(int money) { currentMoney += money; } public int getCurrentMoney() { return currentMoney; } }
  16. 3ͭ໨ͷςετγφϦΦ ϓϩμΫτΦʔφʔ͔Βͷཁ๬ Scenario: ೖֹۚ֬ೝ Given ࣗಈൢചػ͕͋Δ When 100ԁΛೖۚ Then 100ԁ͕ೖۚ͞Ε͍ͯΔ

    Scenario: ೖֹۚ֬ೝ Given ࣗಈൢചػ͕͋Δ When 100ԁΛೖۚ And 50ԁΛೖۚ Then 150ԁ͕ೖۚ͞Ε͍ͯΔ public class VendingMachine { int currentMoney = 0; public void insertCoin(int money) { currentMoney += money; } public int getCurrentMoney() { return currentMoney; } } 10ʮ̍ԁߗ՟͸ରԠͨ͘͠ͳ͍ͳʯ
  17. 3ͭ໨ͷςετγφϦΦ ςετγφϦΦͷ࡞੒ Scenario: ೖֹۚ֬ೝ Given ࣗಈൢചػ͕͋Δ When 100ԁΛೖۚ Then 100ԁ͕ೖۚ͞Ε͍ͯΔ

    Scenario: ೖֹۚ֬ೝ Given ࣗಈൢചػ͕͋Δ When 100ԁΛೖۚ And 50ԁΛೖۚ Then 150ԁ͕ೖۚ͞Ε͍ͯΔ Scenario:ೖֹۚ֬ೝ Given ࣗಈൢചػ͕͋Δ When 1ԁΛೖۚ Then 0ԁ͕ೖۚ͞Ε͍ͯΔ public class VendingMachine { int currentMoney = 0; public void insertCoin(int money) { currentMoney += money; } public int getCurrentMoney() { return currentMoney; } }
  18. 3ͭ໨ͷςετγφϦΦ ࣮૷ίʔυͷमਖ਼ Scenario: ೖֹۚ֬ೝ Given ࣗಈൢചػ͕͋Δ When 100ԁΛೖۚ Then 100ԁ͕ೖۚ͞Ε͍ͯΔ

    Scenario: ೖֹۚ֬ೝ Given ࣗಈൢചػ͕͋Δ When 100ԁΛೖۚ And 50ԁΛೖۚ Then 150ԁ͕ೖۚ͞Ε͍ͯΔ Scenario: ೖֹۚ֬ೝ Given ࣗಈൢചػ͕͋Δ When 1ԁΛೖۚ Then 0ԁ͕ೖۚ͞Ε͍ͯΔ public class VendingMachine { int currentMoney = 0; public void insertCoin(int money) { if (money == 50 || money==100) { currentMoney += money; } } public int getCurrentMoney() { return currentMoney; } }
  19. ࢲͷࢦఠ఺

  20. ࢲͷࢦఠ఺ ࢦఠՕॴͷղઆ͚ͩͰͳ͘ɺ
 ͲͷΑ͏ͳձ࿩Ͱ಺༰Λվળ͍ͯͬͨ͠ͷ͔
 ঺հ͢Δɻ

  21. ։ൃऀͱͷձ࿩(1) Scenario: ೖֹۚ֬ೝ Given ࣗಈൢചػ͕͋Δ When 100ԁΛೖۚ Then 100ԁ͕ೖۚ͞Ε͍ͯΔ Scenario:

    ೖֹۚ֬ೝ Given ࣗಈൢചػ͕͋Δ When 100ԁΛೖۚ And 50ԁΛೖۚ Then 150ԁ͕ೖۚ͞Ε͍ͯΔ Scenario: ೖֹۚ֬ೝ Given ࣗಈൢചػ͕͋Δ When 1ԁΛೖۚ Then 0ԁ͕ೖۚ͞Ε͍ͯΔ ͢΂ͯγφϦΦ໊͕
 ʰೖֹۚ֬ೝʱʹͳͬͯ·͢ΑͶɻ
 ಉ໊͡લ͸Ͳ͏͔ͱࢥ͏ͷͰ
 ม͑ͨ΄͏͕ྑ͍ؾ͕ͯ͠·͢ɻ ͳΔ΄Ͳɻ
 ͦͨ͠Β͜Μͳײ͡Ͱ͔͢Ͷɻ
 ʢςετγφϦΦΛฤू͢Δʣ ࢲ ։ൃऀ
  22. Scenario: 1ճͷίΠϯ౤ೖ Given ࣗಈൢചػ͕͋Δ When 100ԁΛೖۚ Then 100ԁ͕ೖۚ͞Ε͍ͯΔ Scenario: 2ճͷίΠϯ౤ೖ

    Given ࣗಈൢചػ͕͋Δ When 100ԁΛೖۚ And 50ԁΛೖۚ Then 150ԁ͕ೖۚ͞Ε͍ͯΔ Scenario: ࢖͍ͨ͘ͳ͍ίΠϯ౤ೖ Given ࣗಈൢചػ͕͋Δ When 1ԁΛೖۚ Then 0ԁ͕ೖۚ͞Ε͍ͯΔ ͢΂ͯγφϦΦ໊͕
 ʰೖֹۚ֬ೝʱʹͳͬͯ·͢ΑͶɻ
 ಉ໊͡લ͸Ͳ͏͔ͱࢥ͏ͷͰ
 ม͑ͨ΄͏͕ྑ͍ؾ͕ͯ͠·͢ɻ ͳΔ΄Ͳɻ
 ͦͨ͠Β͜Μͳײ͡Ͱ͔͢Ͷɻ
 ʢςετγφϦΦΛฤू͢Δʣ ։ൃऀͱͷձ࿩(1) ࢲ ։ൃऀ
  23. ։ൃऀͱͷձ࿩(2) ͳΔ΄Ͳɻ
 ͪͳΈʹɺͭ໨ͷςετͷҙਤͬͯ
 ͳΜͰ͔͢Ͷʁ ίΠϯΛճ͚ͩͰ͸ͳ͘ɺ
 ճ౤ೖͨ࣌͠ʹ΋ͪΌΜͱಈ͔͘
 ֬ೝ͍ͨ͠ͱ͍͏ҙਤͰ͢ɻ Scenario: 1ճͷίΠϯ౤ೖ Given

    ࣗಈൢചػ͕͋Δ When 100ԁΛೖۚ Then 100ԁ͕ೖۚ͞Ε͍ͯΔ Scenario: 2ճͷίΠϯ౤ೖ Given ࣗಈൢചػ͕͋Δ When 100ԁΛೖۚ And 50ԁΛೖۚ Then 150ԁ͕ೖۚ͞Ε͍ͯΔ Scenario: ࢖͍ͨ͘ͳ͍ίΠϯ౤ೖ Given ࣗಈൢചػ͕͋Δ When 1ԁΛೖۚ Then 0ԁ͕ೖۚ͞Ε͍ͯΔ ࢲ ։ൃऀ
  24. ։ൃऀͱͷձ࿩(3) ͳΔ΄Ͳʔɻ
 ͦͨ͠ΒʰճͷίΠϯ౤ೖʱͱ
 ॻ͍͍ͯ·͕͢ɺ
 ճ໨͸Ͳ͏ͳΔͷͰ͠ΐ͏͔ʁ ճ໨͸ճ໨ͱಉ͘͡ɺ
 Ճࢉ͞Ε͍ͯ͘࢓૊ΈͳͷͰɺ
 ϩδοΫ্͸େৎ෉Ͱ͢ɻ Scenario: 1ճͷίΠϯ౤ೖ

    Given ࣗಈൢചػ͕͋Δ When 100ԁΛೖۚ Then 100ԁ͕ೖۚ͞Ε͍ͯΔ Scenario: 2ճͷίΠϯ౤ೖ Given ࣗಈൢചػ͕͋Δ When 100ԁΛೖۚ And 50ԁΛೖۚ Then 150ԁ͕ೖۚ͞Ε͍ͯΔ Scenario: ࢖͍ͨ͘ͳ͍ίΠϯ౤ೖ Given ࣗಈൢചػ͕͋Δ When 1ԁΛೖۚ Then 0ԁ͕ೖۚ͞Ε͍ͯΔ ࢲ ։ൃऀ
  25. ։ൃऀͱͷձ࿩(4) ͱ͍͏͜ͱ͸ɺؾʹ͍ͯ͠Δͷ͸
 ճͷίΠϯ౤ೖͰ͸ͳ͘ɺ
 ෳ਺ճͷίΠϯ౤ೖͳΜͰ͢Ͷɻ ͋ʔɺ͔֬ʹͦ͏Ͱ͢Ͷɻ
 ʢςετγφϦΦΛฤू͢Δʣ Scenario: 1ճͷίΠϯ౤ೖ Given ࣗಈൢചػ͕͋Δ

    When 100ԁΛೖۚ Then 100ԁ͕ೖۚ͞Ε͍ͯΔ Scenario: 2ճͷίΠϯ౤ೖ Given ࣗಈൢചػ͕͋Δ When 100ԁΛೖۚ And 50ԁΛೖۚ Then 150ԁ͕ೖۚ͞Ε͍ͯΔ Scenario: ࢖͍ͨ͘ͳ͍ίΠϯ౤ೖ Given ࣗಈൢചػ͕͋Δ When 1ԁΛೖۚ Then 0ԁ͕ೖۚ͞Ε͍ͯΔ ࢲ ։ൃऀ
  26. ։ൃऀͱͷձ࿩(4) ͱ͍͏͜ͱ͸ɺؾʹ͍ͯ͠Δͷ͸
 ճͷίΠϯ౤ೖͰ͸ͳ͘ɺ
 ෳ਺ճͷίΠϯ౤ೖͳΜͰ͢Ͷɻ ͋ʔɺ͔֬ʹͦ͏Ͱ͢Ͷɻ
 ʢςετγφϦΦΛฤू͢Δʣ Scenario: 1ճͷίΠϯ౤ೖ Given ࣗಈൢചػ͕͋Δ

    When 100ԁΛೖۚ Then 100ԁ͕ೖۚ͞Ε͍ͯΔ Scenario: ෳ਺ճͷίΠϯ౤ೖ Given ࣗಈൢചػ͕͋Δ When 100ԁΛೖۚ And 50ԁΛೖۚ Then 150ԁ͕ೖۚ͞Ε͍ͯΔ Scenario: ࢖͍ͨ͘ͳ͍ίΠϯ౤ೖ Given ࣗಈൢചػ͕͋Δ When 1ԁΛೖۚ Then 0ԁ͕ೖۚ͞Ε͍ͯΔ ࢲ ։ൃऀ
  27. ςετΤϯδχΞ͸
 ࢦఠࣄ߲ΛͲͷΑ͏ʹ఻͑Δ͔ • ࢦఠࣄ߲Λݴ͍੾ΓͷܗͰ఻͑ͳ͍ɻ • ίʔυͷओମ͸։ൃऀ • ఏҊ͸ͭͭ͠΋։ൃऀʹ൑அΛ೚ͤΔ • ࢦఠࣄ߲͸༏ઌ౓Λ͚ͭͯ࿩͢ͷͰ͸ͳ͘ɺ


    ൃݴ࣌ʹڧऑΛ͚ͭͯ࿩͢ɻ
  28. ൃݴͷڧऑͷҧ͍ • ಉ໊͡લ͸Ͳ͏͔ͱࢥ͏ͷͰ
 ɹม͑ͨ΄͏͕ྑ͍ؾ͕ͯ͠·͢ɻ • ςετͷҙਤͬͯͳΜͰ͔͢Ͷʁ • 3ճ໨͸Ͳ͏ͳΔͷͰ͠ΐ͏͔ʁ • ؾʹ͍ͯ͠Δͷ͸2ճͷίΠϯ౤ೖͰ͸ͳ͘ɺ


    ɹෳ਺ճͷίΠϯ౤ೖͳΜͰ͢Ͷɻ ڧ ऑ ऑ த
  29. ൃݴͷڧऑͷҧ͍ • ಉ໊͡લ͸Ͳ͏͔ͱࢥ͏ͷͰ
 ɹม͑ͨ΄͏͕ྑ͍ؾ͕ͯ͠·͢ɻ • ςετͷҙਤͬͯͳΜͰ͔͢Ͷʁ • 3ճ໨͸Ͳ͏ͳΔͷͰ͠ΐ͏͔ʁ • ؾʹ͍ͯ͠Δͷ͸2ճͷίΠϯ౤ೖͰ͸ͳ͘ɺ


    ɹෳ਺ճͷίΠϯ౤ೖͳΜͰ͢Ͷɻ ڧ ऑ ऑ த ௚͢΂͖ͳͷ͸ࣗ໌ͱײͨͨ͡Ί
  30. த • ಉ໊͡લ͸Ͳ͏͔ͱࢥ͏ͷͰ
 ɹม͑ͨ΄͏͕ྑ͍ؾ͕ͯ͠·͢ɻ • ςετͷҙਤͬͯͳΜͰ͔͢Ͷʁ • 3ճ໨͸Ͳ͏ͳΔͷͰ͠ΐ͏͔ʁ • ؾʹ͍ͯ͠Δͷ͸2ճͷίΠϯ౤ೖͰ͸ͳ͘ɺ


    ɹෳ਺ճͷίΠϯ౤ೖͳΜͰ͢Ͷɻ ൃݴͷڧऑͷҧ͍ ڧ ऑ ऑ ։ൃऀͷߟ͑ํΛҾ͖ग़͍ͨͨ͠Ί
  31. ൃݴͷڧऑͷҧ͍ • ಉ໊͡લ͸Ͳ͏͔ͱࢥ͏ͷͰ
 ɹม͑ͨ΄͏͕ྑ͍ؾ͕ͯ͠·͢ɻ • ςετͷҙਤͬͯͳΜͰ͔͢Ͷʁ • 3ճ໨͸Ͳ͏ͳΔͷͰ͠ΐ͏͔ʁ • ؾʹ͍ͯ͠Δͷ͸2ճͷίΠϯ౤ೖͰ͸ͳ͘ɺ


    ɹෳ਺ճͷίΠϯ౤ೖͳΜͰ͢Ͷɻ ڧ ऑ ऑ த ݸਓతओு͕গ͚ͩ͋͠ΔఏҊ
  32. ൃݴͷڧऑͷҧ͍ • ಉ໊͡લ͸Ͳ͏͔ͱࢥ͏ͷͰ
 ɹม͑ͨ΄͏͕ྑ͍ؾ͕ͯ͠·͢ɻ • ςετͷҙਤͬͯͳΜͰ͔͢Ͷʁ • 3ճ໨͸Ͳ͏ͳΔͷͰ͠ΐ͏͔ʁ • ؾʹ͍ͯ͠Δͷ͸2ճͷίΠϯ౤ೖͰ͸ͳ͘ɺ


    ɹෳ਺ճͷίΠϯ౤ೖͳΜͰ͢Ͷɻ ڧ ऑ ऑ த
  33. ձ࿩ͷ݁Ռ Scenario: ೖֹۚ֬ೝ Given ࣗಈൢചػ͕͋Δ When 100ԁΛೖۚ Then 100ԁ͕ೖۚ͞Ε͍ͯΔ Scenario:

    ೖֹۚ֬ೝ Given ࣗಈൢചػ͕͋Δ When 100ԁΛೖۚ And 50ԁΛೖۚ Then 150ԁ͕ೖۚ͞Ε͍ͯΔ Scenario: ೖֹۚ֬ೝ Given ࣗಈൢചػ͕͋Δ When 1ԁΛೖۚ Then 0ԁ͕ೖۚ͞Ε͍ͯΔ Scenario: 1ճͷίΠϯ౤ೖ Given ࣗಈൢചػ͕͋Δ When 100ԁΛೖۚ Then 100ԁ͕ೖۚ͞Ε͍ͯΔ Scenario: 2ճͷίΠϯ౤ೖ Given ࣗಈൢചػ͕͋Δ When 100ԁΛೖۚ And 50ԁΛೖۚ Then 150ԁ͕ೖۚ͞Ε͍ͯΔ Scenario: ࢖͍ͨ͘ͳ͍ίΠϯ౤ೖ Given ࣗಈൢചػ͕͋Δ When 1ԁΛೖۚ Then 0ԁ͕ೖۚ͞Ε͍ͯΔ Scenario: 1ճͷίΠϯ౤ೖ Given ࣗಈൢചػ͕͋Δ When 100ԁΛೖۚ Then 100ԁ͕ೖۚ͞Ε͍ͯΔ Scenario: ෳ਺ճͷίΠϯ౤ೖ Given ࣗಈൢചػ͕͋Δ When 100ԁΛೖۚ And 50ԁΛೖۚ Then 150ԁ͕ೖۚ͞Ε͍ͯΔ Scenario: ࢖͍ͨ͘ͳ͍ίΠϯ౤ೖ Given ࣗಈൢചػ͕͋Δ When 1ԁΛೖۚ Then 0ԁ͕ೖۚ͞Ε͍ͯΔ ਺೥ޙɺݟ௚ͨ࣌͠ʹ ςετͷҙਤ͕ΑΓ఻ΘΔͷ͸ͲΕʁ
  34. https://speakerdeck.com/twada/jasst-18-kansai-from-tdd-to-qa?slide=20

  35. ऴΘΓʹ

  36. ࠓ೔ͷ໨తʢ࠶ܝʣ • QA͕ͲͷΑ͏ʹ։ൃͱίϥϘͰ͖Δͷ͔
 ஌ͬͯ΋Β͏ • Agile։ൃͷҰྫͱͯ͠ɺϞϒϓϩͷதͰ
 ࢲʢςετΤϯδχΞʣ͸ͲͷΑ͏ͳ
 ࢥߟɾձ࿩Λ͍ͯ͠Δͷ͔஌ͬͯ΋Β͏

  37. ࠓ೔ͷ໨తʢ࠶ܝʣ • QA͕ͲͷΑ͏ʹ։ൃͱίϥϘͰ͖Δͷ͔
 ஌ͬͯ΋Β͏ • ίϥϘͷ࢓ํ͸4ύλʔϯʹ෼͔ΕΔ • Agile։ൃͷҰྫͱͯ͠ɺϞϒϓϩͷதͰ
 ࢲʢςετΤϯδχΞʣ͸ͲͷΑ͏ͳ
 ࢥߟɾձ࿩Λ͍ͯ͠Δͷ͔஌ͬͯ΋Β͏

    • ͲͷΑ͏ʹ࣭໰ͯ͠ਂ۷Γ͍ͯ͠Δ͔఻͑ͨ
  38. ࢀߟจݙ • ςετΤϯδχΞ͸ͲͷΑ͏ͳࢥߟͰ
 ϖΞϓϩɾϞϒϓϩʹࢀՃ͍ͯ͠Δͷ͔ #WACATE • ςετΤϯδχΞͷ؍఺Λ࣋ͬͯςετॻ͍͍ͯͧ͘ͳ࿩