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

Testing is not the goal (Japanese Edition)

nihonbuson
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/

nihonbuson

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