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

とあるQAエンジニアが、マイクロサービスの開発チームと、出会ったーー / Scrum Fest Niigata 2023

とあるQAエンジニアが、マイクロサービスの開発チームと、出会ったーー / Scrum Fest Niigata 2023

Scrum Fest Niigata 2023 の登壇資料です
https://confengine.com/conferences/scrum-fest-niigata-2023/proposal/18375/qa

【スライド内で参照したリンク】
「0 → 1フェーズでE2E自動テストを導入した私たちのこれまでとこれから」
https://speakerdeck.com/yoyakoba/0-1-huezude-e2e-zi-dong-tesutowodao-ru-sitasi-tatifalse-koremadetokorekara

『スターティングgRPC』
https://nextpublishing.jp/book/11746.html

「APIテストを⾃動化してリグレッションテストにしたら、安⼼で安全な開発ができて気持ちが楽になった」
https://jasst.jp/symposium/jasst20niigata/pdf/S5.pdf

Writing tests - Postman Learning Center
https://learning.postman.com/docs/writing-scripts/test-scripts/

【利用したイラスト素材】
ソコスト
https://soco-st.com/

yoya_k

May 26, 2023
Tweet

More Decks by yoya_k

Other Decks in Technology

Transcript

  1. ͱ͋ΔQAΤϯδχΞ͕ɺ
    ϚΠΫϩαʔϏεͷ
    ։ൃνʔϜͱɺ
    ग़ձͬͨʔʔ
    2023.05.20 Scrum Fest Niigata 2023
    גࣜձࣾϚωʔϑΥϫʔυ
    Yoya KOBAYASHI

    View Slide

  2. ϚωʔϑΥϫʔυ Ϋϥ΢υ֬ఆਃࠂ
    QAϦʔμʔ
    ܦྺ
    ● 2009ʙ2016ɹখചۀ޲͚γεςϜ։ൃ
    ● 2016ʙ2019ɹϒϥ΢βήʔϜ։ൃ
    ● 2019ʙɹϚωʔϑΥϫʔυ JOIN

    ɹɹɹɹɹˍ QAΤϯδχΞʹస਎
    ● 2021ʙɹΫϥ΢υ֬ఆਃࠂͷ

    ɹɹɹɹ QAνʔϜΛ্ཱͪ͛ɺࠓʹࢸΔ
    খྛ ༽࠸
    (KOBAYASHI Maya / yoya)
    @yoya_k
    ɹ
    https://note.com/yoya_k

    View Slide

  3. Scrum Fest Niigata 2022 Ͱ͸͜Μͳ࿩Λ͠·ͨ͠
    Hiroaki Nishijo, Yoya Kobayashi ʮ0 → 1ϑΣʔζͰE2EࣗಈςετΛಋೖͨ͠ࢲͨͪͷ͜Ε·Ͱͱ͜Ε͔Βʯ
    2022-05-21 ެ։ (2023-05-19 ΞΫηε)
    https://speakerdeck.com/yoyakoba/0-1-huezude-e2e-zi-dong-tesutowodao-ru-sitasi-tatifalse-koremadetokorekara

    View Slide

  4. ࠓ೔͸
    ·ͬͨ͘ҧ͏࿩Λ͠·͢

    View Slide

  5. ͜ͷϚΠΫϩαʔϏεͷςετʹ͍ͭͯ૬ஊʹ৐ͬͯ΄͍͠ɺͱ͍͏࿩͕΍͖ͬͯͨ
    ͜ͱͷ࢝·Γ
    ● ࢓༁ா
    ● ޱ࠲໌ࡉ
    ● ܾࢉॻ
    ● etc.
    ͱͬͯ΋ϞϊϦγοΫͳ
    γεςϜ
    ػೳ
    A
    ػೳ
    A
    ϚΠΫϩαʔϏεԽʂ


    ʢAPI ͷΈͷఏڙʣ
    etc.
    ଞͷϓϩμΫτͰ΋


    ར༻Ͱ͖ΔΑ͏ʹ͍ͨ͠ʂ

    View Slide

  6. ͯ͞ɺࠔͬͨͧ
    ϚΠΫϩαʔϏεͬͯ
    ͳΜ͔೉ͦ͠͏……
    ͦ΋ͦ΋
    API͚ͩͷαʔϏεΛ
    ςετͨ͜͠ͱ͕ͳ͍ΜͩΑͳ……
    UI͕ແ͍ͱ
    શવΠϝʔδͰ͖ͳ͍……
    ࣾ಺ͷଞͷQA΋
    ܦݧ͕ແ͍Έ͍ͨ……
    (※ ౰࣌)
    εΫϥϜͰ։ൃͯ͠Δͬͯ
    ݴͬͯͨͳ……
    খͦ͞͏ͳνʔϜͩ͠ɺ
    ੒ཱͯ͠Δͷ͔ͳ……

    View Slide

  7. Attention
    ͜ͷηογϣϯͰ͸ɺͱ͋Δۦ͚ग़͠ (??) QAΤϯδχΞ͕
    ໿3ϲ݄ؒϚΠΫϩαʔϏεͷ։ൃνʔϜͱҰॹʹաͨ͝͠ͱ͖ͷ
    ମݧஊΛ͓ૹΓ͠·͢
    ● ੒ޭஊͰ͸͋Γ·ͤΜ͠ɺ

    ϕετϓϥΫςΟεΛ൸࿐͢Δ࿩Ͱ΋͋Γ·ͤΜ
    ● Ή͠Ζ൴Β͔Βֶ͹ͤͯ΋Βͬͨͱ͍͏ཱ৔Ͱ͢
    ● ๭଺ࡏهΛݟΔΑ͏ͳ

    ΏͬͨΓͨ͠ؾ࣋ͪͰָ͓͠Έ͍ͩ͘͞

    View Slide

  8. ؍࡯Ͱݟ͖͑ͯͨ
    ʮ੔͑Δਓʯͷඞཁੑ

    View Slide

  9. ϝϯόʔߏ੒
    ● ϓϩμΫτϚωʔδϟʔ
    ● σβΠφʔ
    ● ΤϯδχΞ
    νʔϜͷঢ়ଶΛݟͯΈΑ͏
    Ϣʔβʔମݧͷ
    AsIs Λ੔ཧͯ͠
    ToBe Λ
    ܾΊΔͱ͜Ζ͔Β
    ࢝ΊͨΜͩʂ
    શମతͳετʔϦʔΛ
    ߟ͑Δ্Ͱ
    σβΠφʔͷڠྗ͸
    ͔ܽͤͳ͍Ͷ

    View Slide

  10. ཁ݅΍࣮૷Ͱɺࢲ͕QAΤϯδχΞͱͯ͠ࢦఠ͍ͨ͠ϙΠϯτ͸େମϝϯόʔಉ࢜ͰࢦఠͰ͖͍ͯͨ
    ٞ࿦΋׆ൃͰϩʔϧʹͱΒΘΕͣɺॱௐͦ͏ʹݟ͑Δͳ……
    νʔϜͷঢ়ଶΛݟͯΈΑ͏
    Ϣʔβʔʹ͸
    ͜͏ݟ͍͔ͤͨΒɺ
    ͦͷϝοηʔδͩͱ
    ࠞཚͪ͠Ό͏͔΋
    Designer
    PdM
    Developer
    طଘγεςϜʹ
    ͜͏͍͏ಈ͖͕͚͋ͬͨͲɺ
    ͜ͷ৔߹Ͳ͏͠Α͏͔ʁ USMΛݟ͍ͯͯ
    ߟ͑ͨΜͰ͕͢……

    View Slide

  11. ● ʮࠓɺ͜͜ʯʹूதͰ͖͍ͯͳ͍
    ○ ͔ͳΓઌͷݒҊࣄ߲·Ͱٞ࿦͍ͯ͠Δ͜ͱ͕ଟ͍
    ■ ௚ۙͰԿΛ͢΂͖͔࣌ʑࠞཚ͍ͯ͠Δ
    ■ ͲͷϑΣʔζͷ࢓༷ʹ͍ͭͯ࿩͍ͯ͠Δ͔ʹ͍ͭͯ΋ࠞཚ͍ͯ͠Δ
    ○ ݱࡏͷ࿩Λ͢Δ৔ͱɺকདྷతͳ࿩Λ͢Δ৔ͷڥ໨͕͍͋·͍ʹͳΓ͕ͪ
    ■ ϛʔςΟϯάͷΰʔϧ͕Θ͔Βͳ͍ͷͰɺ

    ࿩͍ͨ͜͠ͱΛ࿩͠ਚ͘͢·ͰऴΘΒͳ͍

    ● όοΫϩάͷεςʔλε͕͍͋·͍
    ○ ׬͔ྃͨ͠Ͳ͏͔͸ɺΞΠςϜΛͱͬͨΤϯδχΞͷײ֮ͰܾΊ͍ͯͨ
    ○ ௥ՃͰൃੜͨ͠ཁ݅ͷѻ͍ʹ͍ͭͯϧʔϧΛܾΊ͍ͯͳ͍
    ■ ͦͷΞΠςϜͷதͰରॲ͢Δ৔߹ɺผΞΠςϜʹ͢Δ৔߹ɺ·ͪ·ͪ
    ■ ผ్੾Γग़ͨ͠όοΫϩάΞΠςϜ͕௥੻Ͱ͖ͣɺॏෳ΍औΓҧ͑΋……
    ͦΕͰ΋ͪΐͬͱة͏͍܏޲͕……

    View Slide

  12. εΫϥϜϚελʔͷΑ͏ͳɺ
    ၆ᛌͯ͠੔ཧΛͯ͘͠ΕΔਓ͕͍Δͱ҆৺͔΋͠Εͳ͍
    ·ͣ͸
    ࠓSprintͰ
    ୡ੒͍ͨ͜͠ͱΛ
    ࿩͠·͠ΐ͏ʂ
    είʔϓ͕
    গ͠มΘΓͦ͏Ͱ͢Ͷʂ
    όοΫϩάΞΠςϜΛ
    ௥Ճ͠·ͤΜ͔ʁ
    όά؅ཧදΛ
    ࡞Γ·͠ΐ͏ʂ
    ͍͍ٞ͘͢͝࿦ͳͷͰ
    υΩϡϝϯτʹ
    ·ͱΊ·ͤΜ͔ʁ

    View Slide

  13. ͯ͞ɺࣗ෼͸
    ԿΛ͠Α͏ʁ

    View Slide

  14. ೃછΈͷͳ͍ϫʔυ͹͔ΓͰ ಀ͛ग़ͨ͘͠ͳΔ
    API͸
    gRPC Λ࠾༻͠·͢ʂ
    ͋ͱࠓճ
    Pub/Sub ʹ͢Δܭը΋
    ཱ͍ͯͯ·ͯ͠ʙ
    ԿͦΕʙʙʙ (ٽ)
    REST Ͱ͢Β
    ͪΐͬͱ͔͠
    ৮ͬͨ͜ͱͳ͍ͷʹ……
    ※ Pub/Sub ͷ࿩͸ࠓճׂѪ͠·͢ɻ͝ΊΜͳ͍͞ʂ

    View Slide

  15. ࣗΒ खΛಈ͔͢ඞཁ͸ ͳ͍͔΋͠Εͳ͍͕……
    ϨϏϡʔத……
    શવϐϯͱ͜ͳ͍͠ɺ
    ͜Ε͕
    ਖ਼࣮͘͠૷Ͱ͖͍ͯΔ͔ͳΜͯ
    Ͳ͏൑அ͢Ε͹
    ͍͍ͷ΍Β……

    View Slide

  16. ·ͣ͸ gRPC ͷ࣮ߦ͕Ͱ͖ΔΑ͏ʹ͠Α͏
    gRPC ͷެࣜυΩϡϝϯτ͸
    ೔ຊޠ൛͕ແ͍͔Βɺ
    ಡΉ͚ͩͰ͕͔͔࣌ؒΔͧ……
    ʰελʔςΟϯάgRPCʱ
    ෢্ কथ ஶ
    ΠϯϓϨε NextPublishing, 2020ग़൛
    https://nextpublishing.jp/book/11746.html
    REST ͱͷҧ͍Λͬ͘͟Γͱཧղ͢Δͱ͜Ζ͔Βελʔτ

    View Slide

  17. खΛಈ͔͢͜ͱͰɺݟ͖͑ͯͨ͜ͱ
    ● ޾͍ɺطʹςετ؀ڥʹσϓϩΠ͞ΕΔͱ͜Ζ·Ͱ੔͍࢝Ί͍ͯͨ
    ○ gRPC ࣮ߦʹඞཁͳπʔϧͱ઀ଓઌ͑͞෼͔Ε͹ɺ΋͏؆୯ʹಈ͔ͤΔ
    ○ ͨͩ͠ɺ͜Ε͕ QA Ͱ΋ૢ࡞Ͱ͖Δঢ়ଶͳͷ͔Ͳ͏͔ Dev ʹ͸Θ͔Βͳ͍
    ■ ૬खͷεΩϧΛ೺Ѳ͍ͯ͠ͳ͍͜ͱʹΑΔɺա৒ͳԕྀ
    ■ QAΤϯδχΞͷํ͔ΒࣗΒಈ͍ͯ

    ʮ͔͜͜Βઌ͕Θ͔Βͳ͍ʯͱ͍͏ϥΠϯΛࣔͨ͠ํ͕ঢ়گ͸ਐల͢Δ

    ● ࣮ࡍʹૢ࡞ͯ͠ΈͯɺϝϦοτ͸͔͋ͬͨ
    ○ ۩ମతͳ input / output Λݟͨ͜ͱͰࢦఠͰ͖ΔՕॴ͕૿͑ͨ
    ■ ᐆດͳఆٛ
    ■ ޡղ͠΍͍͢ϑΟʔϧυ໊ (ྨࣅͷ id ͕ෳ਺͋ΔͳͲ)

    View Slide

  18. ͯ͞ɺ࣍͸ Ͳ͏͢Δʁ
    ೰ΜͰ͍Δͱ͖ɺώϯτʹͳͬͨͷ͸͜ͷεϥΠυ
    JaSSTʼ20 Niigata ࣄྫ঺հ
    ʮAPIςετΛࣗಈԽͯ͠ϦάϨογϣϯςετʹͨ͠Βɺ҆৺Ͱ҆શͳ։ൃ͕Ͱ͖ͯؾָ͕࣋ͪʹͳͬͨʯ
    https://jasst.jp/symposium/jasst20niigata/pdf/S5.pdf
    (ҏ౻५ฏ, 2020-09-28 ެ։, 2023-05-19 ΞΫηε)
    (͡ΎΜ΃ʔ͞Μͷൃදʂ)

    View Slide

  19. ͯ͞ɺ࣍͸ Ͳ͏͢Δʁ
    https://jasst.jp/symposium/jasst20niigata/pdf/S5.pdf
    Ҿ༻ݩɿಉ্, p.18 (2023-05-19 ΞΫηε)
    ͋ΕɺجຊతͳྲྀΕ͸มΘΒͳ͍ͳ……ʂʁɹͱ͍͏͜ͱʹؾ෇͘

    View Slide

  20. ผΕ͸ಥવʹɺ
    ͦͯ͠
    ϥετεύʔτ΁

    View Slide

  21. ٸܹʹΧΦεϔಥೖ͢ΔνʔϜ
    େਓͷࣄ৘ʹΑΓɺ͜ͷϚΠΫϩαʔϏε͕ผνʔϜʹҠ؅͞ΕΔ͜ͱʹ
    ● 2ϲ݄ޙɺ͜ͷνʔϜ͸ղࢄ͠·͢
    ● Ҿ͖ܧ͗ΛεϜʔζʹߦ͏ͨΊɺ
    ○ Ϟσϧͷߏ੒ΛɺҠ؅ઌͷνʔϜ͕ཧղ͠΍͍͢΋ͷʹม͑·͢
    ○ API ͸ɺgRPC Ͱ͸ͳ͘ REST ʹ͍ͯͩ͘͠͞
    ͜ΕʹΑΓɺ
    աڈʹ΍ͬͨ͜ͱɾ͜Ε͔Β΍Δ͜ͱɾকདྷ΍Γ͔ͨͬͨ͜ͱ ͕ࠞࡏ࢝͠ΊΔ
    ● Ҿ͖ܧ͗ͷϛʔςΟϯάɺҠ؅ઌ͔Βͷ࣭໰
    ● ࣮૷ࡁΈͷػೳΛ΄΅Πν͔Β࡞Γ௚͠
    ● ணख࢝͠Ί͍ͯͨػೳͷ࣮૷Λ΍Γ੾Δ
    ● ઌͷϑΣʔζͰܭը͍ͯͨ͠ػೳͷཁ݅੔ཧɹetc.

    View Slide

  22. ςετͷ໨త΋େ෯ʹํ޲స׵
    ࣮૷ࡁΈͷػೳͷʮਖ਼͍͠ڍಈʯ͕ԿͰ͋Δ͔ɺ
    ։ൃϝϯόʔ͕૯ೖΕସ͑͞Εͯ΋ཧղͰ͖Δঢ়ଶʹ͢Δ͜ͱ ΛୈҰʹͨ͠
    εϓϨουγʔτͰॻ͍ͨ
    ςετέʔεͩͱ
    શવ఻ΘΔؾ͕͠ͳ͍……
    Postman ͷςετεΫϦϓτ
    ௅ઓͯ͠ΈΔ͔……

    View Slide

  23. ʢิ଍ʣPostman ͷςετεΫϦϓτͬͯʁ
    Ҿ༻ݩɿWriting tests - Postman Learning Center (2023-05-19 ΞΫηε)
    https://learning.postman.com/docs/writing-scripts/test-scripts/
    Web API πʔϧʮPostmanʯʹ͸ɺ
    Ϩεϙϯε஋ΛνΣοΫ͢Δ javascript ϕʔεͷςετγφϦΦػೳ͕͋Δ

    View Slide

  24. ͳΜͱ͔Ұׅ࣮ߦͰ͖Δͱ͜Ζ·Ͱ׬૸ʂ
    ࡞੒ͨ͠εΫϦϓτ͸

    Ҿ͖ܧ͗ͷ௚લ·Ͱ׆༻Ͱ͖Δ΋ͷʹͳͬͨ
    ● ϦϑΝΫλϦϯάதʹൃੜͨ͠

    ҙਤ͠ͳ͍มߋΛΩϟον
    ● PdM΍։ൃϝϯόʔ΋

    खݩͰ࣮ߦ͠ͳ͕Β࠷ऴ֬ೝ
    ౰࣌࡞੒࣮ͨ͠ߦखॱ

    View Slide

  25. ͓ΘΓʹ
    ΍Εͳ͔ͬͨ͜ͱɺչ΍Ή͜ͱ͸ଟ͍
    ● ੑೳࢼݧɺηΩϡϦςΟࢼݧɹະணख
    ● ૊ΈࠐΈઌͷϓϩμΫτνʔϜͷQAΛר͖ࠐΜͩٞ࿦͕

    ΄ͱΜͲͰ͖ͣ
    ● QAͰ͸ͳ͘εΫϥϜϚελʔతͳ;Δ·͍Λ࢝͠Ίͯ

    ࠞཚͯ͠͠·͏ϝϯόʔ΋͍ͨɹetc.
    Ͱ΋ɺগ͚ͩ͠੒௕ͨࣗ͠෼͕͍Δ
    ● APIςετ΁ͷ఍߅ײ͸ݮͬͨ
    ● ٕज़తͳ΋ͷʹ͍ͭͯखΛಈ͔ͯ͠าΈدΔ

    ͱ͍͏ࢼΈ͸ࠓͷνʔϜͰ΋࣮ફத

    View Slide

  26. Thanks !!!

    View Slide