Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ローコードツールを用いてチーム全員で自動テスト導入 -mabl で自動テスト-
Search
Junshi Kubota
December 03, 2022
Technology
1
2k
ローコードツールを用いてチーム全員で自動テスト導入 -mabl で自動テスト-
エムスリーで mablを導入して1年経過時の成果や課題をまとめました。
Junshi Kubota
December 03, 2022
Tweet
Share
More Decks by Junshi Kubota
See All by Junshi Kubota
高速リリースを支える エムスリーQA チームの取り組み
jkubota
0
980
エムスリーのテスト自動化の 歴史とこれから
jkubota
0
910
Other Decks in Technology
See All in Technology
【re:Invent 2024 アプデ】 Prompt Routing の紹介
champ
0
160
スタートアップで取り組んでいるAzureとMicrosoft 365のセキュリティ対策/How to Improve Azure and Microsoft 365 Security at Startup
yuj1osm
0
240
[Oracle TechNight#85] Oracle Autonomous Databaseを使ったAI活用入門
oracle4engineer
PRO
1
140
プロダクト開発を加速させるためのQA文化の築き方 / How to build QA culture to accelerate product development
mii3king
1
290
DevFest 2024 Incheon / Songdo - Compose UI 조합 심화
wisemuji
0
160
2024年にチャレンジしたことを振り返るぞ
mitchan
0
150
AWS re:Invent 2024で発表された コードを書く開発者向け機能について
maruto
0
210
事業貢献を考えるための技術改善の目標設計と改善実績 / Targeted design of technical improvements to consider business contribution and improvement performance
oomatomo
0
160
マイクロサービスにおける容易なトランザクション管理に向けて
scalar
0
190
AWS環境におけるランサムウェア攻撃対策の設計
nrinetcom
PRO
0
170
pg_bigmをRustで実装する(第50回PostgreSQLアンカンファレンス@オンライン 発表資料)
shinyakato_
0
120
PHP ユーザのための OpenTelemetry 入門 / phpcon2024-opentelemetry
shin1x1
3
1.5k
Featured
See All Featured
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
38
1.9k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
Fireside Chat
paigeccino
34
3.1k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.5k
No one is an island. Learnings from fostering a developers community.
thoeni
19
3k
Keith and Marios Guide to Fast Websites
keithpitt
410
22k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
Building an army of robots
kneath
302
44k
YesSQL, Process and Tooling at Scale
rocio
170
14k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.2k
How to Ace a Technical Interview
jacobian
276
23k
Java REST API Framework Comparison - PWX 2021
mraible
28
8.3k
Transcript
ローコードツールを用いて チーム全員で自動テスト導入 -mabl で自動テスト- エムスリー株式会社 窪田 純士
• 自己紹介 • エムスリーでの自動テスト導入の歴史 • 自動テスト運用での問題点 • mabl 導入の取り組み •
今後の課題
自己紹介
自己紹介 QA エンジニア @ エムスリー株式会社 窪田 純士(@kubota_junshi) • クリニック・患者向けプロダクトの品質保証を担当 •
QA チームリーダーとして日々働いています かれこれ、10年程度 QA やってます
自動テスト導入の歴史
自動テスト導入の歴史 エムスリー自動テストの歴史は 2014年位から 2014 旧 Selenium IDE を用いてスタート 2015〜2016 拡大期
Jenkinsなどのスケ ジュール実行はこ の頃から 2017〜 退職や仕事量の変 化によりメンテナン スが問題化 2021〜 mabl等の検討開始 より詳しい情報はこちら https://speakerdeck.com/jkubota/emusurifalsetesutozi-dong-hua-false-li-shi-tokorekara
自動テスト運用の問題点
自動テスト運用の問題点 よくある問題点 • 自動テストが何故か失敗する(バグなのか単なる失敗なのか) • システムの変更により自動テストが壊れる • 自動テストに時間がかかる • 専任メンテナーが少ない
自動テスト運用の問題点 よくある問題点 • 自動テストが何故か失敗する(バグなのか単なる失敗なのか) • システムの変更により自動テストが壊れる • 自動テストに時間がかかる • 専任メンテナーが少ない
上記に伴う問題点 • 壊れたテストが壊れたまま放置されている • テスト内容が古くあまり意味のないテストが残っている ◦ やっても意味がないので自動テストを動かさない QAチームでは この2つが大問題
メンテナー不足の問題 • SET人材の獲得がそもそも難しい ◦ 人員が少ない+付加価値の高い人材 • QA人材でコードをバリバリ書ける人がそもそも少ない ◦ テスト業務が忙しくなると書ける人でも手を動かせない
メンテナー不足の問題 • SET人材の獲得がそもそも難しい ◦ 人員が少ない+付加価値の高い人材 • QA人材でコードをバリバリ書ける人がそもそも少ない ◦ テスト業務が忙しくなると書ける人でも手を動かせない 対応案としては
• QA含め全メンバーにメンテナンス方法を覚えてもらいメンテナンスする • QAメンバーがメンテナンスしやすい方法(ローコードツールなど)を導入する ◦ ちょうど流行り始めて興味を持ってくれている人も多い
メンテナー不足の問題 • SET人材の獲得がそもそも難しい ◦ 人員が少ない+付加価値の高い人材 • QA人材でコードをバリバリ書ける人がそもそも少ない ◦ テスト業務が忙しくなると書ける人でも手を動かせない 対応案としては
• QA含め全メンバーにメンテナンス方法を覚えてもらいメンテナンスする • QAメンバーがメンテナンスしやすい方法(ローコードツールなど)を導入する ◦ ちょうど流行り始めて興味を持ってくれている人も多い ◦ 色々比較した結果、 mabl を導入することに
mabl とは Web ブラウザアプリ向けの E2E 自動テストクラウドサービス • ブラウザ上で操作すると、操作を記録し自動テストを作成してくれる • AI
を用いた自動修復等の機能あり(便利) • 有料の便利機能がある ◦ VRT ◦ リンク切れ ◦ 見やすいテストレポート • テスト実行回数に限度がある ◦ 機能を制限した場合、上限なくテストを実行できる
なぜ mabl だったのか mabl 以外にもローコードのテストツールはいくつかあるが …… • プロキシ設定ができる(エムスリーでは重要) ◦ mabl
link を用いたプライベートネットワークとのスムーズな接続ができた • 利用例の Web 検索結果が比較的豊富にある ◦ 調べながらすすめることが多いので重要 • チャットなどを通じて問題解決に導いてくれた ◦ 試用期間中に様々な問い合わせをしており、迅速に回答をもらえた
mabl 導入の取り組み
mabl 導入の前に • 自動テストを推進するメンバーが非常に限られていた ◦ 当初は selenium の自動テストをメンテナンスできるメンバーのみで進めていた ▪ 既存の自動テストのメンテナンスがメイン
▪ 進捗確認や方針相談は殆どなされていなかった ◦ テストが壊れたら担当メンバーに丸投げの状態 • 自動テストを推進するチームを明確に定めた ◦ 定期的な進捗確認、自動テスト大方針の相談の実施 ◦ 自動テスト導入を検討しているチームのメンバーを推進メンバーに加えて情報共有 ▪ 最終的には各チーム代表一人 、全メンバーが自動テスト担当ができるように改革
mabl 導入の前に • 自動テスト導入理由を全体で共有できていなかった ◦ あったら便利という認識は共有できていたがそれ以上はなかった • 自動テストが無いことによるデメリットをまとめチーム内共有を実施 ◦ 人員不足による手動テスト着手遅れ
◦ 手動テスト実施期間の現状まとめ 「自動テスト導入を皆で進める」「現状の課題を解決したい」の意識を共有するところからスタート
mabl 導入のおおまかな流れ 1. 全体向けの mabl レクチャー会を mabl の方に依頼 2. テスト導入対象のピックアップと導入順序を検討
3. テストケース作成 4. 自動テストをmabl を用いて作成 5. 実際にテスト運用 6. 運用の評価
全体向けの mabl レクチャー会を mabl の方に依頼 mabl の方が基本操作の方法をレクチャーしてくれる機会があったため、 QAメンバーで有志を募りレクチャー会 を実施 -
導入予定のあるチームのメンバーはほぼ強制的に参加 - 何もわからない→なんとなくわかるの状態になるのはかなり重要 mabl では独学用の多くの教材も用意してくれているためそれらも参考になる
テスト導入対象のピックアップと導入順序を検討 まずは以下に該当するシステム・サービスを優先的に mabl の導入対象にした • 自動テスト未導入のシステム ◦ 既存自動テストの運用は概ね機能しているため、自動テスト適用範囲を増やす方針 • 変更が殆どないシステムではなく、現在も変更が入っている重要なシステム
• 上記の中で比較的に実装が容易そうなものを最初に実装 ◦ 導入の初期に手っ取り早く成功体験が欲しかった ◦ 素早い実装を繰り返して簡単な失敗を早く経験しノウハウの蓄積を早めにしたかった
テストケース作成 大方針:全動作を網羅的に作らず、必要最小限になるように作成 • 各サービスで必ず成功してほしいユースケースをテストケースにする ◦ シナリオテストと命名 ◦ 逆に言うと不具合があったときにビジネスインパクトが大きいケースをピックアップ • 上記を除く部分で、細かい部分の確認
◦ 追加テストと命名 ◦ 上記には含まれないがビジネスインパクトが多少あるもの
自動テストをmabl を用いて作成 いくつかの方針を定めて作成した • 週に1回メンバーを集めてライブでテスト作成を実施し喋 りながらテストを作成する ◦ 週1で 必ずmabl を起動してテスト作成の時間を作る
◦ ゆるく相談しつつ試行錯誤、情報共有を実施する • QA 業務の合間に作業をする ◦ 全員で自動テストを実施できるかの検証も兼ねて ▪ 1年程度運用してみて今は大丈夫
自動テストをmabl を用いて作成 いくつかの方針を定めて作成した • 週に1回メンバーを集めてライブテスト作成を実施し喋り ながらテストを作成する ◦ 週1で 必ずmabl を起動してテスト作成の時間を作る
◦ ゆるく相談しつつ試行錯誤、情報共有を実施する • QA 業務の合間に作業をする ◦ 全員で自動テストを実施できるかの検証も兼ねて ▪ 1年程度運用してみて今は大丈夫 この活動が結構うまくいき チーム全員で自動テスト作成がで きるように Tips の共有がスムーズに行われた
実際にテスト運用 以下の方針に従い、運用を実施 • 重要なテスト(シナリオテスト)はこわれたら即修正 • それ以外のテストはリリースまでに修正 • mabl のクラウド実行(課金対象)を中心に運用 ◦
ローカル実行(実行回数無制限)は都度手元で確認用
運用の評価 良かった点 • 全員で自動テストを作成、修正、実行が問題なくできる • 大規模リニューアルがない限り業務の合間に問題なく自動テストメンテナンスできる ◦ 大体全体作業の 5〜10%程度の労力 課題点
• 初期の計画が甘かったため、課金対象の実行上限に早々に到達した ◦ 定期実行はローカル実行(無課金)に変更 ◦ リリース前のテストのみクラウド実行(課金対象) • 上記からCIへの組み込み戦略がまだ立てられていない ◦ ローカル実行をCIに組み込み予定 • テスト環境に不安定さがあり、テストが若干不安定 ◦ 現在は失敗箇所の再実行 or 手動再実行で運用
mabl を導入して良かった点 • QA 依頼が気軽にできるようになった ◦ テスト実施工数が大幅に減ったので、気軽にリファクタリングができるようになった • それなりにバグ検出ができている •
自動テストを実施するためにテスタビリティを高くする活動が増加した ◦ 自動テストをうまく動かすために APIの追加などを依頼、手動テストの効率化にもつながる • 手動テスト効率化にもつながっている ◦ データを用意するのが非常に面倒な手動テストのデータを自動で用意することが可能に
苦労したポイント • mabl ツール自体がそれなりに重い • 初期は各チーム自由に作成し不便な面があった ◦ テスト名、テストスイート名等の命名規則を作った • 類似した共通処理(JavaScript
のスニペット)の乱立 ◦ 上記同様命名規則設定で一旦回避 • 安定して動かないテストはやはりある ◦ mabl のクラウドサービスの性能が結構良いので操作が早すぎ る等 これらは早々に問題になったため全体ルー ルを早めに作成した • テスト名 • ラベル名 • アプリケーション名 等 ex. Unit名_サービス名_テスト対象機能_実施 操作
自動テストの浸透状況(抜粋) チーム mabl 導入前 導入後 A チーム 3サービス 4サービス B
チーム 2サービス 2サービス C チーム 1サービス 13サービス D チーム 1サービス 1サービス(mabl でリプレイス) E チーム 1サービス 12サービス 本格導入をして半年、各チームで自動テストを拡大することが出来た
今後の課題
今後の課題 • 実行時間が長い ◦ シナリオが長くなりすぎであるため、テスト実行時間がかかっている ◦ テストケースの縮小と高速化の工夫を現在検討中 • CI を整えきれていないため、今後方針含めて検討が必要
◦ cli の tips を城本がブログにまとめていますのでよろしければ ▪ https://www.m3tech.blog/entry/mabl_cli_tips • native app には完全に未対応 直近の活動のブログもあります。よろしければ。 https://www.m3tech.blog/entry/mabl_operation