Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

ࣗݾ঺հ • ϒϩοίϦʔ • @nihonbuson • גࣜձࣾϏζϦʔν • JaSST Review ࣮ߦҕһ௕ • WACATE ࣮ߦҕһ • ςετΤϯδχΞʹΑΔ 
 ߹ಉࢽʰCrabinkʱஶऀ

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

Agile։ൃͱ 
 QAͷؔΘΓํ

Slide 6

Slide 6 text

ࢀՃऀΞϯέʔτΑΓ 25% 26% 33% 16% QA           

Slide 7

Slide 7 text

Agile։ൃʹ͓͚ΔQAͬͯʁ • Agile։ൃʹ͓͚ΔQAͷؔΘΓํ͸ 
 ·ཱ͍ͩ֬ͯ͠ͳ͍ • ʢݪཧओٛతͳʣScrum։ൃͰ͸ɺQA͸ 
 εςʔΫϗϧμʔͷҰͭͱҐஔ෇͚ΒΕΔ • ࠓճ͸QAͷؔΘΓํΛ4ͭʹ෼ྨͯ͠Έͨ

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

Ϟϒϓϩͱ͸Կ͔ʁ

Slide 13

Slide 13 text

Ϟϒϓϩͱ͸Կ͔ʁ • ϞϒϓϩͰ͸1νʔϜʢ໿6ਓʣͰߦ͏ • 1ͭͷը໘ΛνʔϜશһ͕ݟͯɺ 
 ͦͷը໘্ͰࢦఠɾൃݴΛߦ͍ͬͯ͘ख๏ • ը໘ͷૢ࡞Λ͢Δਓ͸ަ୅੍

Slide 14

Slide 14 text

https://speakerdeck.com/takaking22/rede fi nition-of-review-number-jasst-number-jasstreview?slide=31

Slide 15

Slide 15 text

https://speakerdeck.com/takaking22/rede fi nition-of-review-number-jasst-number-jasstreview?slide=32

Slide 16

Slide 16 text

ϞϒϓϩͰͷಇ͖ํ https://speakerdeck.com/takaking22/rede fi nition-of-review-number-jasst-number-jasstreview?slide=47

Slide 17

Slide 17 text

ϞϒϓϩΛ΍Δͱྑ͍͜ͱ ዁౓͕ൃੜͮ͠Β͍ https://speakerdeck.com/takaking22/rede fi nition-of-review-number-jasst-number-jasstreview?slide=48

Slide 18

Slide 18 text

ϞϒϓϩͰͲ͜·Ͱ΍Δͷʁ • ϞϒϓϩΛ࠷ॳʹ΍ͬͨձࣾͰ͸ɺ 
 ͓٬༷ͱͷϝʔϧฦ৴΋ 
 ϞϒϓϩʢϞϒϫʔΫʣͰߦ͍ͬͯΔΒ͍͠ • ϞϒϓϩΛߦ͏͜ͱͰ 
 QA͕ςετதʹؾʹ͍ͯ͠Δ͜ͱ΍ 
 ࠓޙϦεΫʹͳΓ͏Δ͜ͱΛ࿩ͤΔͷͰ͸ʁ 
 ɹɹˠ͜ͷ͋ͱɺ۩ମతͳྫͰࣔͯ͠ΈΔ

Slide 19

Slide 19 text

Ϟϒϓϩͷ୊ࡐͱਐΊํ

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 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 23

Slide 23 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 24

Slide 24 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 25

Slide 25 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 26

Slide 26 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 27

Slide 27 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 28

Slide 28 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 29

Slide 29 text

ࢲͷࢦఠ఺

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

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

Slide 32

Slide 32 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 33

Slide 33 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 34

Slide 34 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 35

Slide 35 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 36

Slide 36 text

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

Slide 37

Slide 37 text

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

Slide 38

Slide 38 text

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

Slide 39

Slide 39 text

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

Slide 40

Slide 40 text

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

Slide 41

Slide 41 text

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

Slide 42

Slide 42 text

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

Slide 43

Slide 43 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 44

Slide 44 text

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

Slide 45

Slide 45 text

ऴΘΓʹ

Slide 46

Slide 46 text

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

Slide 47

Slide 47 text

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

Slide 48

Slide 48 text

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