2023/09/13のFindyさんのLTイベント「テストパフォーマンス向上のためのテスト戦略〜自動化の秘訣 Lunch LT〜」の発表資料です
ローコード自動化ツールmablの導入と うまく利用するためのルールの策定2023/09/13 テストパフォーマンス向上のためのテスト戦略〜自動化の秘訣 Lunch LT〜 エムスリー株式会社 城本 由希 1
View Slide
自己紹介● 城本 由希 @yuki_shiro_823● エムスリー株式会社で組織横断のチームであるQAチームに所属● 担当はリサーチの部門であるBIRでアンケートの作成や配信などのシステムのQA● QAエンジニアのスキル向上を目指してQAチーム内の勉強会を開いたり、有志でテスト設計コンテストに出場したりしている● 広島出身のカープファン2
今日話すこと、メインターゲット3<話すこと>1. mabl導入前の課題a. テスト自動化の状況や問題点2. 導入時の体験と挑戦a. スムーズに行った点b. ちょっと工夫が必要だった点3. うまく利用するための社内ルール4. 対応の効果5. まとめ<メインターゲット>● ローコードツールを全社的に使おうとしている人
エムスリーの紹介4“インターネットを活用し、健康で楽しく長生きする人を一人でも増やし、不必要な医療コストを一円でも減らすこと”→ テクノロジーで支援する
エムスリーのQAチームの立ち位置5開発エンジニアQAエンジニア自分組織横断のQAチームに所属し、担当サービスが BIRエムスリー経営会議マネジメントチームCTOVPoEGL採用TLエンジニア人事担当事業チーム(9)横断チーム(10)Unit1MR君Unit4サイトプロモUnit6キャリアUnit9治験Unit3新領域Unit5コンシューマUnit7BIRSREマルデバAI・機械学習グループ会社支援グローバルプロダクト基盤2023-6-1時点:94名採用チームQAセキュリティプロダクト支援データ基盤デジスマデジカル
前提:エムスリーの自動化の歴史6● SeleniumIDE導入● トライアル最初期● 社内展開● テスト増加成長期● メンテナンス問題● SeleniumIDEのEOL停滞期● mabl導入● BIRでのトライアル導入期● mablの全社展開● 運用中成長期2mablSeleniumplaywright etc見直し
今回の範囲7● SeleniumIDE導入● トライアル最初期● 社内展開● テスト増加成長期● メンテナンス問題● SeleniumIDEのEOL停滞期● mabl導入● BIRでのトライアル導入期● mablの全社展開● 運用中成長期2mablSeleniumplaywright etc見直し
エムスリーでのテスト自動化の状況や問題点● テスト実施、リグレッションに時間がかかっている○ 一部E2Eテスト自動化に着手できておらず、手動テストしているシステムがある● 自動テストの作成、メンテナンスが一部の知識のあるメンバーに集中してしまうため全体展開が進みづらい○ SeleniumやPlaywrightを使っているが、これらはある程度コードが書ける必要がある○ 自動実行用の環境にアップデートやメンテが必要だが、手が回りづらいツールである程度解決できるのでは?8
mablとは何かWebブラウザアプリ向けのE2Eテスト自動化クラウドサービス● 操作をレコードすることによりローコードでテストケース作成が可能● AIを活用したオートヒーリングと画面崩れ検知の機能がある● APIテスト、モバイルWebテストにも対応9
mablとは何か10ブラウザの操作を一連のステップとして記録waitやassertionの追加もGUIからできる
なぜmablを導入したのか<mablを選んだ理由>● 課題の解消○ ローコードツールのため、QAチームのメンバー全員が扱える■ Webブラウザの操作のレコードでテストケース作成が可能(一部JavaScriptで記述する必要あり)○ 自前で実行用の環境を準備する必要がない● mablの標準機能でカバーできる範囲が広がる○ 簡単なスモークテストやVRTを実施する機能がついており、リンク切れなどの検知は自動で行えるまずはBIRでmablを導入してみよう!11
導入時の体験と挑戦 ~スムーズに行った点● 体感では7~8割程度がレコーディングしたとおりに動かせる● 1~2ケース一緒に作れば初めて使うメンバーもすぐに使い始められる● waitやassertionの追加もGUIで提供されている機能で対応できる○ IF文やFOR文の追加もGUIで可能テスト対象システムが自動化と相性の良いものであればレコーディングとGUIで自動テストケースが作成可能12
ちょっと工夫が必要だった点(導入期の課題)● 記録したとおりに動かないところもある○ テーブルのセルの中をクリックしたり、文字入力するUI○ idやnameがついていない要素○ 一部の日付選択のUI● データを初期化/固定化する必要がある○ ※テスト自動化につきものの課題であり、mablの問題ではない13今回はmablを使うことや自動テストにつきものの困難な点の対応は省略!この点の対応はこちらをどうぞ!mablの導入と開発・QA間の協力体制
おさらい:今回の範囲14● SeleniumIDE導入● トライアル最初期● 社内展開● テスト増加成長期● メンテナンス問題● SeleniumIDEのEOL停滞期● mabl導入● BIRでのトライアル導入期● mablの全社展開● 運用中成長期2mablSeleniumplaywright etc見直し
ちょっと工夫が必要だった点(成長期2の課題)<前提>社内には複数チーム存在するmablの利用は1チーム→7チームに拡大<課題>1. どれが自分のチームのものか分からなくなる2. 人によってコメントの付け方や何をflow(関数)にしているのかが異なるa. 誰でもメンテナンスできるものになっているか3. レビューはどうするか15E2Eテスト自動化サービスmablでテストケースを作成する際のルールを作った話詳しくはこちらをどうぞ!
対応1「命名規則策定」<課題>どれが自分のチームのものか分からなくなる<対応>命名規則を決めた「チーム名-サービス名-(テスト対象機能)-(実施操作)」例:「Unit7_アンケート管理システム_アンケート作成_新規作成」16
対応2「作成ルール策定」<課題>人によってコメントの付け方や何をflow(関数)にしているのかが異なる<対応>ある程度粒度が揃い、メンテナンスしやすくなるよう作成ルールを決めた● コメントを適宜入れているか● 実行内容に応じて適切に結果を確認しているか● 同手順が複数ある場合flow化(関数化)しているか● 1日に複数回実行可能か etc17
対応3「レビュールール策定」<課題>レビューはどうするか<対応>レビューフロー、ルールを定めた● テストケース作成者が作成ルールに沿っているかセルフチェック→チーム内でレビューを依頼● mablにはブランチ機能がある。大きな修正を加える場合はブランチの使用を推奨18
対応の効果● 初めて自動テストのケースを作成するメンバーでも一定のレベルを保って作成が可能に● レビューアになると他のメンバーがテストを作成する際に行っている工夫を知れる(副次的な効果)<その他の工夫>● 週一で有志メンバーでmablの勉強会を実施○ 他の人が作成したテストケースを眺める→他の人の工夫を知ったり、フィードバックをするいい機会に19
今後の取り組み自動化は今後どのように拡充するのか?● mablによるE2Eテスト○ よりよいメンテナンス○ よりよい運用方法がないか○ 長くなっているテストをどう回しやすくしていくかetc● APIテスト20
まとめ● テスト自動化の推進のため、ローコードテスト自動化サービスのmablを導入● 1チームでのトライアルで成果があった後、社内展開実施。展開にあたりルールを策定○ 命名規則、作成ルール、レビュールール● ルールにより一定のレベルを保ってmablのテストケースを作成できるようになった21
QAエンジニア募集中です! 詳しくはこちらで!22We are hiring!!ご清聴ありがとうございました!