Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

Agile։ൃͱ 
 QAͷؔΘΓํ

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

Ϟϒϓϩͷ୊ࡐͱਐΊํ

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

1ͭ໨ͷςετγφϦΦ Scenario: ೖֹۚ֬ೝ Given ࣗಈൢചػ͕͋Δ When 100ԁΛೖۚ Then 100ԁ͕ೖۚ͞Ε͍ͯΔ public class VendingMachine { int currentMoney ; public void insertCoin(int money) { currentMoney = money ; } public int getCurrentMoney() { return currentMoney ; } }

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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 ; } }

Slide 15

Slide 15 text

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 ; } }

Slide 16

Slide 16 text

3ͭ໨ͷςετγφϦΦ PO͔Βͷཁ๬ 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ʮ̍ԁߗ՟͸ରԠͨ͘͠ͳ͍ͳʯ

Slide 17

Slide 17 text

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 ; } }

Slide 18

Slide 18 text

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 ; } }

Slide 19

Slide 19 text

ࢲͷࢦఠ఺

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

։ൃऀͱͷձ࿩(2) ͳΔ΄Ͳɻ 
 ͪͳΈʹɺͭ໨ͷςετͷҙਤͬͯ 
 ͳΜͰ͔͢Ͷʁ ίΠϯΛճ͚ͩͰ͸ͳ͘ɺ 
 ճ౤ೖͨ࣌͠ʹ΋ͪΌΜͱಈ͔͘ 
 ֬ೝ͍ͨ͠ͱ͍͏ҙਤͰ͢ɻ Scenario: 1ճͷίΠϯ౤ೖ Given ࣗಈൢചػ͕͋Δ When 100ԁΛೖۚ Then 100ԁ͕ೖۚ͞Ε͍ͯΔ Scenario: 2ճͷίΠϯ౤ೖ Given ࣗಈൢചػ͕͋Δ When 100ԁΛೖۚ And 50ԁΛೖۚ Then 150ԁ͕ೖۚ͞Ε͍ͯΔ Scenario: ࢖͍ͨ͘ͳ͍ίΠϯ౤ೖ Given ࣗಈൢചػ͕͋Δ When 1ԁΛೖۚ Then 0ԁ͕ೖۚ͞Ε͍ͯΔ ࢲ ։ൃऀ

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

ςετΤϯδχΞ͸ 
 ࢦఠࣄ߲ΛͲͷΑ͏ʹ఻͑Δ͔ • ࢦఠࣄ߲Λݴ͍੾ΓͷܗͰ఻͑ͳ͍ɻ • ίʔυͷओମ͸։ൃऀ • ఏҊ͸ͭͭ͠΋։ൃऀʹ൑அΛ೚ͤΔ • ࢦఠࣄ߲͸༏ઌ౓Λ͚ͭͯ࿩͢ͷͰ͸ͳ͘ɺ 
 ൃݴ࣌ʹڧऑΛ͚ͭͯ࿩͢ɻ

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

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

Slide 33

Slide 33 text

ձ࿩ͷ݁Ռ 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ԁ͕ೖۚ͞Ε͍ͯΔ ਺೥ޙɺݟ௚ͨ࣌͠ʹ ςετͷҙਤ͕ΑΓ఻ΘΔͷ͸ͲΕʁ

Slide 34

Slide 34 text

https://speakerdeck.com/twada/jasst-18-kansai-from-tdd-to-qa?slide=20

Slide 35

Slide 35 text

ऴΘΓʹ

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

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

Slide 38

Slide 38 text

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