Agile開発に入り込むQAの方法 #fuku_mori / Agile QA Night in FUKUOKA

706ff501573a736401aa4de5adc88e05?s=47 nihonbuson
April 23, 2019

Agile開発に入り込むQAの方法 #fuku_mori / Agile QA Night in FUKUOKA

2019年4月23日開催のイベント「Agile QA Night in FUKUOKA」での発表資料です。
https://connpass.com/event/126565/

706ff501573a736401aa4de5adc88e05?s=128

nihonbuson

April 23, 2019
Tweet

Transcript

  1. 2.

    ࣗݾ঺հ • ϒϩοίϦʔ • @nihonbuson • גࣜձࣾϏζϦʔν • JaSST Review

    ࣮ߦҕһ௕ • WACATE ࣮ߦҕһ • ςετΤϯδχΞʹΑΔ
 ߹ಉࢽʰCrabinkʱஶऀ
  2. 22.

    1ͭ໨ͷςετγφϦΦ Scenario: ೖֹۚ֬ೝ Given ࣗಈൢചػ͕͋Δ When 100ԁΛೖۚ Then 100ԁ͕ೖۚ͞Ε͍ͯΔ public

    class VendingMachine { int currentMoney; public void insertCoin(int money) { currentMoney = money; } public int getCurrentMoney() { return currentMoney; } }
  3. 23.

    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ʮ͓ۚΛԁೖΕͨޙʹɺԁΛೖΕͨΒɺ
 ͪΌΜͱԁʹͳΔΑ͏ʹͯ͠΄͍͠ͳʯ
  4. 24.

    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; } }
  5. 25.

    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; } }
  6. 26.

    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ʮ̍ԁߗ՟͸ରԠͨ͘͠ͳ͍ͳʯ
  7. 27.

    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; } }
  8. 28.

    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; } }
  9. 31.

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

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

    Scenario: 1ճͷίΠϯ౤ೖ Given ࣗಈൢചػ͕͋Δ When 100ԁΛೖۚ Then 100ԁ͕ೖۚ͞Ε͍ͯΔ Scenario: 2ճͷίΠϯ౤ೖ

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

    ։ൃऀͱͷձ࿩(2) ͳΔ΄Ͳɻ
 ͪͳΈʹɺͭ໨ͷςετͷҙਤͬͯ
 ͳΜͰ͔͢Ͷʁ ίΠϯΛճ͚ͩͰ͸ͳ͘ɺ
 ճ౤ೖͨ࣌͠ʹ΋ͪΌΜͱಈ͔͘
 ֬ೝ͍ͨ͠ͱ͍͏ҙਤͰ͢ɻ Scenario: 1ճͷίΠϯ౤ೖ Given

    ࣗಈൢചػ͕͋Δ When 100ԁΛೖۚ Then 100ԁ͕ೖۚ͞Ε͍ͯΔ Scenario: 2ճͷίΠϯ౤ೖ Given ࣗಈൢചػ͕͋Δ When 100ԁΛೖۚ And 50ԁΛೖۚ Then 150ԁ͕ೖۚ͞Ε͍ͯΔ Scenario: ࢖͑ͳ͍ίΠϯ౤ೖ Given ࣗಈൢചػ͕͋Δ When 1ԁΛೖۚ Then 0ԁ͕ೖۚ͞Ε͍ͯΔ ࢲ ։ൃऀ
  12. 34.

    ։ൃऀͱͷձ࿩(3) ͳΔ΄Ͳʔɻ
 ͦͨ͠ΒʰճͷίΠϯ౤ೖʱͱ
 ॻ͍͍ͯ·͕͢ɺ
 ճ໨͸Ͳ͏ͳΔͷͰ͠ΐ͏͔ʁ ճ໨͸ճ໨ͱಉ͘͡ɺ
 Ճࢉ͞Ε͍ͯ͘࢓૊ΈͳͷͰɺ
 ϩδοΫ্͸େৎ෉Ͱ͢ɻ Scenario: 1ճͷίΠϯ౤ೖ

    Given ࣗಈൢചػ͕͋Δ When 100ԁΛೖۚ Then 100ԁ͕ೖۚ͞Ε͍ͯΔ Scenario: 2ճͷίΠϯ౤ೖ Given ࣗಈൢചػ͕͋Δ When 100ԁΛೖۚ And 50ԁΛೖۚ Then 150ԁ͕ೖۚ͞Ε͍ͯΔ Scenario: ࢖͑ͳ͍ίΠϯ౤ೖ Given ࣗಈൢചػ͕͋Δ When 1ԁΛೖۚ Then 0ԁ͕ೖۚ͞Ε͍ͯΔ ࢲ ։ൃऀ
  13. 35.

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

    When 100ԁΛೖۚ Then 100ԁ͕ೖۚ͞Ε͍ͯΔ Scenario: 2ճͷίΠϯ౤ೖ Given ࣗಈൢചػ͕͋Δ When 100ԁΛೖۚ And 50ԁΛೖۚ Then 150ԁ͕ೖۚ͞Ε͍ͯΔ Scenario: ࢖͑ͳ͍ίΠϯ౤ೖ Given ࣗಈൢചػ͕͋Δ When 1ԁΛೖۚ Then 0ԁ͕ೖۚ͞Ε͍ͯΔ ࢲ ։ൃऀ
  14. 36.

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

    When 100ԁΛೖۚ Then 100ԁ͕ೖۚ͞Ε͍ͯΔ Scenario: ෳ਺ճͷίΠϯ౤ೖ Given ࣗಈൢചػ͕͋Δ When 100ԁΛೖۚ And 50ԁΛೖۚ Then 150ԁ͕ೖۚ͞Ε͍ͯΔ Scenario: ࢖͑ͳ͍ίΠϯ౤ೖ Given ࣗಈൢചػ͕͋Δ When 1ԁΛೖۚ Then 0ԁ͕ೖۚ͞Ε͍ͯΔ ࢲ ։ൃऀ
  15. 43.

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