高い開発生産性を実現するために取り組んだMagicPodの利活用
by
t-jimbo
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Slide 1
Slide 1 text
高い開発生産性を実現するために 取り組んだMagicPodの利活用 MagicPodユーザーLT会 2023.07.14 1
Slide 2
Slide 2 text
神保 拓眞(t-jimbo) 2 ■ BuySell Technologies 所属 ■ フロントエンドエンジニア ■ 店舗買取システム「Store」の開発 https://twitter.com/ce_mm スライドアップしてます!
Slide 3
Slide 3 text
プロダクトの紹介
Slide 4
Slide 4 text
買取 から 販売 まで、総合リユースビジネスを展開 4
Slide 5
Slide 5 text
リユースプラットフォーム「Cosmos」 ■ リユースのあらゆる課題を、テクノロジーで解決する。 5
Slide 6
Slide 6 text
リユースプラットフォーム「Cosmos」 ■ リユースのあらゆる課題を、テクノロジーで解決する。 6
Slide 7
Slide 7 text
リユースプラットフォーム「Cosmos」 ■ リユースのあらゆる課題を、テクノロジーで解決する。 7
Slide 8
Slide 8 text
店舗買取システム「Store」 8 https://newswitch.jp/p/37111 ステップ形式で操作に迷わず買取業務を進める iPad用のWebアプリ
Slide 9
Slide 9 text
フィードバック 全国で運用中=障害は出せない 9 昨年9月にリリース 店舗買取を行うグループ会社へも展開 Storeの障害 = 買取機会損失 New!! 新機能リリース
Slide 10
Slide 10 text
バイセルグループ3社にまたがって利用 ■ バイセル、TIMELESS、WAKABAで利用 ■ 会社によって業務フローが異なるため、求められる機能が異なる ● 機能の表示・非表示、用語の切り替えなど 10
Slide 11
Slide 11 text
安全かつ高速なデリバリーを実現する ■ featureフラグを活用したトランクベース開発 ● 小さく高頻度でリリース ● 開発、テスト、デプロイのサイクルを高速に回していく ● PR数が1日10件を超える日も! 11
Slide 12
Slide 12 text
自動テストが安全性を担保 ■ CI/CDでテストを回しまくる ● 単体テスト ● 画像回帰テスト ● インタラクションテスト ● E2Eテスト 12
Slide 13
Slide 13 text
自動テストが安全性を担保 ■ CI/CDでテストを回しまくる ● 単体テスト ● 画像回帰テスト ● インタラクションテスト ● E2Eテスト ● MagicPod をフル活用 13
Slide 14
Slide 14 text
こんな風にMagicPodを使っています
Slide 15
Slide 15 text
コードベースのE2Eテストに課題 ■ 壊れやすいE2Eテストをコードで書くのはつらい ● メンテナンスコストが大きく、開発体験が悪化 ● 属人化しがち ■ 結果としてテストが書かれなくなってしまう... 15
Slide 16
Slide 16 text
MagicPodの嬉しいところ 16 ノーコードでテスト作成 AIによる自動修復機能 iOSのエミュレータ テストケースのバージョン管理など、日々 嬉しい機能がアップデートされています
Slide 17
Slide 17 text
MagicPodの嬉しいところ ■ テストケースの作成がかんたん ■ メンテナンスコストが低い ■ 開発とQAのエンジニアを分離できる 17
Slide 18
Slide 18 text
StoreでのMagicPodの利用 とにかくたくさん実行して品質チェックする!! けどテスト待ちで開発スピードを落としたくはない 18
Slide 19
Slide 19 text
StoreでのMagicPodの利用 3種類の実行方法を使い分けています 19 定期実行で PR時点でも(New) デプロイ前に
Slide 20
Slide 20 text
定期実行でMagicPodを回す ■ 3時間に1回の実行 ● 実行数が無制限! ■ ここであらゆるケースをカバー ● 基本フロー ● 中止や特殊なフロー 20
Slide 21
Slide 21 text
デプロイ前にMagicPodを回す ■ 本番環境へのデプロイ前にstaging環境でE2Eテストを自動実行 ● 変更による障害を防ぐ ● 詳細は バイセル Tech Blog を参照! 21
Slide 22
Slide 22 text
デプロイ前にMagicPodを回す ■ (余談)ワークフローはさらに進化中... ● buildの並列化 ● CODEOWNERによる承認フローの追加 ● リリースノートの自動作成 22
Slide 23
Slide 23 text
PR時点でもMagicPodを回す ■ デプロイ直前にしかテストが実行できないのが課題だった ● マージ前にCIでもテストを実行したい! 23 Merge テスト失敗 Revert
Slide 24
Slide 24 text
PR時点でもMagicPodを回す ■ PRを作成すると自動でプレビュー環境を立てる 24 PR作成 Cloud Runへデプロイ PR番号でURL生成 https://pr-1234-an.a.run.app/
Slide 25
Slide 25 text
PR時点でもMagicPodを回す ■ MagicPod API Client をGitHub Actionsで利用する ■ 環境変数で渡すことで任意のURLに対応 25 MagicPod API Client 渡されたURLに遷移
Slide 26
Slide 26 text
実行方法 定期実行 デプロイ前(CD) PR時点(CI) テスト内容 全フロー 基本フローのみ 実行時間 長(合計30~40分) 短(約5分) 役割 完全な品質の担保 デプロイ時の障害防止 変更時の自動テスト ■ 定期実行で全フローのテストを行い恒常的な品質を担保 ■ CI/CDでは開発スピード重視で軽量な基本フローのみを実行 StoreでのMagicPodの利用まとめ 26
Slide 27
Slide 27 text
開発生産性の向上にかなり寄与しています
Slide 28
Slide 28 text
MagicPodを回しまくることで... ■ 安心・安全が得られる! ● 障害の未然防止 ■ 人間の確認作業を最小限に抑えられる!! ■ エンジニアがテスト作成や機能開発に集中できる!!! 28 使い倒しましょう!!!!
Slide 29
Slide 29 text
B U Y S E L L T E C H N O L O G I E S B U Y S E L L T E C H N O L O G I E S リユース業界 No.1テックカンパニーへ