はじめに
この記事はDMMグループ Advent Calendar 2024の16日目の記事です。
こんにちは、QA部でQAエンジニアをしている大段です。
日々の業務では様々なテストツールを用いてテスト業務に取り組んでいます。
QA部について
QA部は2020年3月に設立された部門です。 日々の開発の中でエンジニアの皆さんと一緒に品質保証しやすい環境づくりを行うために、主に下記を支援しています。
- 品質分析&改善支援
- 手動E2Eテスト支援
- 自動E2Eテスト支援
様々なツールを活用しながら、日々の業務に取り組んでいますが、今回はその中でも手動/自動のテストに欠かせないテスト端末およびテスト実行環境のSaaSサービス活用の取り組みについてお話しさせていただきます。
Browserstackとは
Browserstackは、クラウド上で利用可能なWebおよびモバイルテストプラットフォームです。 様々なWebブラウザ(Chrome、Safari、Firefox、Edge、Operaなど)や実機端末(Windows、Mac、Android、iOS)に対応しているSaaSサービスです。 また、手動テストへの利用だけでなく、自動テストにおいても多くのテストフレームワークに対応しています。
なぜBrowserstackを利用しようと思ったか
課題:テスト用実機端末の管理のコストと利用までのリードタイムが長い
QA部や開発のメンバは基本的に多拠点(六本木、金沢、北海道など)で支援にあたっています。 そのため、テストやバグの再現確認を行う際に下記の課題がありました。
対応策:クラウドテストサービスの活用して、コストを抑えて、リードタイムを短くする
QA部では、前述の課題に対応するためにクラウドテストサービスを利用しました。
クラウドテストサービスの選定
候補サービス
2021年当時では、Browserstackに加えて、5つのサービスを候補としました。
サービス選定観点
以下の観点でサービスを選定しました。
サービス選定結果
検討した結果、対応するデバイスや自動テストへの充実さが決め手となり、Browserstackを採用しました。
凡例)〇:5pt:可能/多い、△:1pt:一部制約はあるが可能/中程度、×:0pt:不可能/少ない。
Browserstack活用シーン
メリット
【開発状況への対応】ローカルのネットワークで利用できる
ローンチ前のサービスやプロダクトに対しては、本番の利用環境だけでなく、ステージング環境でテストする必要があります。
その場合、実機端末ではどうしても個別にVPNや専用の環境に接続するための設定が必要になりますが、そういった作業は不要になります。
【端末互換性】気軽に新しい端末での動作を確認できる
利用できる日本製の端末はほぼありませんが、二週間程度で新しいブラウザや実機端末に対応しているため、新しい環境でのテストを気軽に試すことができます。
デメリット
【テスト対象機能の対応】基本的にUIの表示や振る舞いが重い
手動E2Eテストへの活用では、時間が比較的掛からない振る舞いを持つプロダクトの機能テストへの利用は出来ることがわかりました。
しかし、UI表示や処理に時間が掛かる振る舞いを持つプロダクトの機能テストへは非常に動作が重く、利用出来ませんでした。
活用がしやすいプロダクトの機能例
- 会員の新規登録/退会する
- ログイン/ログアウトする
- サービスへの入会/解約する
- 商品の購入/返金する
活用が難しいプロダクトの機能例
- 購入された動画を見る
- 購入された電子書籍を閲覧する
- ダウンロードする
- 端末の縦横を切り替える
【性能】基本的にUIの表示や振る舞いが重い
実端末に比べるとどうしても操作に時間がかかります。(体感としては、0.3秒ほど)
また、特定の端末を奪い合っていることがあるため、突発的に動作がものすごく重くなり、利用できないことがあります。
実際に完了期限が短いテストを実施する際に、実機端末の利用が出来ず、個別に実機端末を所持しているメンバに依頼しなければなりませんでした。
さいごに
課題に対する効果について
列挙した課題に対する効果ですが、実際にはどれくらいの効果があったかはお伝えしにくいです。
しかし、何か突発的なテスト用端末の確保が必要な場合、一定のコストやリードタイムに効果があることを実感できました。
実機端末とクラウドサービスなどの使い分けのまとめ
QA部の私のチームでは、下記としてテスト用端末の使い分けをまとめました。
凡例) ◎:推奨(複数の場合はどちらでも良い)、〇:推奨でないが利用可能、×:非推奨、環境がない。
突発的に動作が重くなることもあり、日々のテスト業務をクラウドサービスにすべて置き換えることはできませんでした。
しかし、クラウドサービスを併用することでいくつかの課題について状況を軽減できることがわかりました。
特に突発的な場合は、非常に便利なサービスになっているなと感じています。
また、サービスやツールは日々進化していくため、常に活用を模索する必要があるなと感じてます。
QA部では、これからも自分たちや開発組織全体がテストしやすい環境の構築に取り組んでいきます。