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

CI/CDパイプラインにE2Eテストを統合する / Integrate E2E testing into the CI/CD pipeline

CI/CDパイプラインにE2Eテストを統合する / Integrate E2E testing into the CI/CD pipeline

アジャイル開発やスクラムによって、チームごとに開発のリズムが整えられてきました。さらに、CI/CDの登場で、ビルドからデプロイまでのパイプラインプロセスも自動化されるようになってきています。

このセッションでは、CI/CDパイプラインにブラウザレベルのE2Eテストを統合する方法を検討します。デモなどを通して、どこでどういうテストを自動実行するのがよいのか? を探求します。

テスト自動化には様々なレベルがあります。広い意味ではユニットテスト、結合テスト、リグレッションテスト、パフォーマンステスト、セキュリティテストなどが自動化可能です。このセッションでのテスト自動化は「ブラウザレベルのE2Eテスト」を中心に話します。

https://confengine.com/conferences/devopsdays-tokyo-2022/schedule/rich#session-29856-info

Dai Fujihara

April 21, 2022
Tweet

More Decks by Dai Fujihara

Other Decks in Programming

Transcript

  1. CI/CDパイプラインに
    E2Eテストを統合する
    2022/04/21 DevOpsDay Tokyo 2022
    Dai Fujihara mabl Inc.

    View Slide

  2. About Me
    『アジャイル開発とスクラム』 https://www.amazon.co.jp/dp/4798129704/ 、『リーン開発の現場』 https://www.amazon.co.jp/dp/427406932X
    藤原 大 / Dai Fujihara
    mabl Japan
    株式会社せかい代表
    ● 現在: 独立してスーパーアジャイルコーチ
    開発組織の技術顧問(プロセス、 QA中心)
    CTOやEMへのコーチング
    mablの日本顧客向けサポート
    ● メルカリ: エンジニアリングマネージャ( EM)
    Software Engineer in Test(SET)
    テスト自動化、QA組織立ち上げ
    ● 楽天: EM、アジャイルコーチ
    ● 某SIer: Javaエンジニア
    ● 活動:
    ○ 『アジャイル開発とスクラム』寄稿
    ○ 『リーン開発の現場』翻訳
    ○ Twitter: @daipresents
    ○ Blog: https://daipresents.com/service/

    View Slide

  3. E2Eを考える前に
    何をE2Eにするのか?
    どんなE2Eになるのか?
    どこでE2Eを実行するか?

    View Slide

  4. アジャイル開発は「当たり前」に
    Agile is the new normal https://softwaretestinggenius.com/docs/4aa5-7619.pdf
    KPMG Global Agile Survey https://assets.kpmg/content/dam/kpmg/be/pdf/2019/11/agile-transformation.pdf
    15th State of Agile Report https://digital.ai/resource-center/analyst-reports/state-of-agile-report
    ● HPによる調査では、24%がハイブ
    リッド、67%がアジャイル開発へ
    (2017)
    ● KPMG Global Agile Surveyで
    は、今後3年で企業レベルのア
    ジャイル開発が2倍以上増えると
    予想(2019)
    ● digital.aiの調査では86%がア
    ジャイル開発を採用(2021)

    View Slide

  5. DevOpsは「過渡期」に
    2021 State of Testing in DevOps Benchmark Report, mabl

    View Slide

  6. データ:短期間でのデプロイ回数が増加
    2020 Testing in DevOps Benchmark Survey, mabl
    年ごと Qごと 月ごと 2週間ごと 週ごと 日ごと 日に何回も
    1日ごと、1週間ごと、2週間ごとのリリースが急増

    View Slide

  7. 何が問題になっているのか?
    開発がアジャイルなのに
    テスト・品質がウォーターフォール
    軽量なプロセスに重量なテストをする場合、
    4〜5チームを超えると生産性を落とさずスケールしなくなる傾向がある。

    View Slide

  8. 何が問題になっているのか?
    QA = テストすること
    QA = テストする人
    という組織文化
    バグというモグラを叩き続けても品質は良くならない。

    View Slide

  9. 何が問題になっているのか?
    品質の保証
    軽量な高速プロセスで品質保証( QA: Quality Assurance)できるか?何を保証するのか?
    そもそもシステムは落ちないように作っておらず、落ちる前提で(復旧しやすいように)作っている。
    品質もそのように考えると品質合意( QA: Quality Agreement)が妥当ではないか?

    View Slide

  10. CI/CDパイプラインにE2Eテストを統合する
    テストがプロセスに統合される
    テストがプロセスに関わるチームに広がる
    テストが長持ちする

    View Slide

  11. E2Eを考える前に
    何をE2Eにするのか?
    どんなE2Eになるのか?
    どこでE2Eを実行するか?

    View Slide

  12. AIを活用したブラウザテスト自動化サービス
    ● ボストンボストンで創業
    (シリーズC)
    ● AI・クラウド・SaaS型
    テスト自動化サービス
    ● ノーコード・ローコードで
    テストの作成や修正可能

    View Slide

  13. ノーコード・ローコードでかんたんにテスト作成
    ● mablトレーナーがテスト
    作成・修正をサポート
    ● ひとつの動きをステップで
    記録
    ● ステップを並べてシナリオ
    として管理

    View Slide

  14. mablの
    簡単なデモ
    (ログイン)
    14

    View Slide

  15. ビジュアルテスト・ビジュアルリグレッション
    ● 動きの正しさだけでなく見た目の正
    しさもテスト可能になった
    ● ステップベース、URLベース、ク
    ローリングベースで実行可能
    ● 実行ログ、APIログ、リンク切れ、コ
    ンソールエラーなども検知可能

    View Slide

  16. View Slide

  17. Visual Test (Visual Regression, Screenshot test)

    View Slide

  18. API 統合されたエンドツーエンドのテスト
    ● ノーコードでAPIテスト
    ● レスポンスを変数に格納等、APIをシナリ
    オ形式で実行可能
    ● Postman双方向連携
    ● マイクロサービス向けの統合テストとして
    も利用可能

    View Slide

  19. mablの
    簡単なデモ
    (APIテスト)
    19

    View Slide

  20. APIでデータ準備、Eメール経由のテスト、
    PDFをダウンロードしてバリデーション、指定
    した要素を検索、アクセシビリティチェック・・・

    View Slide

  21. E2Eを考える前に
    何をE2Eにするのか?
    どんなE2Eになるのか?
    どこでE2Eを実行するか?

    View Slide

  22. どういう範囲ですべきか?
    テストの
    広さ
    メリット デメリット
    スモークテスト 狭い ・実行速度が速い
    ・はやくFBが得られる
    ・プロセスに組み込みやすい
    ・実行回数が増える
    リグレッション 普通 ・範囲を選んで実行すれば、
    必要なテストを必要なだけ実
    行可能できる
    ・実行時のスコープぎめが重要に
    なる
    フルリグレッション 広い ・安心感が高い ・実行時間が長い
    ・メンテコストが高い

    View Slide

  23. 範囲ごとに比較(E2E)
    用途 タイミング 効果
    スモークテスト ・E2Eレベルの動作確認テスト( ふ
    るまい)
    ・範囲が狭いので気軽に実行でき

    コミットごと、PRごと
    など
    ・動いてないじゃんブ
    ロッカーを減らす
    リグレッション ・E2Eレベルの動作確認テスト( ふ
    るまい)
    ・範囲を絞って効率的に実行できる
    Mainブランチマー
    ジごとなど
    ・修正のリスクを減らす
    フルリグレッション ・E2Eレベルの動作確認テスト( ふ
    るまい)
    ・時間はかかるが広範囲で実行で
    きる
    リリース前 ・結合リスクを減らす

    View Slide

  24. 範囲ごとに比較(VisualTest)
    用途 タイミング 効果
    スモークテスト ・画面確認テスト(見た目)
    ・範囲が狭いので気軽に実行でき

    コミットごと、PRごと
    など
    ・E2Eよりさらに簡単に
    動作確認できる
    ・本番テストとして簡単
    実行できる(影響も小さ
    い)
    リグレッション ・画面確認テスト(見た目)
    ・範囲を絞って効率的に実行できる
    Mainブランチマー
    ジごとなど
    ・修正のリスクを減らす
    ・本番テスト
    フルリグレッション ・画面確認テスト(見た目)
    ・時間はかかるが広範囲で実行で
    きる
    リリース前 ・結合リスクを減らす
    ・本番テスト

    View Slide

  25. 範囲ごとに比較(API)
    用途 タイミング 効果
    スモークテスト ・APIレベルのテスト(網羅性)
    ・範囲が狭いので気軽に実行でき

    コミットごと、PRごと
    など
    ・エンドポイント全体の
    疎通テスト
    ・高速なので網羅性を高
    められる
    リグレッション ・APIレベルのテスト(網羅性)
    ・範囲を絞って効率的に実行できる
    Mainブランチマー
    ジごとなど
    ・エンドポイントを選んで
    疎通テスト
    ・網羅性テスト
    フルリグレッション ・APIレベルのテスト(網羅性)
    ・時間はかかるが広範囲で実行で
    きる
    リリース前 ・エンドポイントやパラメ
    タ組み合わせ疎通テスト
    ・網羅性テスト

    View Slide

  26. E2Eを考える前に
    何をE2Eにするのか?
    どんなE2Eになるのか?
    どこでE2Eを実行するか?

    View Slide

  27. mablはmablをmablでテストする
    mabl, The Guide to Testing in DevOps Pipelines

    View Slide

  28. 実行計画を立てる
    アジャイルな QAを実現するための「アジャイル QAインセプションデッキ」を作ってみた

    View Slide

  29. 例: リリース前フルリグレッション
    アジャイルな QAを実現するための「アジャイル QAインセプションデッキ」を作ってみた
    E2Eフルリグ
    レッション

    View Slide

  30. 例: スプリントごと結合リグレッション
    アジャイルな QAを実現するための「アジャイル QAインセプションデッキ」を作ってみた
    リグレッション
    E2Eフルリグ
    レッション

    View Slide

  31. 例: PRごとリグレッション
    アジャイルな QAを実現するための「アジャイル QAインセプションデッキ」を作ってみた
    スモーク
    リグレッション
    E2Eフルリグ
    レッション

    View Slide

  32. 例: スモークテストの活用、小さく、より事前に
    アジャイルな QAを実現するための「アジャイル QAインセプションデッキ」を作ってみた
    E2Eフルリグ
    レッション
    E2Eスモーク
    E2Eリグレッション
    APIリグレッション
    APIスモーク
    Visualスモーク
    Visual
    リグレッション
    Visualフル
    リグレッション

    View Slide

  33. E2Eを考える前に
    何をE2Eにするのか?
    どんなE2Eになるのか?
    どこでE2Eを実行するか?

    View Slide

  34. いつもお客さまに問いかけていること
    ● 現状、テストや品質で一番困っていることはなんで
    すか?
    ● mablでどうなることを期待していますか?
    ● 成功のための指標は何ですか?
    これらに回答できない場合はテスト自動化をすすめちゃダメ(ハート)
    きっとその前にやることがある(それはまた別の機会に)

    View Slide

  35. 何をテストすべきか?
    『リーン開発の現場』 18.5 ステップ 3:優先順位をつけて並べ替える より
    ● 目的ドリブン
    ○ スモーク > リグレッション > API・・・と目的で
    優先順位をつける
    ○ リグレッションは細かく分ける
    ■ ハッピーパス
    ■ ハッピーパス+例外系
    ● データドリブン
    ○ ユーザがよく行う行動をもとに優先順
    位をつける
    ● 価値ドリブン
    ○ 機能や画面をお金に換算して優先順
    位をつける
    ● などなど
    テストケース リスク
    手動テストの
    コスト
    自動化
    コスト
    口座の凍結 高 5時間 0.5ポイント
    振込の確認 高 3時間 1ポイント
    取引履歴 中 3時間 1ポイント
    検索結果の並べ替え 中 2時間 8ポイント
    お金の入金 高 1.5時間 1ポイント
    セキュリティアラート 高 1時間 13ポイント
    新規ユーザー登録 低 0.5時間 3ポイント
    デザイン変更 低 0.5時間 20-ポイント

    View Slide

  36. 実行計画を立てる
    アジャイルな QAを実現するための「アジャイル QAインセプションデッキ」を作ってみた

    View Slide

  37. テスト自動化を立ち上げる
    キックオフと
    ゴール設定。
    継続的にテスト作成
    (10〜20件)。
    不安定なテストの安
    定化とリファクタリン
    グ。
    継続的にテスト作成
    (20〜〜50)。
    不安定なテストの安定化とリ
    ファクタリング。
    テスト自動化ツールの
    セットアップ完了。
    自動化基本トレーニング。
    自動化応用トレーニン
    グ。
    利用手順などの整備。
    CI/CD統合。
    まずはリリース前テス
    トやSTGデプロイタイミ
    ングで実行。
    四半期レビュー
    30日 60日 90日
    成功に向けてテスト作成
    の継続とメンテナンス。
    APIテストへのカバレッジ
    拡大(同時にリグレッショ
    ンテスト削減)
    はじめてのリグレッション
    テスト作成(まずは5〜10
    件)。
    通知設定。
    定期実行の開始 。

    View Slide

  38. Thank you very much
    月次ウェビナー開催中!
    「探索的テスト」「テスト自動化」「次世代 QA組
    織」といったテーマをもとに「アジャイル
    ・DevOps時代のテストや品質保証」を目指す
    ウェブナーです。
    今後も、さまざまなトピックや、その道のプロ
    フェッショナルにご登壇いただく予定です。
    https://mabl-japan.connpass.com
    今すぐできる2週間の無料トライアル!
    トライアルは無料。納得行くまで機能をお試しくださ
    い。
    デモリクエストも大歓迎!
    技術トレンドや実事例をまじえたデモ MTGもお気軽
    にどうぞ!
    https://www.mabl.com/japan

    View Slide