Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Postmanを活用した家電アプリプラットフォームAPIの試験効率化

YukiOgawa
January 26, 2024

 Postmanを活用した家電アプリプラットフォームAPIの試験効率化

三菱電機の家電アプリを支えるプラットフォームの開発におけるPostmanを活用した試験効率化の施策について発表します。

YukiOgawa

January 26, 2024
Tweet

More Decks by YukiOgawa

Other Decks in Programming

Transcript

  1. ©Mitsubishi Electric Corporation 2 0 2 4 / 1 /

    2 5 IoT・ライフソリューション新事業推進センター 小川 雄喜 Po s t m a n を 活 用 し た 家 電 ア プ リ プ ラ ッ ト フ ォ ー ム A P I の 試 験 効 率 化
  2. ©Mitsubishi Electric Corporation 2 • 小川 雄喜(おがわ ゆうき) • 横浜市育ち(30年以上)、京都在住(3年)

    • 三菱電機(株) • IoT・ライフソリューション新事業推進センター 所属 • 主にB2C製品向けプラットフォーム/アプリ開発に従事 • 社内海外OJT制度で1年間北米(アトランタ)に滞在 • Postmanとの関係 • 海外OJT中に現地でAPI試験で使用したのがきっかけ • 現在はプラットフォーム/アプリ開発で使用中 自己紹介 0 @_YukiOgawa
  3. ©Mitsubishi Electric Corporation 4 1 三 菱 電 機 の

    家 電 プ ラ ッ ト フ ォ ー ム の 概 要
  4. ©Mitsubishi Electric Corporation 5 三菱電機グループの事業と組織 1 空調・冷熱機器 ・システム 住宅設備機器 ・システム

    家電機器 ◦IoT・ライフソリューション 新事業推進センターの業務 リビング・デジタルメディア事業本部の ソリューション・サービスにおいて以下を担当 (20年4月発足) ・事業企画 ・プラットフォーム開発・運営 ・新事業インキュベーション推進 IoT・ライフソリューション新事業推進センター
  5. ©Mitsubishi Electric Corporation 6 三菱電機 IoTライフソリューションコンセプト 1 ・エネルギーの見える化アプリ ミエネル ・条件設定に基づく自動制御

    (あったかリンク、スマートe-Flo) ・霧ヶ峰REMOTE・おやすみサポート ・あったかリンク ・故障予知・診断 ・高齢者みまもり MeAMOR ・レシピサイト連携・冷蔵庫つながるアプリ ・IHクッキングヒーターアプリ 他社 ECHONET Lite 対応製品 オープン化 循環型デジタルエンジニアリング企業を目指し ・お客様から得られたデータをデジタル空間に集約、分析 → 新たな価値の創出 → 社会課題の解決に貢献 → 働きやすく暮らしやすい「しあわせな社会」を実現 三菱電機 家電統合アプリ MyMU(マイエムユー) 三菱電機 IoT製品 IoTライフソリューション プラットフォーム Linova(リノバ) MyMUデータ キャンペーンコード 利用履歴 IoT機器データ 省エネ 快適 自動化 遠隔保守 みまもり スマートe-Flo 情報発信 外部サービス データ統合分析基盤 KOTOLiA データ活用 新たな価値 課題解決 データ収集 アプリ、製品に搭載
  6. ©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共通プラットフォームの開発
  7. ©Mitsubishi Electric Corporation 8 MyMUとは? 1 MyMUアプリ = My Mitsubishi

    Unified Application • Linova(リノバ)に接続された IoT機器の操作を1つのアプリに統合 • 複数機器の連携操作でより便利に • 外部サービスとの連携機能も提供 三菱電機家電統合アプリ MyMU(マイエムユー) 三菱電機 IoT製品 IoTライフソリューションプラットフォーム Linova(リノバ) 三菱電機のエアコン、キッチン家電や住宅設備などとスマートフォンをネットワークで繋ぎ、 これらの製品をより使い易く、使う人の生活をより快適にするためのスマートフォンアプリ。
  8. ©Mitsubishi Electric Corporation 10 2 家 電 プ ラ ッ

    ト フ ォ ー ム の A P I 試 験
  9. ©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
  10. ©Mitsubishi Electric Corporation 12 アプリからの要望により、家電共通APIの改修・新規開発 家電プラットフォームの改修開発 2 • 開発内容 •

    データ(DBテーブル)構造の変更 • APIレイテンシー改善 • オーバーフェッチ/アンダーフェッチ対応 • ページング対応 • バグ修正 : アプリが増えることで、家電共通APIへの要望が多くなる・・・ データ項目を追加し たから、取得できる ようによろしく! もっとAPIのレスポ ンスを早くして! 処理面倒だから、 必要なデータだけ 渡して! データ量多くなって Lambdaの応答制約に引っ かかるんだけど・・・ このAPIのHTTPス テータス、他と 違くない?
  11. ©Mitsubishi Electric Corporation 13 • 改修対象APIで想定外のAPI Request/Responseの変更がないか? • 増えていくアプリ側の影響をPF設計者だけが把握することは困難 •

    現状のアプリのAPIの使い方で問題ないことを証明 • 大きくレイテンシーが変化することがないか? • 取得するデータが増えた→レイテンシーが大きく下がった ではNG! • 実は影響があったAPIがないか? • サイレントな修正が入っていないか? • APIの変更点確認の漏れがないか? 家電プラットフォームAPI改修時の懸念 2 リリースに際してAPIレイヤーでの影響確認が必須
  12. ©Mitsubishi Electric Corporation 14 • ①改修APIや新規APIの新規テスト項目の作成難易度 • 設計者/開発者がリソース不足の中作成している・・・ • API試験作成の難易度が下がることで、うまくリソース活用できる

    • 情報系出身者だけでないので、Curlとは?から理解する必要がある・・・ • 異動者や新人は最初に試験担当にされがち • ②試験の属人性が高い • Ver.1.0.0を作った人が試験した残骸が残っているだけ・・・ • 開発者がいなくなると、APIリファレンスを元に初めから試験ケースを作る • 各Ver.の試験仕様書(Excel)と睨めっこして、新たな試験仕様書を作る・・・ • 試験理由をどこまで書くのかは個人差が大きい API試験での課題 2 Postmanを活用して、API試験を効率化!
  13. ©Mitsubishi Electric Corporation 15 • APIの改修&新規作成 • Query String, Request

    bodyなどの改修内容を反映 • APIリファレンスと他APIを参考に新規作成 • システム試験項目 • ユースケースを再現するAPI手順やRequestなどを伝えるだけで、比較的簡単 に作成可 • Request bodyやTestは、試験項目に応じてひな形を作っておく • デフォルトは作っておき、試験条件により内容を変更する程度 ①新規テスト項目の作成の難易度 2 Postman GUIによりシステム試験などを他担当者へ委譲
  14. ©Mitsubishi Electric Corporation 17 • 試験用Collectionはユースケース単位でまとめ、Runnerで順番にAPI を起動することでシステム試験にも対応 • Feasibility Studyとして開発環境で都度Runnerを実施することで、影響確認な

    どが容易にできる • CollectionをNewman化し、CI/CDプロセスに組み込み • API試験、システム試験をほぼ自動化 • CodePipelineへの組み込みを実施 ②属人性への対応 2 API試験ツールをPostmanで共通化し、試験用Collectionを共有 今後はワークスペースを活用して、 最新API Collectionの改修も共有できる予定
  15. ©Mitsubishi Electric Corporation 18 試験用Collectionの例 2 Ver.番号 Ver.番号 + 試験工程

    環境破棄用API アプリ名 条件 ユースケースを再現するための環境準備 例:ユーザー登録、家電製品の登録など ユースケースごとの試験条件の登録 例:特定の家電製品の組合せなど 試 験 I D ユースケースごとの試験内容 例:試験ケースごと、バグチケットごと アプリで発覚したバグ内容は チケット番号と紐づけて試験ケースフォルダを作成
  16. ©Mitsubishi Electric Corporation 19 試験用Collectionによる試験自動化 2 試験環境 試験者 CodeCommit 試験Collection

    試験Environment CodeBuild CodePipeline Fargate 試験レポート 作成&改修 Git Push 試験Collectionの実行 (API Request/Response) 試験結果の レポート登録 試験結果の閲覧(Webサイト) API Gateway Lambda DynamoDB 試験対象 試験OKならステージング環境へ 自動デプロイする仕組みも検討中 (ただし本番は社内稟議が必須)
  17. ©Mitsubishi Electric Corporation 21 • 当社家電APIのオープン&クローズ戦略 • ワークスペースを活用した限定公開/一般公開 • チーム内でのワークスペース/プライベートの活用

    • PostmanでのMQTTやGraphQLの試験 • 現状ではREST APIのみだが、上記の使い方を習得中 • フローも併せて使ってみたい 今後の展望 3