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

DMM TVでの自動テスト構築と QA部でのSaaS型の テスト自動化プラットフォームの活用

Avatar for 20731057hh 20731057hh
December 18, 2023

DMM TVでの自動テスト構築と QA部でのSaaS型の テスト自動化プラットフォームの活用

ソフトウェアテスト自動化カンファレンス2023での登壇資料
https://testautomationresearch.connpass.com/event/299491/

Avatar for 20731057hh

20731057hh

December 18, 2023
Tweet

Other Decks in Technology

Transcript

  1. © DMM 4 自己紹介 名前:花上 豊幸(はなうえ ひろゆき) 所属:テクノロジー本部 QA部    2020年9月入社

    勤務先:六本木本社 (普段は、神奈川自宅でフルリモート ) 【社内】 QA部を横断しての • テスト自動化の推進 • 不具合分析などのデータ分析基盤の構築 を担当しています 約2年程前からDMM TVのSETリーダも担当 【社外】 副業として • QA組織の立ち上げ /改善提案 • テスト自動化の推進 などの業務を請負いをさせて頂いております
  2. © DMM 5 自己紹介 名前:福永 有真(ふくなが ゆうしん) 所属:テクノロジー本部 QA部    2016年4月新卒入社(2020年3月〜QA部に参画)

    勤務先:金沢事業所(金沢からフルリモート) 2016年4月〜 動画配信開発部 バックエンドエンジニア 2020年3月〜 立ち上げ当初より QA部に参画       →動画配信や電子書籍、オンラインサロンなどの        サービスに対してテスト自動化を経験       → 昨年より電子書籍 /オンラインサロンの SETチームのリーダーを担当
  3. © DMM.com 15 テスト自動化スコープ(1/4) • 重要機能とリグレッションテストの拡充 ◦ 重要機能 ▪ 購入と再生関連でのテストを自動化

    ◦ リグレッションテスト ▪ 自動化可能なリグレッションテスト項目を自動化 ▪ マルチデバイス・ブラウザでのテスト自動化を拡張中 • 下記3つのテストをピックアップしてご紹介 ◦ 作品パターンテスト ◦ 視聴実績 ◦ SPブラウザからのアプリ起動
  4. © DMM.com 16 テスト自動化スコープ(2/4) • 作品パターンテスト ◦ 背景 ▪ DMM

    TVでは17万以上の作品があり, 作品パターンを 網羅した購入・再生のテストのみでも膨大な時間がか かってしまう ◦ 対応内容 ▪ BigQueryの作品データから作品パターンの csvを作成 • 理論値のパターンでは膨大すぎるため, 本番環境に 存在する作品パターンのみを抽出するクエリを作成 ▪ CodeceptJSのData Driven Testsにてcsvのパターン網羅 テストを自動化 • https://codecept.io/advanced/#data-driven-tests BigQuery CSV Data Driven Tests
  5. © DMM.com テスト自動化スコープ(3/4) • 視聴実績の検証 ◦ 背景 ▪ DMM TVでは各作品で再生された時間をログとして

    GoogleCloudに蓄積している ▪ 作品の支払い等にも影響するため , 常に再生時間のロ グが正しく取得できているかを確認する必要がある ◦ 対応内容 ▪ 再生プレイヤーでの様々な操作を自動化 ▪ GoogleCloudのログデータを取得し再生プレイヤーで の操作を含んだ再生時間と比較を行い再生時間が正し く蓄積できているかを確認 倍速 一時停止 スキップ シーク 17
  6. © DMM.com 18 テスト自動化スコープ(4/4) • SPブラウザからのアプリ起動 ◦ 背景 ▪ DMM

    TVのSPブラウザではブラウザ内でのストリーミング 再生の他にアプリを起動して作品を再生する機能がある ▪ そのため, SPブラウザとネイティブアプリを跨いだ確認が必 要となる ◦ 対応内容 ▪ SPブラウザにてアプリ起動までのシナリオを自動化 ▪ アプリの起動後にCodeceptJSのswitchToNative()でネイ ティブアプリの操作を行えるように切り替えを行っている • https://codecept.io/helpers/Appium.html#switchtonative • SPブラウザはSlenium, ネイティブアプリはAppium ベースで動作しているため Selenium Appium
  7. © DMM.com 20 テスト自動化の改良点(1/3) • ページオブジェクトモデル ◦ https://www.selenium.dev/ja/documentation/test_practices/encouraged/page_object_models/ ◦ openメソッド

    ページオブジェクト シナリオ 前画面のページオブジェクトの open()を呼ぶ 一行で検証画面までの遷移が記載 できシナリオが読みやすい
  8. © DMM.com 23 今後の展望 • テスト自動化の拡張 • 脱オンプレ環境(クラウドモバイル含む) ◦ オンプレのPCをクラウドサーバーに移行

    ◦ SP端末はクラウドモバイルへ移行 • 自動テスト以外では負荷試験の領域にチャレンジ ◦ 性能検証の領域へのQA部の活動拡大が目標 ◦ まずはDMM TVでの負荷試験に参画中
  9. © DMM 27 Autify & Mablを採用/支援している事業 Autify Mabl • ログイン/ログアウト

    • 新規登録 • ポイント/クーポン など プラットフォーム • 会員制コミュニティサー ビス
  10. © DMM 28 テスト実行しているWebブラウザ Autify Mabl • PC Web ◦

    Chrome ◦ Safari ◦ Firefox ◦ Edge • SP Web (iOS) ◦ Safari • SP Web (Android) ◦ Chrome • PC Web ◦ Chrome • SP Web (iOS) ◦ Safari • SP Web (Android) ◦ Chrome ※今回のスコープは Webアプリへのテスト自動化のみとなっております
  11. © DMM 30 課題 • 自動テストの需要に対して、 自動テストエンジニアが不足していた。 仮説 • SaaS型のプラットフォームを利用することで、コーディングの経験が少な

    いテストエンジニアが自動テストを構築できるはず! 採用理由1: 経験が少ないテストエンジニアが自動テストを構築できる
  12. © DMM 31 課題 • 頻度は多くないが、 ブラウザを網羅してテストを実施したい。という要望があった。 仮説 • 実機を用意せずにクロスブラウザのテストができる

    • 環境構築・運用コストを抑えつつスモールスタートできるはず! 採用理由2:クロスブラウザテストの需要
  13. © DMM 導入手順 運用評価 運用開始 テスト設計/実装 計画提案 ヒアリング 自動化の目的 導入計画書

    成果指標 テストケース 評価報告書 テスト結果 不具合記録 OUTPUT ヒアリング〜運用開始 目安期間:2~3ヶ月程度
  14. © DMM 41 実行回数/ステップ制限 • 自動テストシナリオの選定や設計に時間がかかる • ステップ数や想定実行回数、それらがもたらすコスト価値を計画時に慎重に試算する 必要がある 期待値が詳細なテスト

    • JSスニペットを書くことになることが多い • テストが複雑化/ステップ数が増加するので、細かすぎるテスト設計をしない ツールの環境によるエラー • クラウド環境/ツール上でのみ失敗するエラーがたまに発生する • 問い合わせを活用しつつ発生条件を模索し、ナレッジ化する 課題と解決策