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
430
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
450
Bedrock Claude3を使って市場対応をDX化を検討してみた
yukiogawa
2
1.2k
Other Decks in Programming
See All in Programming
テストケースの名前はどうつけるべきか?
orgachem
PRO
0
150
nekko cloudにおけるProxmox VE利用事例
irumaru
3
450
PHPUnitしか使ってこなかった 一般PHPerがPestに乗り換えた実録
mashirou1234
0
330
[JAWS-UG横浜 #76] イケてるアップデートを宇宙いち早く紹介するよ!
maroon1st
0
510
PSR-15 はあなたのための ものではない? - phpcon2024
myamagishi
0
180
php-conference-japan-2024
tasuku43
0
350
ブラウザ単体でmp4書き出すまで - muddy-web - 2024-12
yue4u
3
490
Stackless и stackful? Корутины и асинхронность в Go
lamodatech
0
930
StarlingMonkeyを触ってみた話 - 2024冬
syumai
3
280
Cloudflare MCP ServerでClaude Desktop からWeb APIを構築
kutakutat
1
570
KubeCon + CloudNativeCon NA 2024 Overviewat Kubernetes Meetup Tokyo #68 / amsy810_k8sjp68
masayaaoyama
0
260
Webエンジニア主体のモバイルチームの 生産性を高く保つためにやったこと
igreenwood
0
340
Featured
See All Featured
Being A Developer After 40
akosma
87
590k
Facilitating Awesome Meetings
lara
50
6.1k
Testing 201, or: Great Expectations
jmmastey
41
7.1k
Music & Morning Musume
bryan
46
6.2k
The Language of Interfaces
destraynor
154
24k
Documentation Writing (for coders)
carmenintech
66
4.5k
Done Done
chrislema
182
16k
Scaling GitHub
holman
459
140k
Writing Fast Ruby
sferik
628
61k
GitHub's CSS Performance
jonrohan
1031
460k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.9k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5k
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