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

執念で自動化するCI 自動E2Eテスト実行基盤の構築

Avatar for WHIsaiyo WHIsaiyo
July 28, 2025
0

 執念で自動化するCI 自動E2Eテスト実行基盤の構築

7/3に開催した「CI/CDについて語る会」の資料です。
https://workshumanintelligence.connpass.com/event/359807/

げんげん @gengenmusic0719

Avatar for WHIsaiyo

WHIsaiyo

July 28, 2025
Tweet

Transcript

  1. © 2025 Works Human Intelligence Co., Ltd. © 2025 Works

    Human Intelligence Co., Ltd. 3 今⽇お話しする内容 とあるプロダクトでのE2Eテスト実⾏基盤構築のお話 メッセージ CI設計初⼼者の⽅に向けて ‧CI設計の指針の共有 CI設計経験者の⽅に向けて ‧⾃動E2EテストをCIで実⾏する実践例  ‧運⽤が回せている事例の共有  ‧テストアーキテクチャの選択のポイント ‧⾊々と⼤変なことはありますが、良い未来に向けて頑張ろうという気持ちの共有
  2. © 2025 Works Human Intelligence Co., Ltd. AGENDA 4 01

    02 03 04 05 ⾃⼰紹介 CI⾃動化の重要性 ⾃動E2Eテストの意義 ⾃動E2EテストをCIで実⾏する難しさ 執念でE2Eテストを⾃動化する
  3. © 2025 Works Human Intelligence Co., Ltd. AGENDA 5 01

    02 03 04 05 ⾃⼰紹介 CI⾃動化の重要性 ⾃動E2Eテストの意義 ⾃動E2EテストをCIで実⾏する難しさ 執念でE2Eテストを⾃動化する
  4. © 2025 Works Human Intelligence Co., Ltd. 6 ⾃⼰紹介 げんげん

    @gengenmusic0719 奈良県に住むテストと設計が好きなアプリエンジニア • 普段のお仕事 20年以上運⽤されている業務アプリの 保守開発チームのマネージャーをしつつ、 チームの開発環境を改善する活動をしています。 CICDが好きです。 • 趣味 ◦ 勉強会やカンファレンスへの参加 関⻄のJAWS-UGやJava界隈の勉強会によく出没 ◦ ⾳楽制作 ◦ Among Us(Lv.88) 呼ばれたら誰とでもやりますので呼んでください https://lit.link/gengen0719
  5. © 2025 Works Human Intelligence Co., Ltd. AGENDA 7 01

    02 03 04 05 ⾃⼰紹介 CI⾃動化の重要性 ⾃動E2Eテストの意義 ⾃動E2EテストをCIで実⾏する難しさ 執念でE2Eテストを⾃動化する
  6. © 2025 Works Human Intelligence Co., Ltd. 10 CI⾃動化の重要性 CIとは?

    継続的インテグレーションのこと インテグレーションとは?
  7. © 2025 Works Human Intelligence Co., Ltd. 11 CI⾃動化の重要性 CIとは?

    継続的インテグレーションのこと インテグレーションとは? 変更したコードをコードベースへ取り込んで検証すること。 ソフトウェアの検証ではビルド、静的解析、テストなどが⾏われます。
  8. © 2025 Works Human Intelligence Co., Ltd. 12 CI⾃動化の重要性 CIとは?

    継続的インテグレーションのこと インテグレーションとは? 変更したコードをコードベースへ取り込んで検証すること。 ソフトウェアの検証ではビルド、静的解析、テストなどが⾏われます。 ソフトウェア開発は継続して⾏う必要がある
  9. © 2025 Works Human Intelligence Co., Ltd. 13 CI⾃動化の重要性 CIとは?

    継続的インテグレーションのこと インテグレーションとは? 変更したコードをコードベースへ取り込んで検証すること。 ソフトウェアの検証ではビルド、静的解析、テストなどが⾏われます。 ソフトウェア開発は継続して⾏う必要がある そのためインテグレーションも継続して⾏う必要がある。
  10. © 2025 Works Human Intelligence Co., Ltd. 14 CI⾃動化の重要性 CIとは?

    継続的インテグレーションのこと インテグレーションとは? 変更したコードをコードベースへ取り込んで検証すること。 ソフトウェアの検証ではビルド、静的解析、テストなどが⾏われます。 ソフトウェア開発は継続して⾏う必要がある そのためインテグレーションも継続して⾏う必要がある。 何度も繰り返すため、⾃動化すると楽です!
  11. © 2025 Works Human Intelligence Co., Ltd. 15 CI⾃動化の重要性 どちらが簡単ですか?

    ‧1万⾏の変更を検証したら失敗しました。問題を修正してください。 ‧1⾏の変更を検証したら失敗しました。問題を修正してください。
  12. © 2025 Works Human Intelligence Co., Ltd. 16 CI⾃動化の重要性 どちらが簡単ですか?

    ‧1万⾏の変更を検証したら失敗しました。問題を修正してください。 ‧1⾏の変更を検証したら失敗しました。問題を修正してください。 ⼩さな変更の⽅が修正が簡単。 しかしCIが⾃動化されていないと 変更を⼤きくする⼒が働きます。
  13. © 2025 Works Human Intelligence Co., Ltd. 17 CI⾃動化の重要性 おそらくそう遠くない未来の話(個⼈的な予測)

    Coding Agentによって開発は全て⾃動化されました Issue を切ればAIがすぐにPRを上げてくれます。 毎⽇2000個のPRが作成されます。 検証をするのは誰?
  14. © 2025 Works Human Intelligence Co., Ltd. 18 CI⾃動化の重要性 おそらくそう遠くない未来の話(個⼈的な予測)

    Coding Agentによって開発は全て⾃動化されました Issue を切ればAIがすぐにPRを上げてくれます。 毎⽇2000個のPRが作成されます。 検証をするのは誰? CIが⾃動化されていないなら ⼈間が検証する必要があります
  15. © 2025 Works Human Intelligence Co., Ltd. AGENDA 19 01

    02 03 04 05 ⾃⼰紹介 CI⾃動化の重要性 ⾃動E2Eテストの意義 ⾃動E2EテストをCIで実⾏する難しさ 執念でE2Eテストを⾃動化する
  16. © 2025 Works Human Intelligence Co., Ltd. 20 ⾃動E2Eテストの意義 E2Eテストとは?

    End to End テストのこと。 画⾯があるアプリケーションの場合は、ユーザーの画⾯操作に対する画⾯の返答を検証するテスト。 E2Eテストはなぜ必要か? ⼗分な検証を⾏うために、UnitTest等では検証できない結合部分のテストが必要だから。 ただし数が増えすぎないように注意する必要はある。 E2Eテストが⾃動化できていないと? ⼈間による打鍵が常に発⽣し、開発のアジリティが低下する
  17. © 2025 Works Human Intelligence Co., Ltd. AGENDA 22 01

    02 03 04 05 ⾃⼰紹介 CI⾃動化の重要性 ⾃動E2Eテストの意義 ⾃動E2EテストをCIで実⾏する難しさ 執念でE2Eテストを⾃動化する
  18. © 2025 Works Human Intelligence Co., Ltd. 23 ⾃動E2EテストをCIで実⾏する難しさ 実⾏環境準備が⼤変

    アプリケーションが全て統合されたテストのため、ほぼ全てを⽤意する必要がある。 データ準備が⼤変 ほとんどのアプリケーションはデータベース等にデータを持つ。 実⾏時にテストに必要なデータ状態を作成することが⼤変。 業務システムなど⼤規模なアプリケーションでは特に⼤変。 さらに我々のプロダクトでは固有の事情として、 アプリの動作に必要なデータの⼤半が別のプロダクトから連携されてくる という事情があった……。
  19. © 2025 Works Human Intelligence Co., Ltd. AGENDA 25 01

    02 03 04 05 ⾃⼰紹介 CI⾃動化の重要性 ⾃動E2Eテストの意義 ⾃動E2EテストをCIで実⾏する難しさ 執念でE2Eテストを⾃動化する
  20. © 2025 Works Human Intelligence Co., Ltd. 27 執念でE2Eテストを⾃動化する データ管理⽅法の案

    データ投⼊を全てテスト内で⾏う データ投⼊もテストに含める。 テストデータを作らない。 裏から⼊れる テスト実⾏前にテストに必要なデータをSQL等で投⼊する。 表から⼊れる データ投⼊⽤環境を作成し、機能でデータを投⼊する。 投⼊した環境のスナップショットを利⽤してテスト⽤コンテナを起動する。
  21. © 2025 Works Human Intelligence Co., Ltd. データ管理⽅法の検討の観点 テスト実装のコスト テストの実⾏時間

    運⽤コスト テストデータの正確性 テストとテストデータの関連性
  22. © 2025 Works Human Intelligence Co., Ltd. 29 執念でE2Eテストを⾃動化する ①データ投入を

    全てテスト内で行う ②裏から入れる ③表から入れる テスト実装のコスト C B A テストの実行時間 C B A 運用コスト 単純比較は難しい。どれも一長一短がある テストデータの正確性 A C A テストとテストデータの関 連性 A A C
  23. © 2025 Works Human Intelligence Co., Ltd. 30 執念でE2Eテストを⾃動化する ①データ投入を

    全てテスト内で行う ②裏から入れる ③表から入れる テスト実装のコスト C B A テストの実行時間 C B A 運用コスト 単純比較は難しい。どれも一長一短。 テストデータの正確性 A C A テストとテストデータの関 連性 A A C ‧プロダクトの事情で①の選択が難しい ‧正確性は重視したい ‧テストとテストデータの  関連性も重視したい ①と③を合わせたような形になった
  24. © 2025 Works Human Intelligence Co., Ltd. © 2025 Works

    Human Intelligence Co., Ltd. 32 現状とメッセージ ⽇次で⾃動E2Eテストが実⾏されて、 いくつか不具合を未然に防ぐことができた 中⾝のテストの拡充はまだ始まったばかり 出荷のプロセスへの組み込み、打鍵の削減についてはこれから ⼤変なことはありますが、これからの開発で絶対に必要なことなので 頑張って整備していきましょう!