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

Macインスタンスを活用したアプリE2Eテストの実現

 Macインスタンスを活用したアプリE2Eテストの実現

AWS Summit Japan 2024ミニステージの登壇資料。
https://aws.amazon.com/jp/summits/japan/

coconala_engineer

June 20, 2024
Tweet

More Decks by coconala_engineer

Other Decks in Technology

Transcript

  1. Copyright coconala Inc. All Rights Reserved. 自己紹介 2 川崎 雄太 Yuta

    Kawasaki @yuta_k0911 株式会社ココナラ システムプラットフォーム部 部長 / Head of Information SRE / 情シス / セキュリティ領域のEM SRE NEXT 2024のコアメンバー 去年の自慢: PR TIMESに3回載った✨
  2. Copyright coconala Inc. All Rights Reserved. ココナラのエンジニア数の変遷 4 事業拡大に合わせて 3年で約3倍の組織規模に成長

    2020年 2023年 フェーズ 上場前 上場後 エンジニア数 20人強 70人強 リポジトリ数 45 170以上
  3. Copyright coconala Inc. All Rights Reserved. もともとココナラでは、ある時期まで アプリのリグレッションテストを すべて手動 で行っていた。

    アプリの機能数が少なかった頃は あまり問題になっていなかったが、 アプリの機能は増える一方🤔 7
  4. Copyright coconala Inc. All Rights Reserved. 今後はどうなっていく予測になるか? 9 自動化による範囲が大きくなればなるほど、効率化が大事 前述の通り、もともとは手動テストで何

    とかなっていたものの、プロダクトの成 長により、手段としての自動テスト の効果が大きくなる構図となった。 このような状況をふまえて、ココナラで はアプリのE2Eテスト自動化に大き く舵を切っていくこととなった。
  5. Copyright coconala Inc. All Rights Reserved. アプリE2Eテストの処理の流れ 12 さまざまなものをインテグレートして、実現している 1.

    Slack上でデバイス、テスト内容などを入力。入力後、AWS Chatbotが起動し、AWS Lambdaを呼び出す。 2. AWS LambdaがExpressにリクエストを送信。 3. Expressがテスト制御プロセスを起動し、メッセージを送信。 4. テスト制御プロセスがアプリをビルドし、デバイスやAppium を起動。テストランナーであるJestを実行。 5. テスト状況がSlack、ReportPortalにレポートされる。
  6. Copyright coconala Inc. All Rights Reserved. 採用した技術 13 役割 採用したもの

    採用理由 オートメーション Appium Detoxと比較し、アプリの対応度合い・相 性が良かった。 WebdriverIO Appiumのクライアントで使用。 テストランナー Jest 拡張性を重視。 テスト言語 TypeScript テストの書きやすさを重視。 テスト結果可視化 ReportPortal Allureと比較し、大量のテスト結果可視 化に優れていた。 テストサーバー Amazon EC2 mac2 各種CIサービスと比較し、コストパフォー マンスに優れていた。
  7. Copyright coconala Inc. All Rights Reserved. アプリE2Eテストの内容 14 リリース前に手動で行っていたテストの約 85%を自動化

    • たとえば、以下のテストを自動化。 ◦ メールで会員登録できること ◦ Googleで会員登録できること ◦ ログインできること ◦ サービスが出品できること ◦ サービスをクレジットカードで購入できること ◦ サービスをポイントで購入できること
  8. Copyright coconala Inc. All Rights Reserved. E2Eテストが実際に動いているところ 23 8. ReportPortalでは実施

    したテストの属性の設定 や、FAILED内容の分類 もできます。
  9. Copyright coconala Inc. All Rights Reserved. E2Eテストが実際に動いているところ 24 9. 設定した属性やFail内

    容の分類を用いて、 E2Eテストの成功率や FAILED内容の割合な どのメトリクスを可視化 しています。
  10. Copyright coconala Inc. All Rights Reserved. 定量的に効果を得ることができた! 26 工数削減だけでなく、品質向上に寄与することができた •

    リリース前にバグを検知できた回数:5回 ◦ サービス詳細画面が開けない ◦ サービス検索で絞り込みできない。 ◦ 見積もり相談に対して提案できない • リリース後、早期にバグを検知できた回数:3回
  11. Fin

  12. Copyright coconala Inc. All Rights Reserved. 参考資料 32 • E2Eテストに関する記事

    ◦ Android / iOSアプリのE2Eテスト全部で250シナリオを 自動化しました! 第1回 全体像 ◦ Android / iOSアプリのE2Eテスト自動化の運用保守で 日々格闘しているお話 ◦ WebのE2Eテスト自動化〜ツール選定編〜 • E2Eテストに関する登壇資料 ◦ WebのE2Eテスト自動化 〜導入から運用・評価までの 道のり編〜 - Speaker Deck