Share
Embed
E2Eテストを自動化したら 開発生産性はどうなった? hacomonoの事例紹介
2024/6/28 開発生産性Conference 2024にてhacomonoさまと共同で登壇した際に使用したスライドです。
odasho
June 28, 2024
Transcript
57 slides
-
目次 • mablのご紹介 ◦ mablについて • E2Eテストを自動化したら開発生産性はどう なった?hacomonoの事例紹介 ◦ はじめに
◦ E2Eテスト自動化の挫折する壁 ◦ hacomonoE2Eテスト自動化事例紹介 ◦ 開発生産性どうなった? ◦ まとめ • お知らせ はじめに -
はじめに スピーカー紹介 odasho (Shohei Oda) Quality Advocate / Product Marketing,
mabl Japan 国内SIerにてインフラやPaaS App開発まで幅広く経験。その後 コミュニティ活動をきっかけにMicrosoftに入社。Evangelistと してAudience Marketingに従事。2022年10月にmablにJoin、 TestingやQAの啓蒙活動に取り組む。現在もDevRel Meetup in Tokyoやmablers_ jpを中心に複数のコミュニティを運営/支援。 書籍執筆など。iPhone絶対並んで買うおじさん(2011 - 2023) Most DevRel Committer 2020、名城大学情報工学部非常勤講師 odashoDotCom odasho0618 odasho Ryo Morishima QA / SET Engineer, hacomono inc. ワークスアプリケーションズにて製品開発やチームマネジメント に従事したのち、開発チームの開発生産性向上をミッションに自 動テストなどに取り組む。テストを通した品質への興味が強くな り、その後MIXIにてQAエンジニアやスクラムマスターとして幅広 く品質向上活動を経験し、2023年11月にhacomonoにSETエンジ ニアとしてjoin。E2E自動テストを中心とした品質向上活動に従 事。 m39ryo -
What's mabl? • 「めいぶる」と読みます • Stackdriver(現Google Cloud Operations)の 創業者IzzyとDanが2017年ボストンで創業 •
2021年8月に日本法人設立 • グローバルの社員数は約110名 • Fortune Globalの35社含む300社+が採用 • GV、CRV、Amplify、Vista Equity Partner、 Presidioより 7,700万ドル (120億円) を調達 mabl について -
ノーコードでテストを作成、ローコードで拡張 mabl について テスト作成の流れ 1. ブラウザでテスト対象アプリを 操作 2. トレーナー(右側ウィンドウ) が各操作をステップとして記録
してテストを作成 3. 必要に応じてステップの追加・ 削除・変更が可能 -
単一プラットフォームで広範囲なテストをカバー mabl について 機能/非機能テストをカバーするプラットフォーム • Web UIテスト • モバイルWeb UIテスト
• APIテスト • アクセシビリティテスト • UI/API パフォーマンステスト • NEW! ネイティブモバイルアプリテスト -
Join mabl webinar 7/11 14:00 ~ 15:00 モバイルアプリテストの最新トレンドと モダンなテストとは? お知らせ
https://www.mabl.com/ja/webinar/lp/modern-mobile-app-testing -
Join mabl webinar 7/25 14:00 ~ 15:00 統合型ノーコードテスト自動化プラット フォーム 『mabl』ご紹介ウェビナー
お知らせ https://www.mabl.com/ja/webinar/lp/mabl-introduction-webinar -
既存ツールとの統合 mabl について メッセージング Issue管理 アナリティクス Jira Slack Teams BigQuery
CI/CDツール GitHub GitLab Jenkins Bamboo BitBucket Azure CircleCI Octopus https://www.mabl.com/integrations Mabl CLI Mabl API -
hacomonoの特徴について はじめに • 管理者様向けサイト(管理サイト)、利用者様向けサイト(メンバーサイト)など 複数のWebサイトが存在する • 管理サイトでメンバーサイトのカスタマイズができる 設定によりメンバーサイトの振る舞いが変わる • メンバーサイトでレッスンを予約すると
管理サイトに予約状況が反映される ▶それぞれのサイトを行き来するようなシナリオが多く複雑 -
本セッションで伝えたいこと はじめに • E2Eテスト自動化の挫折しやすい壁を知る • E2Eテスト自動化の壁を乗り越えるの事例を知る ◦ 自動化にどんな目標を掲げていたか ◦ 壁を乗り越えてどんな結果が得られたか
• 自動テストを開発生産性向上につなげるヒントを掴む • 自動テストをはじめるきっかけを持って帰ってほしい -
テスト実行までの道のりが長い E2Eテスト自動化の挫折しやすい壁 • 自動テストの環境構築に挫ける ◦ コマンドライン操作によるツールのインストールや ツールの英語ドキュメントを読みながらエラーを解消したり 慣れない人には環境構築の難易度が高い • テストの作成に挫ける
◦ ロケータなど基礎知識がないと 要素選択して操作するのに苦戦する -
運用が続かない E2Eテスト自動化の挫折しやすい壁 • テストを実行できた! ただ運用し続けるための工数が取れない… ◦ 仕様変更によりメンテナンスが追いつかない ◦ 新しい自動テストの作成工数が取れない ◦
テストが安定しないため失敗原因の切り分けに工数が取られる • 次第に自動テストの失敗が多くなり 実行もされなくなってなり頓挫… -
hacomono流 壁の乗り越え方 テスト実行までの道のりが長い壁 • mablで環境構築の手間なく圧倒的スタート ダッシュできた • 最初に実装する自動テストを厳選した • 実現したいテストが素早く検証ができた
• テストが常に実行されている状態にできた • 簡単Slack連携で実行結果を通知できた 運用が続かない壁 • テスト自動化担当を任命した • 運用ガイドラインを作った • 保守性が高いテストを作った • 自動化対象のテストを整理し直した E2Eテスト自動化の挫折しやすい壁 -
mabl導入前のhacomonoの状況 E2Eテスト自動化事例紹介 • hacomonoにQAが存在しない ◦ 第三者検証機関の方にテストをおまかせしていた • 2週間ごとのリリースサイクル リリース前にリグレッションテストを実施している •
hacomonoに機能が爆速で増え続ける ◦ リグレッションテストが山のように増えていく • フロントエンドの自動テストは充実していない -
mablの導入へ • 複数のツールを選定して結果、mabl が一番マッチしていた ◦ 誰でも自動テストが実装できること ◦ メンテナンス性が高いこと ◦ エンジニアも利用できること
▪ JavaScript ◦ 自動化を実現したいシナリオが構築 できること E2Eテスト自動化事例紹介 -
自動テストを始める壁を登る E2Eテスト自動化事例紹介 • mablで環境構築の手間なく圧倒的スタートダッシュできた ◦ 準備はmablアプリのインストールだけ ◦ 当時は英語のヘルプページだったけど読まなくてもわかる 直感的なUIに助けられた •
実現したいテストが素早く検証ができた ◦ 操作を記録するだけで簡単に自動テストが作成され、つまずかない ▪ サイト間の移動ができる、サイトごとのウィンドウサイズに対応する、 タブ移動ができる、など -
自動テストを始める壁を超える E2Eテスト自動化事例紹介 • 最初に実装する自動テストを厳選した ◦ まずは画面遷移・CRUD操作ができるテストのみを実装 ◦ 自動テストを量産しすぎず気軽に実行できるように • テストが常に実行されている状態にできた
◦ スケジューリングで定期的に実行 ◦ デプロイ後に自動でテストを実行 • 簡単Slack連携で実行結果を通知できた ◦ 定期実行される結果を常に見ることで実感と安心感を得た -
運用継続の壁を登る E2Eテスト自動化事例紹介 • テスト自動化担当を任命した ◦ まずは一人自動化できる人を創出する 自分がやるという使命感 ◦ 実行結果を見て、粘り強くメンテ!メンテ!!メンテ!!! ▪
実行結果から原因を推測しやすいのが救い ▪ 実装や失敗原因の勘も掴んでくる ▪ 失敗が多くても負けないで! -
運用継続の壁を登る E2Eテスト自動化事例紹介 • 運用ガイドラインの作った ◦ 命名規則や実装フローなど言語化した(詳細はテックブログへ) ▪ 一人担当でも実装に迷わず統一感を持って進められた • 保守性が高いテストを作った
◦ すべて再利用可能なステップとして定義した(mablのFlowを利用) ▪ 一連処理が日本語で定義されているので何をしているかぱっと見わかる ▪ 仕様変更があったときのメンテナンス工数が最小(実装工数はやや重い) -
運用継続の壁を超えていく • 自動化対象のテストを整理し直した ◦ わかりにくいテストケース名を、中身を見ず とも管理できるように修正した ◦ 優先度もこの機会に見直しした ▼ •
整理したことで見通しがよくなり、何を自動 化するかが明確になった • 優先度が高いリグレッションテストから自動 化に着手することで、自動化のスピードが アップ E2Eテスト自動化事例紹介 -
運用継続の壁を超えていく • 最近mablが進化して運用継続がさらに 容易に ◦ 高度な自動修復により少しくらいの仕 様変更は乗り越えてくれる ◦ 日本語のヘルプが充実、爆速返信の日 本語チャットサポート
◦ 生成AIがJavaScriptを自動作成してく れる E2Eテスト自動化事例紹介 -
現在のmabl運用状況 E2Eテスト自動化事例紹介 • 2週間に1回リリース前にmablアプリから手動で実行 ◦ 約110シナリオを最大46並列で実行 • テスト成功率が平均80%超 ◦ 2名体制で失敗原因を切り分け
• mablのプラン上限実行回数の500件/月のテストを実行 -
得られた効果と開発生産性 開発生産性はどうなった? • 当初のテスト自動化目的は達成に近づいている • 開発生産性には影響が少ない ◦ 自動化前と後でテストの実施頻度が増えていない フィードバックの機会はリリース前に一度だけ ▪
自動化導入はじめが一番実行頻度が高かった ▶なぜ実行頻度が増えなかったか? -
自動テスト効率は悪くなるループをたどる 開発生産性はどうなった? • テスト失敗時の切り分け工数が出せず実行頻度を増やせない ▼ • 間が空き、その間にたくさん仕様変更や修正が入る ▼ • 失敗が減らずに原因切り分けに時間がかかる
▼ • 実行上限を気にしてもったいないから再実行はローカルで実行 -
おわりに • 開発生産性にフォーカスしましたが 工数削減を目的としたテスト自動化は悪ではない ◦ テスト自動化をしてみてたくさん学んだことがあった ▪ 自動化のコツやロケータ、javaScript、APIなど開発知識から 自動テスト戦略までさまざま ◦
テスト自動化にも慣れて次のステージにも向かう勇気も持てた • hacomonoの事例がこれから自動化を始める方の 一歩を踏み出す勇気になることを願ってます -
About the mabl University お知らせ How-to Videos (English only) How-to
Lessons (Japanese only) On-Demand Training (English & Japanese) mabl Skills Certifications (English & Japanese) • 33 ビデオ (各3 - 8 分程度) • 英語字幕あり、日本語字幕なし • 26 レッスン • Step by stepで学習可能 • 4 ラーニングパス • 設定、基礎、高度、統合でそれ ぞれ30 - 90 分の学習パス • 学習目標に応じたパスを提供 • 3 つの資格 • Foundations と Advanced • NonFunctional ←NEW • LinkedIn に掲載可能 -
mabl Skills Certification mabl Skills Certification: Foundations (基本レベル) mabl Skills
Certification: Advanced (応用レベル) お知らせ mabl Skills Certification: Non-functional Testing (非機能テスト)