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
Postmanを活用した家電アプリプラットフォームAPIの試験効率化
Search
YukiOgawa
January 26, 2024
Programming
1
420
Postmanを活用した家電アプリプラットフォームAPIの試験効率化
三菱電機の家電アプリを支えるプラットフォームの開発におけるPostmanを活用した試験効率化の施策について発表します。
YukiOgawa
January 26, 2024
Tweet
Share
More Decks by YukiOgawa
See All by YukiOgawa
AWSコミュニティビルダーになりたいんじゃ!
yukiogawa
1
150
生成AIによる業務利活用アプリを、部門横断チームが3日でPoCを作ってみた!
yukiogawa
1
350
初学者向けにサーバーレスアーキテクチャを体験できるハンズオンを考えてみた
yukiogawa
0
440
Bedrock Claude3を使って市場対応をDX化を検討してみた
yukiogawa
2
1.2k
Other Decks in Programming
See All in Programming
PSR-15 はあなたのための ものではない? - phpcon2024
myamagishi
0
100
数十万行のプロジェクトを Scala 2から3に完全移行した
xuwei_k
0
270
短期間での新規プロダクト開発における「コスパの良い」Goのテスト戦略」 / kamakura.go
n3xem
2
170
良いユニットテストを書こう
mototakatsu
5
2k
Webエンジニア主体のモバイルチームの 生産性を高く保つためにやったこと
igreenwood
0
330
17年周年のWebアプリケーションにTanStack Queryを導入する / Implementing TanStack Query in a 17th Anniversary Web Application
saitolume
0
250
HTTP compression in PHP and Symfony apps
dunglas
2
1.7k
これが俺の”自分戦略” プロセスを楽しんでいこう! - Developers CAREER Boost 2024
niftycorp
PRO
0
190
PHPで学ぶプログラミングの教訓 / Lessons in Programming Learned through PHP
nrslib
2
180
コンテナをたくさん詰め込んだシステムとランタイムの変化
makihiro
1
130
Effective Signals in Angular 19+: Rules and Helpers @ngbe2024
manfredsteyer
PRO
0
130
Mermaid x AST x 生成AI = コードとドキュメントの完全同期への道
shibuyamizuho
0
160
Featured
See All Featured
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
6.9k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
29
2k
Six Lessons from altMBA
skipperchong
27
3.5k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
How To Stay Up To Date on Web Technology
chriscoyier
789
250k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
169
50k
4 Signs Your Business is Dying
shpigford
181
21k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
45
2.2k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
Building Your Own Lightsaber
phodgson
103
6.1k
Rails Girls Zürich Keynote
gr2m
94
13k
Transcript
©Mitsubishi Electric Corporation 2 0 2 4 / 1 /
2 5 IoT・ライフソリューション新事業推進センター 小川 雄喜 Po s t m a n を 活 用 し た 家 電 ア プ リ プ ラ ッ ト フ ォ ー ム A P I の 試 験 効 率 化
©Mitsubishi Electric Corporation 2 • 小川 雄喜(おがわ ゆうき) • 横浜市育ち(30年以上)、京都在住(3年)
• 三菱電機(株) • IoT・ライフソリューション新事業推進センター 所属 • 主にB2C製品向けプラットフォーム/アプリ開発に従事 • 社内海外OJT制度で1年間北米(アトランタ)に滞在 • Postmanとの関係 • 海外OJT中に現地でAPI試験で使用したのがきっかけ • 現在はプラットフォーム/アプリ開発で使用中 自己紹介 0 @_YukiOgawa
©Mitsubishi Electric Corporation 3 • 三菱電機の家電アプリプラットフォームの概要 • 家電アプリプラットフォームのAPI試験 • 今後の展望
アジェンダ 0
©Mitsubishi Electric Corporation 4 1 三 菱 電 機 の
家 電 プ ラ ッ ト フ ォ ー ム の 概 要
©Mitsubishi Electric Corporation 5 三菱電機グループの事業と組織 1 空調・冷熱機器 ・システム 住宅設備機器 ・システム
家電機器 ◦IoT・ライフソリューション 新事業推進センターの業務 リビング・デジタルメディア事業本部の ソリューション・サービスにおいて以下を担当 (20年4月発足) ・事業企画 ・プラットフォーム開発・運営 ・新事業インキュベーション推進 IoT・ライフソリューション新事業推進センター
©Mitsubishi Electric Corporation 6 三菱電機 IoTライフソリューションコンセプト 1 ・エネルギーの見える化アプリ ミエネル ・条件設定に基づく自動制御
(あったかリンク、スマートe-Flo) ・霧ヶ峰REMOTE・おやすみサポート ・あったかリンク ・故障予知・診断 ・高齢者みまもり MeAMOR ・レシピサイト連携・冷蔵庫つながるアプリ ・IHクッキングヒーターアプリ 他社 ECHONET Lite 対応製品 オープン化 循環型デジタルエンジニアリング企業を目指し ・お客様から得られたデータをデジタル空間に集約、分析 → 新たな価値の創出 → 社会課題の解決に貢献 → 働きやすく暮らしやすい「しあわせな社会」を実現 三菱電機 家電統合アプリ MyMU(マイエムユー) 三菱電機 IoT製品 IoTライフソリューション プラットフォーム Linova(リノバ) MyMUデータ キャンペーンコード 利用履歴 IoT機器データ 省エネ 快適 自動化 遠隔保守 みまもり スマートe-Flo 情報発信 外部サービス データ統合分析基盤 KOTOLiA データ活用 新たな価値 課題解決 データ収集 アプリ、製品に搭載
©Mitsubishi Electric Corporation 7 家電アプリ共通プラットフォームの概要 1 外部サービス連携 プロトコル変換器 IoTアダプター 共通Web
API アプリ開発 ライフサイクルソリューション 安心・見守り 最適環境(IEQ) ECHONET Lite機器(他社機器・センサー等) データ統合分析P/F KOTOLiA 当社製品 MyMU IT-OT連携P/F 修理・保守 販売・提案 課金・回収 統合IoT共通P/F Linova / MyMU データレイク データウェアハウス データマート グループ内外の ITシステムとの連携 協創による 新サービス創出 複合制御・ 自動化の実現 機能の高度化・ 知能化 IoT共通プラットフォームの開発
©Mitsubishi Electric Corporation 8 MyMUとは? 1 MyMUアプリ = My Mitsubishi
Unified Application • Linova(リノバ)に接続された IoT機器の操作を1つのアプリに統合 • 複数機器の連携操作でより便利に • 外部サービスとの連携機能も提供 三菱電機家電統合アプリ MyMU(マイエムユー) 三菱電機 IoT製品 IoTライフソリューションプラットフォーム Linova(リノバ) 三菱電機のエアコン、キッチン家電や住宅設備などとスマートフォンをネットワークで繋ぎ、 これらの製品をより使い易く、使う人の生活をより快適にするためのスマートフォンアプリ。
©Mitsubishi Electric Corporation 9 MyMUと繋がる豊富なIoT製品、サービス 1 IHクッキングヒータ、クラウドHEMS対応住宅用分電盤を対象機器に新たに追加 12の機種群、2つのセンサー群、7つのサービス機能を実現! NEW NEW
©Mitsubishi Electric Corporation 10 2 家 電 プ ラ ッ
ト フ ォ ー ム の A P I 試 験
©Mitsubishi Electric Corporation 11 家電プラットフォームのアーキテクチャ 2 外部サービス連携 プロトコル変換器 IoTアダプター 共通Web
API アプリ開発 ライフサイクルソリューション 安心・見守り 最適環境(IEQ) ECHONET Lite機器(他社機器・センサー等) データ統合分析P/F KOTOLiA 当社製品 MyMU IT-OT連携P/F 修理・保守 販売・提案 課金・回収 統合IoT共通P/F Linova / MyMU データレイク データウェアハウス データマート グループ内外の ITシステムとの連携 協創による 新サービス創出 複合制御・ 自動化の実現 機能の高度化・ 知能化 IoT共通プラットフォームの開発 家電共通API API Gateway + Lambda + DynamoDBを基本とした サーバレスアーキテクチャを採用 API Gateway Lambda DynamoDB
©Mitsubishi Electric Corporation 12 アプリからの要望により、家電共通APIの改修・新規開発 家電プラットフォームの改修開発 2 • 開発内容 •
データ(DBテーブル)構造の変更 • APIレイテンシー改善 • オーバーフェッチ/アンダーフェッチ対応 • ページング対応 • バグ修正 : アプリが増えることで、家電共通APIへの要望が多くなる・・・ データ項目を追加し たから、取得できる ようによろしく! もっとAPIのレスポ ンスを早くして! 処理面倒だから、 必要なデータだけ 渡して! データ量多くなって Lambdaの応答制約に引っ かかるんだけど・・・ このAPIのHTTPス テータス、他と 違くない?
©Mitsubishi Electric Corporation 13 • 改修対象APIで想定外のAPI Request/Responseの変更がないか? • 増えていくアプリ側の影響をPF設計者だけが把握することは困難 •
現状のアプリのAPIの使い方で問題ないことを証明 • 大きくレイテンシーが変化することがないか? • 取得するデータが増えた→レイテンシーが大きく下がった ではNG! • 実は影響があったAPIがないか? • サイレントな修正が入っていないか? • APIの変更点確認の漏れがないか? 家電プラットフォームAPI改修時の懸念 2 リリースに際してAPIレイヤーでの影響確認が必須
©Mitsubishi Electric Corporation 14 • ①改修APIや新規APIの新規テスト項目の作成難易度 • 設計者/開発者がリソース不足の中作成している・・・ • API試験作成の難易度が下がることで、うまくリソース活用できる
• 情報系出身者だけでないので、Curlとは?から理解する必要がある・・・ • 異動者や新人は最初に試験担当にされがち • ②試験の属人性が高い • Ver.1.0.0を作った人が試験した残骸が残っているだけ・・・ • 開発者がいなくなると、APIリファレンスを元に初めから試験ケースを作る • 各Ver.の試験仕様書(Excel)と睨めっこして、新たな試験仕様書を作る・・・ • 試験理由をどこまで書くのかは個人差が大きい API試験での課題 2 Postmanを活用して、API試験を効率化!
©Mitsubishi Electric Corporation 15 • APIの改修&新規作成 • Query String, Request
bodyなどの改修内容を反映 • APIリファレンスと他APIを参考に新規作成 • システム試験項目 • ユースケースを再現するAPI手順やRequestなどを伝えるだけで、比較的簡単 に作成可 • Request bodyやTestは、試験項目に応じてひな形を作っておく • デフォルトは作っておき、試験条件により内容を変更する程度 ①新規テスト項目の作成の難易度 2 Postman GUIによりシステム試験などを他担当者へ委譲
©Mitsubishi Electric Corporation 16 Postmanのひな形 2 ゲストユーザー追加 ユーザー変更 API共通(ログ用)
©Mitsubishi Electric Corporation 17 • 試験用Collectionはユースケース単位でまとめ、Runnerで順番にAPI を起動することでシステム試験にも対応 • Feasibility Studyとして開発環境で都度Runnerを実施することで、影響確認な
どが容易にできる • CollectionをNewman化し、CI/CDプロセスに組み込み • API試験、システム試験をほぼ自動化 • CodePipelineへの組み込みを実施 ②属人性への対応 2 API試験ツールをPostmanで共通化し、試験用Collectionを共有 今後はワークスペースを活用して、 最新API Collectionの改修も共有できる予定
©Mitsubishi Electric Corporation 18 試験用Collectionの例 2 Ver.番号 Ver.番号 + 試験工程
環境破棄用API アプリ名 条件 ユースケースを再現するための環境準備 例:ユーザー登録、家電製品の登録など ユースケースごとの試験条件の登録 例:特定の家電製品の組合せなど 試 験 I D ユースケースごとの試験内容 例:試験ケースごと、バグチケットごと アプリで発覚したバグ内容は チケット番号と紐づけて試験ケースフォルダを作成
©Mitsubishi Electric Corporation 19 試験用Collectionによる試験自動化 2 試験環境 試験者 CodeCommit 試験Collection
試験Environment CodeBuild CodePipeline Fargate 試験レポート 作成&改修 Git Push 試験Collectionの実行 (API Request/Response) 試験結果の レポート登録 試験結果の閲覧(Webサイト) API Gateway Lambda DynamoDB 試験対象 試験OKならステージング環境へ 自動デプロイする仕組みも検討中 (ただし本番は社内稟議が必須)
©Mitsubishi Electric Corporation 20 3 今 後 の 展 望
©Mitsubishi Electric Corporation 21 • 当社家電APIのオープン&クローズ戦略 • ワークスペースを活用した限定公開/一般公開 • チーム内でのワークスペース/プライベートの活用
• PostmanでのMQTTやGraphQLの試験 • 現状ではREST APIのみだが、上記の使い方を習得中 • フローも併せて使ってみたい 今後の展望 3
None