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

Testing is not the goal (Japanese Edition)

Avatar for nihonbuson nihonbuson PRO
November 11, 2020

Testing is not the goal (Japanese Edition)

Agile Testing Days 2020での講演「Testing is not the goal」を、講演者本人の許可を得て日本語訳しました。

講演者: robmeaney ( https://twitter.com/robmeaney )
Agile Testing Days: https://agiletestingdays.com/

Avatar for nihonbuson

nihonbuson PRO

November 11, 2020
Tweet

More Decks by nihonbuson

Other Decks in Technology

Transcript

  1. ෆ࣮֬ੑͱෳࡶੑͷ؅ཧ @robmeaney ਐలͨ͠ঢ়گ ֎෦৘ใ ల։͞Εͨ ؀ڥͱͷ ૬ޓ࡞༻ ҉໧ͷ ༠ಋͱ౷੍ ؍࡯

    ؍࡯ ৘੎΁ͷదԠ ҙࢥܾఆ ߦಈ ҉໧ͷ ༠ಋͱ౷੍ ܾఆ ʢԾઆʣ ߦಈ (ςετ) ల։͞Εͨ ؀ڥͱͷ ૬ޓ࡞༻ ϑΟʔυόοΫ ϑΟʔυόοΫ ϑΟʔυόοΫ จԽత దԠ จԽͱ ౷߹ Ҏલͷ ܦݧ ৽ͨͳ ৘ใ Ҩ఻త Ҩ࢈ ϑΟʔυ ϑΥϫʔυ ϑΟʔυ ϑΥϫʔυ ϑΟʔυ ϑΥϫʔυ
  2. @robmeaney खಈνΣοΫɺ FlakyͳࣗಈԽɺ ୳ࡧͳ͠ @robmeaney ௿͍ςετ༰қੑ Low Testability ߴ͍ࣗಈԽ༰қੑ High

    Automatability ߴ͍ςετ༰қੑ High Testability ༧ظ͠ͳ͍ ;Δ·͍ͷཧղ ظ଴͞ΕΔ ;Δ·͍ͷཧղ ໰୊͕ݕग़͞Εͳ͍ ߦಈͷมԽΛݕग़͢Δ ༧ظ͠ͳ͍ϦεΫΛ ໌Β͔ʹ͢Δ ໰୊Λૉૣ͘ ݕग़͢Δ ߴ͍୳ࡧ༰қੑ High Explorability
  3. @robmeaney ݎ࿚ͳࣗಈԽɺ แׅతͳΧόϨοδɺ ਝ଎ͳϑΟʔυόοΫ @robmeaney ༧ظ͠ͳ͍ ;Δ·͍ͷཧղ ظ଴͞ΕΔ ;Δ·͍ͷཧղ ໰୊͕ݕग़͞Εͳ͍

    ߦಈͷมԽΛݕग़͢Δ ༧ظ͠ͳ͍ϦεΫΛ ໌Β͔ʹ͢Δ ໰୊Λૉૣ͘ ݕग़͢Δ ௿͍ςετ༰қੑ Low Testability ߴ͍ࣗಈԽ༰қੑ High Automatability ߴ͍ςετ༰қੑ High Testability ߴ͍୳ࡧ༰қੑ High Explorability
  4. @robmeaney ະ஌ͷ΋ͷΛ୳ࡧ͢Δɺ ϦεΫΛ໌Β͔ʹ͢Δɺ ਂ͍ཧղΛ͢Δ @robmeaney ༧ظ͠ͳ͍ ;Δ·͍ͷཧղ ظ଴͞ΕΔ ;Δ·͍ͷཧղ ໰୊͕ݕग़͞Εͳ͍

    ߦಈͷมԽΛݕग़͢Δ ༧ظ͠ͳ͍ϦεΫΛ ໌Β͔ʹ͢Δ ໰୊Λૉૣ͘ ݕग़͢Δ ௿͍ςετ༰қੑ Low Testability ߴ͍ࣗಈԽ༰қੑ High Automatability ߴ͍ςετ༰қੑ High Testability ߴ͍୳ࡧ༰қੑ High Explorability
  5. ͞·͟·ͳछྨͷ ॏཁͳ΋ͷΛݕग़͢Δ ͙͢ʹ໰୊Λݟ͚ͭΔ @robmeaney ༧ظ͠ͳ͍ ;Δ·͍ͷཧղ ظ଴͞ΕΔ ;Δ·͍ͷཧղ ໰୊͕ݕग़͞Εͳ͍ ߦಈͷมԽΛݕग़͢Δ

    ༧ظ͠ͳ͍ϦεΫΛ ໌Β͔ʹ͢Δ ໰୊Λૉૣ͘ ݕग़͢Δ ௿͍ςετ༰қੑ Low Testability ߴ͍ࣗಈԽ༰қੑ High Automatability ߴ͍ςετ༰қੑ High Testability ߴ͍୳ࡧ༰қੑ High Explorability
  6. @robmeaney @robmeaney ͢΂ͯͷมߋʹؔ͢Δ ਝ଎Ͱ৴པੑͷߴ͍ แׅతͳϑΟʔυόοΫ ख़࿅ͨ͠ ޷ح৺Ԣ੝ͳ ਂ͍୳ࡧతςετ ग़ՙՄೳͳ඼࣭Λ ୡ੒͢ΔͨΊʹ

    ແବΛ࠷খݶʹ཈͑Δ ஌͍ͬͯΔ ͜ͱ ஌Βͳ͍ ͜ͱ νΣοΫ ୳ࡧ ςετ ࣗಈԽ༰қੑ ୳ࡧ༰қੑ ςετ༰қੑ ߦಈΛਪਐ͢Δ ཧղΛਪਐ͢Δ ϑΟʔυόοΫΛ Ճ଎ͤ͞Δ @robmeaney
  7. Shadow ReleaseͰϒϥοΫϑϥΠσʔΛੜ͖࢒Δ ΞϓϦ έʔγϣϯ τάϧ ֬ೝ ݹ͍Ӭଓ૚ ৽͍͠Ӭଓ૚ Write Data

    Read Data Controllability Observability Read Data Write Data Pattern: Branch by abstraction with verification @robmeaney ੍ޚੑ Մ؍ଌੑ
  8. @robmeaney ੍ޚੑ Մ؍ଌੑ ෼ղੑ ୯७ੑ ϦεΫͷදग़Λ ੍ޚ͢Δ γεςϜͷ;Δ·͍ Λ؍ଌ͢Δ σϓϩΠΛ

    ෼ղ͢Δ σϓϩΠϓϩηεΛ ୯७Խ͢Δ - Blue-greenσϓϩΠ - Featureτάϧ - ΧφϦΞϦϦʔε - A/Bςετ - Ξϥʔτ - ૯߹తͳςετ -ϩΪϯά - ϞχλϦϯά - τϨʔε - 1ͭͷσϓϩΠͰ 1ͭͷมߋ - Ϙλϯ1ճͷΫϦοΫͰ σϓϩΠ·ͨ͸ϩʔϧόοΫ - Τϥʔ཰ٸ্ঢ࣌ͷ ࣗಈϩʔϧόοΫ
  9. @robmeaney ϊΠζ͕ଟ͘ɺ৴པੑͷ௿͍Ξϥʔτɺ ͓٬༷͕໰୊Λใࠂ͍ͯ͠Δɺ ݪҼΛಛఆ͢Δͷ͕೉͍͠ @robmeaney ໰୊͕ݕग़͞Εͳ͍ Ϣʔβʔͷ௧Έͷ ঱ঢ়Λݕग़͢Δ ݪҼΛૉૣ͘ ಛఆ͢Δ

    ໰୊Λૉૣ͘ ݕग़ͯ͠੾Γ෼͚Δ ௿͍Մ؍ଌੑ Low Observability ߴ͍؂ࢹ༰қੑ High Monitorability ߴ͍Մ؍ଌੑ High Observability ݪҼͷཧղ Өڹͷཧղ ߴ͍୳ࡧ༰қੑ High Explorability
  10. @robmeaney ৴པͰ͖ΔΞϥʔτͷখ͞ͳηοτɺ ঱ঢ়ϕʔεɺ ࣮༻త @robmeaney ໰୊͕ݕग़͞Εͳ͍ Ϣʔβʔͷ௧Έͷ ঱ঢ়Λݕग़͢Δ ݪҼΛૉૣ͘ ಛఆ͢Δ

    ໰୊Λૉૣ͘ ݕग़ͯ͠੾Γ෼͚Δ ݪҼͷཧղ Өڹͷཧղ ௿͍Մ؍ଌੑ Low Observability ߴ͍؂ࢹ༰қੑ High Monitorability ߴ͍Մ؍ଌੑ High Observability ߴ͍୳ࡧ༰қੑ High Explorability
  11. @robmeaney γεςϜͷಈ࡞ʹؔ͢Δਂ͍ཧղɺ ໰୊Λ੾Γ෼͚ΔͨΊʹ ࡉ͔͘෼ੳͨ͠σʔλ @robmeaney ໰୊͕ݕग़͞Εͳ͍ Ϣʔβʔͷ௧Έͷ ঱ঢ়Λݕग़͢Δ ݪҼΛૉૣ͘ ಛఆ͢Δ

    ໰୊Λૉૣ͘ ݕग़ͯ͠੾Γ෼͚Δ ݪҼͷཧղ Өڹͷཧղ ௿͍Մ؍ଌੑ Low Observability ߴ͍؂ࢹ༰қੑ High Monitorability ߴ͍Մ؍ଌੑ High Observability ߴ͍୳ࡧ༰қੑ High Explorability
  12. @robmeaney ໰୊͕ൃੜ͢Δͱ ͙͢ʹݕग़ͯ͠੾Γ෼͚·͢ @robmeaney ݪҼͷཧղ Өڹͷཧղ ໰୊͕ݕग़͞Εͳ͍ Ϣʔβʔͷ௧Έͷ ঱ঢ়Λݕग़͢Δ ݪҼΛૉૣ͘

    ಛఆ͢Δ ໰୊Λૉૣ͘ ݕग़ͯ͠੾Γ෼͚Δ ௿͍Մ؍ଌੑ Low Observability ߴ͍؂ࢹ༰қੑ High Monitorability ߴ͍Մ؍ଌੑ High Observability ߴ͍୳ࡧ༰қੑ High Explorability
  13. @robmeaney ߴ଎Ͱ৴པੑͷߴ͍ γεςϜఀࢭͷݕग़ ख़࿅ͨ͠ɺ޷ح৺Ԣ੝ͳ ٕज़తσόοά ໰୊ʹରͯ͠ͷ ݕग़ͱσόοάͷ ࣌ؒͱ࿑ྗͷ࠷খԽ ஌͍ͬͯΔ ͜ͱ

    ஌Βͳ͍ ͜ͱ νΣοΫ ୳ࡧ ؍ଌ ؂ࢹ༰қੑ ୳ࡧ༰қੑ Մ؍ଌੑ ߦಈΛਪਐ͢Δ ཧղΛਪਐ͢Δ ճ෮Λ Ճ଎ͤ͞Δ
  14. @robmeaney ࣌ؒͱඅ༻͕͔͔Γɺ ޮՌͷͳ͍ςετɺ ࣦഊ͕େ͖ͳӨڹʹͳΔ @robmeaney ௿͍ੜ࢈ੑ Low Performance ߴ͍ӡ༻ੑ High

    Operability ߴ͍ςετ༰қੑ High Testability ߴ͍ੜ࢈ੑ High Performance ো֐ͷՄೳੑͷܰݮ ো֐ʹΑΔӨڹͷܰݮ ஗ͯ͘όάͩΒ͚ ӨڹΛૉૣܰ͘ݮ͢Δ ϦεΫʹૉૣ͘ ΞΫηε͢Δ εϐʔυͱ҆ఆੑ
  15. ϦεΫʹؔ͢Δ৘ใʹجͮ͘ҙࢥܾఆɺ ࣦഊͷՄೳੑͷ௿ݮɺ νʔϜ͕ࣗ৴Λ࣋ͬͯ ਝ଎ʹߦಈͰ͖ΔΑ͏ʹͳΔ @robmeaney ো֐ͷՄೳੑͷܰݮ ো֐ʹΑΔӨڹͷܰݮ ஗ͯ͘όάͩΒ͚ ӨڹΛૉૣܰ͘ݮ͢Δ ϦεΫʹૉૣ͘

    ΞΫηε͢Δ εϐʔυͱ҆ఆੑ ௿͍ੜ࢈ੑ Low Performance ߴ͍ӡ༻ੑ High Operability ߴ͍ςετ༰қੑ High Testability ߴ͍ੜ࢈ੑ High Performance
  16. @robmeaney νʔϜ͕ݱ࣮ʹରॲ͠ɺ ආ͚ΒΕͳ͍ࣦഊͷӨڹΛ ࠷খݶʹ཈͑Δ͜ͱΛ Մೳʹ͢Δ @robmeaney ো֐ͷՄೳੑͷܰݮ ো֐ʹΑΔӨڹͷܰݮ ஗ͯ͘όάͩΒ͚ ӨڹΛૉૣܰ͘ݮ͢Δ

    ϦεΫʹૉૣ͘ ΞΫηε͢Δ εϐʔυͱ҆ఆੑ ௿͍ੜ࢈ੑ Low Performance ߴ͍ӡ༻ੑ High Operability ߴ͍ςετ༰қੑ High Testability ߴ͍ੜ࢈ੑ High Performance
  17. @robmeaney ϦεΫΛޮՌతʹ؅ཧ͠ɺ νʔϜ͕඼࣭Λଛͳ͏͜ͱͳ͘ ਝ଎ʹߦಈͰ͖Δ Α͏ʹͳΔ @robmeaney ো֐ͷՄೳੑͷܰݮ ো֐ʹΑΔӨڹͷܰݮ ஗ͯ͘όάͩΒ͚ ӨڹΛૉૣܰ͘ݮ͢Δ

    ϦεΫʹૉૣ͘ ΞΫηε͢Δ εϐʔυͱ҆ఆੑ ௿͍ੜ࢈ੑ Low Performance ߴ͍ӡ༻ੑ High Operability ߴ͍ςετ༰қੑ High Testability ߴ͍ੜ࢈ੑ High Performance
  18. @robmeaney @robmeaney σϓϩΠϦʔυλΠϜͷ୹ॖɺ σϓϩΠස౓ͷ૿Ճ @robmeaney ૝૾ྗ ݱ࣮త ςετ༰қੑ ӡ༻ੑ ࠷దԽ͞Εͨ

    ϑϩʔ ग़ՙՄೳͳ඼࣭΁ͷ ࣌ؒͱ࿑ྗΛ ࠷খݶʹ཈͑Δ ඼࣭Λҡ࣋͢ΔͨΊͷ ࣌ؒͱ࿑ྗΛ ࠷খݶʹ཈͑Δ ඼࣭ͷ૯ίετΛ ࠷খݶʹ཈͑Δ ॲཧೳྗΛ ޲্ͤ͞Δ ҆ఆੑΛ ޲্ͤ͞Δ σϦόϦʔΛ Ճ଎ͤ͞Δ
  19. @robmeaney @robmeaney มߋͷࣦഊ཰ͷ௿Լɺ ճ෮·Ͱͷ࣌ؒͷ୹ॖ @robmeaney ૝૾ྗ ݱ࣮త ςετ༰қੑ ӡ༻ੑ ࠷దԽ͞Εͨ

    ϑϩʔ ग़ՙՄೳͳ඼࣭΁ͷ ࣌ؒͱ࿑ྗΛ ࠷খݶʹ཈͑Δ ඼࣭Λҡ࣋͢ΔͨΊͷ ࣌ؒͱ࿑ྗΛ ࠷খݶʹ཈͑Δ ඼࣭ͷ૯ίετΛ ࠷খݶʹ཈͑Δ ॲཧೳྗΛ ޲্ͤ͞Δ ҆ఆੑΛ ޲্ͤ͞Δ σϦόϦʔΛ Ճ଎ͤ͞Δ
  20. ূڌʹج͍ͮͯ౤ࢿ͢ΔͨΊʹ3XΛ࢖༻͢Δ @robmeaney ߴ଎Ͱ҆Ձͳ ϑΣΠϧηʔϑ࣮ݧͰ ਝ଎ʹֶशͰ͖ΔΑ͏ʹ ࠷దԽ͢Δ ςετ༰қੑͱӡ༻ੑ΁ͷ ౤ࢿΛ௨ͯ͡ ෳࡶ͞Λ؅ཧ͢Δ͜ͱʹΑΓɺ ऩӹΛ࠷దԽ͢Δ

    ςετ༰қੑͷཁٻ ӡ༻ੑͷཁٻ ϓϩμΫτϚʔέοτ ϑΟοτ ҆શʹࣦഊ͢Δ ࣮ݧʹΑֵͬͯ৽͢Δ ૿େ͢Δधཁʹ ߹Θ֦ͤͯு͢Δ ӡ༻ޮ཰Λ ࠷దԽ͢Δ ߴ͍ෆ࣮֬ੑ ߴ͍༧ଌՄೳੑ ୳ݕ ֦ு ൈਮ Extract
  21. Great EngEx starts with simple questions: How does it feel

    to: • build your software systems? • test your software systems? • deploy your software systems? • operate your software systems? @robmeaney @robmeaney
  22. @robmeaney A Holistic Testability Model - 10 P’s of Testability

    @robmeaney *Inspired by models from Anne-Marie Charrett, James Bach & Maria Kedemo