Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Macインスタンスを活用したアプリE2Eテストの実現
Search
coconala_engineer
June 20, 2024
Technology
1
920
Macインスタンスを活用したアプリE2Eテストの実現
AWS Summit Japan 2024ミニステージの登壇資料。
https://aws.amazon.com/jp/summits/japan/
coconala_engineer
June 20, 2024
Tweet
Share
More Decks by coconala_engineer
See All by coconala_engineer
SIEMを利活用した信頼性向上プロセスと実践
coconala_engineer
0
13
Cursorを使って 新機能開発してみて 感じたこと
coconala_engineer
0
92
社内にAIレビューツール導入してみた
coconala_engineer
0
90
犯人はE2Eテスト? 並列実行で開発チームを救え!
coconala_engineer
0
42
サービスを止めるな! DDoS攻撃へのスマートな備えと最前線の事例
coconala_engineer
2
270
SREの次のキャリアの道しるべ 〜SREがマネジメントレイヤーに挑戦して、 気づいたこととTips〜
coconala_engineer
2
5.7k
ココナラiOSチームの生成AI利用
coconala_engineer
0
44
AIと向き合う若手エンジニアの責任
coconala_engineer
0
52
GraphQLを活用したリアーキテクチャに対応するSLI/Oの再設計
coconala_engineer
0
330
Other Decks in Technology
See All in Technology
自作JSエンジンに推しプロポーザルを実装したい!
sajikix
1
170
20250910_障害注入から効率的復旧へ_カオスエンジニアリング_生成AIで考えるAWS障害対応.pdf
sh_fk2
3
240
ハードウェアとソフトウェアをつなぐ全てを内製している企業の E2E テストの作り方 / How to create E2E tests for a company that builds everything connecting hardware and software in-house
bitkey
PRO
1
130
バイブスに「型」を!Kent Beckに学ぶ、AI時代のテスト駆動開発
amixedcolor
2
540
Platform開発が先行する Platform Engineeringの違和感
kintotechdev
4
560
新アイテムをどう使っていくか?みんなであーだこーだ言ってみよう / 20250911-rpi-jam-tokyo
akkiesoft
0
230
未経験者・初心者に贈る!40分でわかるAndroidアプリ開発の今と大事なポイント
operando
5
400
エラーとアクセシビリティ
schktjm
1
1.2k
250905 大吉祥寺.pm 2025 前夜祭 「プログラミングに出会って20年、『今』が1番楽しい」
msykd
PRO
1
790
LLMを搭載したプロダクトの品質保証の模索と学び
qa
0
1k
KotlinConf 2025_イベントレポート
sony
1
130
「全員プロダクトマネージャー」を実現する、Cursorによる仕様検討の自動運転
applism118
21
10k
Featured
See All Featured
How STYLIGHT went responsive
nonsquared
100
5.8k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
What's in a price? How to price your products and services
michaelherold
246
12k
4 Signs Your Business is Dying
shpigford
184
22k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Gamification - CAS2011
davidbonilla
81
5.4k
Documentation Writing (for coders)
carmenintech
74
5k
Writing Fast Ruby
sferik
628
62k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
358
30k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.9k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.7k
Transcript
Copyright coconala Inc. All Rights Reserved. Macインスタンスを活用した アプリE2Eテストの実現 株式会社ココナラ 川崎
雄太 2024/06/21 AWS Summit Japan 2024 ミニステージ
Copyright coconala Inc. All Rights Reserved. 自己紹介 2 川崎 雄太 Yuta
Kawasaki @yuta_k0911 株式会社ココナラ システムプラットフォーム部 部長 / Head of Information SRE / 情シス / セキュリティ領域のEM SRE NEXT 2024のコアメンバー 去年の自慢: PR TIMESに3回載った✨
Copyright coconala Inc. All Rights Reserved. 3 ココナラの事業内容
Copyright coconala Inc. All Rights Reserved. ココナラのエンジニア数の変遷 4 事業拡大に合わせて 3年で約3倍の組織規模に成長
2020年 2023年 フェーズ 上場前 上場後 エンジニア数 20人強 70人強 リポジトリ数 45 170以上
Copyright coconala Inc. All Rights Reserved. 5 Agenda アプリE2Eテスト導入の背景 ココナラ流アプリE2Eテスト
導入してみてどうだったか? 2 1 3
Copyright coconala Inc. All Rights Reserved. アプリE2Eテスト導入の背景 Chapter 01 6
Copyright coconala Inc. All Rights Reserved. もともとココナラでは、ある時期まで アプリのリグレッションテストを すべて手動 で行っていた。
アプリの機能数が少なかった頃は あまり問題になっていなかったが、 アプリの機能は増える一方🤔 7
Copyright coconala Inc. All Rights Reserved. プロダクトはどんどん成長していき、 アプリの機能がどんどん増え続け、 手動テストに要する時間も延びた 💦
さらには手動でテストしきれず、 品質面での問題が顕在化 する こともあった。 8
Copyright coconala Inc. All Rights Reserved. 今後はどうなっていく予測になるか? 9 自動化による範囲が大きくなればなるほど、効率化が大事 前述の通り、もともとは手動テストで何
とかなっていたものの、プロダクトの成 長により、手段としての自動テスト の効果が大きくなる構図となった。 このような状況をふまえて、ココナラで はアプリのE2Eテスト自動化に大き く舵を切っていくこととなった。
Copyright coconala Inc. All Rights Reserved. ココナラ流アプリ E2Eテスト Chapter 02
10
Copyright coconala Inc. All Rights Reserved. アプリE2Eテストの環境 11 Amazon EC2(Macインスタンス)などを組み合わせて構成
AWS Chatbot AWS Lambda Amazon EC2
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にレポートされる。
Copyright coconala Inc. All Rights Reserved. 採用した技術 13 役割 採用したもの
採用理由 オートメーション Appium Detoxと比較し、アプリの対応度合い・相 性が良かった。 WebdriverIO Appiumのクライアントで使用。 テストランナー Jest 拡張性を重視。 テスト言語 TypeScript テストの書きやすさを重視。 テスト結果可視化 ReportPortal Allureと比較し、大量のテスト結果可視 化に優れていた。 テストサーバー Amazon EC2 mac2 各種CIサービスと比較し、コストパフォー マンスに優れていた。
Copyright coconala Inc. All Rights Reserved. アプリE2Eテストの内容 14 リリース前に手動で行っていたテストの約 85%を自動化
• たとえば、以下のテストを自動化。 ◦ メールで会員登録できること ◦ Googleで会員登録できること ◦ ログインできること ◦ サービスが出品できること ◦ サービスをクレジットカードで購入できること ◦ サービスをポイントで購入できること
Copyright coconala Inc. All Rights Reserved. アプリE2Eテストのコードサンプル 15
Copyright coconala Inc. All Rights Reserved. E2Eテストが実際に動いているところ 16 1. Slackのフォームを開き、テスト対
象のデバイス、ブランチ、テスト内 容などを入力します。
Copyright coconala Inc. All Rights Reserved. E2Eテストが実際に動いているところ 17 2. 入力をトリガーにテストが開始さ
れます。
Copyright coconala Inc. All Rights Reserved. E2Eテストが実際に動いているところ 18 3. テストの進行状況がリアルタイ
ムで表示されます。
Copyright coconala Inc. All Rights Reserved. E2Eテストが実際に動いているところ 19 4. テストが完了すると、結果のサ
マリとレポートのリンクが表示さ れます。
Copyright coconala Inc. All Rights Reserved. E2Eテストが実際に動いているところ 20 5. レポートのリンクを開くと、
ReportPortalで操作内容とスク リーンショットが確認できます。
Copyright coconala Inc. All Rights Reserved. E2Eテストが実際に動いているところ 21 6. 録画データをダウンロード、再
生することもできます。
Copyright coconala Inc. All Rights Reserved. E2Eテストが実際に動いているところ 22 7. さらに、過去のテスト結
果を含めた統計データ を確認することもできま す。
Copyright coconala Inc. All Rights Reserved. E2Eテストが実際に動いているところ 23 8. ReportPortalでは実施
したテストの属性の設定 や、FAILED内容の分類 もできます。
Copyright coconala Inc. All Rights Reserved. E2Eテストが実際に動いているところ 24 9. 設定した属性やFail内
容の分類を用いて、 E2Eテストの成功率や FAILED内容の割合な どのメトリクスを可視化 しています。
Copyright coconala Inc. All Rights Reserved. 導入してみてどうだったか? Chapter 03 25
Copyright coconala Inc. All Rights Reserved. 定量的に効果を得ることができた! 26 工数削減だけでなく、品質向上に寄与することができた •
リリース前にバグを検知できた回数:5回 ◦ サービス詳細画面が開けない ◦ サービス検索で絞り込みできない。 ◦ 見積もり相談に対して提案できない • リリース後、早期にバグを検知できた回数:3回
Copyright coconala Inc. All Rights Reserved. テックブログの記事もたくさんの方に見てもらえた! 27 「アプリ e2e」で検索すると
1位と4位に記事が載っている
Copyright coconala Inc. All Rights Reserved. Web E2Eテストにも同じ仕組みを展開した! 28 実は「web
e2e」で検索しても 1位に記事が載っている
Copyright coconala Inc. All Rights Reserved. アプリのE2Eテスト基盤に Amazon EC2(Macインスタンス)を 採用することで、費用対効果の高い
E2Eテストを実現できました!💡 ぜひ、参考になれば幸いです!😁 29
Fin
Copyright coconala Inc. All Rights Reserved. Appendix 31
Copyright coconala Inc. All Rights Reserved. 参考資料 32 • E2Eテストに関する記事
◦ Android / iOSアプリのE2Eテスト全部で250シナリオを 自動化しました! 第1回 全体像 ◦ Android / iOSアプリのE2Eテスト自動化の運用保守で 日々格闘しているお話 ◦ WebのE2Eテスト自動化〜ツール選定編〜 • E2Eテストに関する登壇資料 ◦ WebのE2Eテスト自動化 〜導入から運用・評価までの 道のり編〜 - Speaker Deck