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
450
Postmanを活用した家電アプリプラットフォームAPIの試験効率化
三菱電機の家電アプリを支えるプラットフォームの開発におけるPostmanを活用した試験効率化の施策について発表します。
YukiOgawa
January 26, 2024
Tweet
Share
More Decks by YukiOgawa
See All by YukiOgawa
アジャイル開発導入の取り組み事例 HW文化が色濃く残る組織へのアジャイル導入
yukiogawa
0
15
部門横断チームによる生成AI導入の壁突破事例ご紹介
yukiogawa
1
20
AWSコミュニティビルダーになりたいんじゃ!
yukiogawa
2
170
生成AIによる業務利活用アプリを、部門横断チームが3日でPoCを作ってみた!
yukiogawa
1
390
初学者向けにサーバーレスアーキテクチャを体験できるハンズオンを考えてみた
yukiogawa
0
450
Bedrock Claude3を使って市場対応をDX化を検討してみた
yukiogawa
2
1.2k
Other Decks in Programming
See All in Programming
iOS開発におけるCopilot For XcodeとCode Completion / copilot for xcode
fuyan777
1
1.1k
KubeCon NA 2024の全DB関連セッションを紹介
nnaka2992
0
110
Compose UIテストを使った統合テスト
hiroaki404
0
120
Androidアプリの One Experience リリース
nein37
0
500
技術的負債と向き合うカイゼン活動を1年続けて分かった "持続可能" なプロダクト開発
yuichiro_serita
0
240
なまけものオバケたち -PHP 8.4 に入った新機能の紹介-
tanakahisateru
1
140
Beyond ORM
77web
11
1.5k
コンテナをたくさん詰め込んだシステムとランタイムの変化
makihiro
1
170
menu基盤チームによるGoogle Cloudの活用事例~Application Integration, Cloud Tasks編~
yoshifumi_ishikura
0
130
선언형 UI에서의 상태관리
l2hyunwoo
0
250
各クラウドサービスにおける.NETの対応と見解
ymd65536
0
230
テストケースの名前はどうつけるべきか?
orgachem
PRO
1
180
Featured
See All Featured
Writing Fast Ruby
sferik
628
61k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
2k
Done Done
chrislema
182
16k
Reflections from 52 weeks, 52 projects
jeffersonlam
348
20k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
1
150
jQuery: Nuts, Bolts and Bling
dougneiner
62
7.6k
Build The Right Thing And Hit Your Dates
maggiecrowley
33
2.5k
The Invisible Side of Design
smashingmag
299
50k
Scaling GitHub
holman
459
140k
How to Think Like a Performance Engineer
csswizardry
22
1.3k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
365
25k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
6.9k
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