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

クラウドE2Eテスト環境を構築してQA業務の効率化アップ

gremito
December 07, 2024
77

 クラウドE2Eテスト環境を構築してQA業務の効率化アップ

gremito

December 07, 2024
Tweet

More Decks by gremito

Transcript

  1. プロフィール
 • 岩本 拓也 | gremito(@grem_ito)
 • フリーランス エンジニア
 ◦

    2014~2019に3社経験して2019/7よりフリーランス 
 ◦ Webやスマホのアプリ開発 / QAエンジニア / CSM 
 • これまでのQA業務について
 ◦ Web/スマホ/タブレットのアプリでサービスやソシャゲアプリなど 
 ◦ QA業務の課題調査、改善提案、QAエンジニア業務支援 
 • イベント
 ◦ Unity Fukuoka 
 ◦ QAエンジニア勉強会 
 X / Twitter 
 Wantedly
 LinkdIn

  2. アジェンダ
 • イントロ
 • ターゲット
 • プロフィール
 • テストとQA
 •

    クラウドE2Eテスト
 • 事例紹介
 • 課題
 • クロージング

  3. テスト≠QA
 • テストは手法であって目的ではなく、またテストだけではQA(品質保証)を網羅できな い
 ◦ テスト=QAになってしまう原因は、品質チェックの手法がテスト(試験, 検査, etc)しかないこと やリリース前のテストがQA作業というイメージが強いため。 


    • テストの他にもQA業務があってエンジニア並みに大変
 ◦ プロセス改善、テストデータ管理、QA見積もり、dev/stg/pro環境毎の品質管理、…etc 
 • テスト
 ◦ テストの種類
 ▪ エンジニアサイド: 単体テスト、結合テスト、機能テスト、…etc 
 ▪ QAサイド: システムテスト、受け入れテスト、E2Eテスト、リグレッションテスト、パフォーマンステス ト、セキュリティテスト、ユーザビリティテスト、..etc 
 ◦ テストフロー: 計画、設計、作成、実行、評価 

  4. テスト≠QA
 要件策定 要件レビュー、テスト計画 設計 システム設計レビュー、テスト要件洗い出し、テストケース設計、テストツール要件洗い出し 開発 スプリントレビュー、テストツール依頼、テストデータ準備、テストケース作成、テスト見積もり レベルデザイン データ作成 レベルデザインレビュー、マスタデータレビュー

    テスト Unit/APIテスト把握、テスト実施、テストFB、品質状況管理 リリース リリースフローレビュー、本番テスト準備 デプロイ 本番テスト実施、品質状況管理 振り返り 不具合と仕様の品質状況管理Fix、QA課題の整理と改善、テストふりかえり
  5. E2E(End to End)テストについて
 • クライアントからアプリを操作して製品の品質に問題がないか動作確認するテスト
 ◦ UIテストや受け入れテストなどとも呼ばれる 
 ▪ UIテストはエンジニアが使用するテストツールで実装するためQAは把握するだけで管理はしな

    い
 ▪ 受け入れテスト(ビジネス/顧客要件を満たすことを確認する)でE2Eテスト(システム全体を確認 する)をやっている
 • ツール
 ◦ Web: Selenium, Cypress, Playwright, Puppeteer, …etc 
 ◦ Mobile: Appium, Airtest, …etc 

  6. クラウド対応するE2Eテストとは
 • クラウドE2Eテスト=テスト自動化
 • サービス
 ◦ SaaS
 ▪ mabl, Autfy,

    MagicPod, Ghost Inspector, …etc 
 ◦ PaaS
 ▪ Remote TestKit, AnyTest, AWS DeviceFarm, Firebase Test Lab, Visual Studio App Center(2025/3/31廃止で以降はBrowserStack App Automate), …etc 
 • トレードオフについて
 ◦ イニシャルコストが高くかかるものの自動化やマニュアル化を徹底することでラーニングコストを低コス トに抑えることができ、安定したQAフローが完成する 

  7. 3. Autify / mabl / MagicPodなどでAIによるE2Eテスト自動化対応
 • 背景について
 ◦ E2Eテストを自動化するためにツール選定およびAIによる自動更新機能付きサービスの調

    査、検証、計画、導入、ドキュメント整備、引き継ぎの対応を数社で経験(2020〜2023年) 
 ◦ 所感
 i. mabl: 多機能で慣れが必要、ドキュメントが豊富、サポート良き、プランちょい高 
 ii. Autify: 十分な機能で直感的に使える、ドキュメントが豊富、サポート良き、プランちょい 高
 iii. MagicPod: シンプル機能で直感的に使える、ドキュメント少なめ、サポート普、プラン普 

  8. • アプリのインストールやセットアップがなく、Web上で利用するツールなので簡単安全
 • どのサービスも基本的にIDEのツール操作でテストを作って管理でき、ツールを覚え てしまえば誰でもテストを作成して管理することができる
 ◦ ループ処理 / 条件式 /

    ランダム要素 / 異なる複数のテストデータなどSeleniumやCypress などのツールでは難しいテストをGUI操作で柔軟に作成できる 
 ▪ テストの作成 – mablヘルプ 
 ▪ Autify University
 • ただし各サービスで同じテストを作って動作確認すると、テスト結果が異なるケース があってプロダクトとツールとの相性があった
 3. Autify / mabl / MagicPodなどでAIによるE2Eテスト自動化対応

  9. 3. Autify / mabl / MagicPodなどでAIによるE2Eテスト自動化対応
 • AIによるテストシナリオのアプデ機能は、UI変更が色・形・文言などの小さい変更であ ればほぼ自動アプデで対応できるがセレクトがプルダウンになるUX変更レベルは手 動対応が必要になる


    • ツールで作れない箇所は、XPathやJavaScriptを扱う必要がある出てくるためフロント エンドとプログラミングのスキルが必要になる
 https://autify.jp/products/nocode https://www.mabl.com/ja/ai-test-automation https://magicpod.com/
  10. 4. Airtest IDEで作ったテストをJenkinsからAWS DeviceFarmに
 E2Eテストを実行するCIツール開発
 • 背景について ◦ 複数のUnityアプリで活用できるE2Eテスト自動化環境を作る ◦

    エンジニアもテスター/デバッガーも一緒にテストを管理してリリース前テストのコストを少しで も減らしたい
 Airtest IDE AWS 
 Device Farm 

  11. 4. Airtest IDEで作ったテストをJenkinsからAWS DeviceFarmに
 E2Eテストを実行するCIツール開発
 • テスト結果通知はAWS DeviceFarmからではなく Jenkinsで全テストをまとめて1通知で送信するように対 応

    • 現在も改善しながら導入対応中 ◦ DeviceFarmの従来のテストスペックが2024/10に使用 できなくなったため android_test_host: amazon_linux_2 にアプデ対応 ◦ AndroidのみでiOSテスト未対応 ◦ テストパッケージを各テストで作成する際に必要なライ ブラリをZIP化するためテストが増える=テスト時間が 増加するため事前にZIPファイルを作っておきたい

  12. テストパターンについて
 • ランダムや確率や分岐などの毎回結果が変わる要素があると期待通りのテストを作 れないケースが出てくる
 ◦ 例1: 宿題生成アプリ(ChatGPT APIに特定のパラメータを渡して宿題を作ってExcelやPDFなどを生成 する)のQAでは、問題の内容以外のE2Eテストは作れるものの問題の内容が正確なものか品質チェッ クするのは難しい。A

    to A(Agent to Agent)で問題を解いてその内容が正しいかまで全てAIに任せる ことができれば自動化できる。 
 ◦ 例2: ソシャゲアプリでガチャの確率が正しいかガチャのE2Eテスト内で排出されるアイテムの内容が正 確なものか品質チェックするのは難しい。ひたすらガチャを引くテストを作って、E2Eテストが終わった後 にその結果排出されたアイテムを集計して引いたガチャの回数とアイテムの数の割合を計算するサー バー実装が必要。
 • テスト量が多いとテスト時間も長いため諸々コストがかかってしまう
 ◦ DeviceFarmの最大テスト時間は150分(2時間半)だが1テスト30分以内に設計する 
 ◦ スモークテストをデイリーではなくウィークリーや半月に1回実行するなど調整する 

  13. まとめ
 • クラウドE2Eテストについて
 ◦ テスト自動化とクラウド化だけでなく、CI対応やE2Eテスト運用などやることが多く導入コスト が高いため、プロダクト状況にマッチするQAプランを考えるだけでも一苦労する。 
 ◦ テストを自動化することでテストコストを最適化する以外にも、属人化の改善やテスト品質の 最適化にも効果的であるため、コストだけに洗脳されないように。

    
 ◦ Airtest IDEやmabl/Autify/MagicPodなどのE2EテストIDEツールを活用して、ツールを覚えれ ば誰でもテストを作成して管理できるQA環境を作ることで、リリース前テストを最後の砦にし ない対策ができる。
 ▪ ※誰が作ってもある一定のテスト品質になるようにQAのテストフローにもレビュー文化を作る