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

Transcript

  1. ©Mitsubishi Electric Corporation
    2 0 2 4 / 1 / 2 5
    IoT・ライフソリューション新事業推進センター
    小川 雄喜
    Po s t m a n を 活 用 し た
    家 電 ア プ リ プ ラ ッ ト フ ォ ー ム A P I の
    試 験 効 率 化

    View full-size slide

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

    View full-size slide

  3. ©Mitsubishi Electric Corporation
    3
    • 三菱電機の家電アプリプラットフォームの概要
    • 家電アプリプラットフォームのAPI試験
    • 今後の展望
    アジェンダ
    0

    View full-size slide

  4. ©Mitsubishi Electric Corporation
    4
    1
    三 菱 電 機 の
    家 電 プ ラ ッ ト フ ォ ー ム の 概 要

    View full-size slide

  5. ©Mitsubishi Electric Corporation
    5
    三菱電機グループの事業と組織
    1
    空調・冷熱機器
    ・システム
    住宅設備機器
    ・システム
    家電機器
    ○IoT・ライフソリューション
    新事業推進センターの業務
    リビング・デジタルメディア事業本部の
    ソリューション・サービスにおいて以下を担当
    (20年4月発足)
    ・事業企画
    ・プラットフォーム開発・運営
    ・新事業インキュベーション推進 IoT・ライフソリューション新事業推進センター

    View full-size slide

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

    View full-size slide

  7. ©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共通プラットフォームの開発

    View full-size slide

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

    View full-size slide

  9. ©Mitsubishi Electric Corporation
    9
    MyMUと繋がる豊富なIoT製品、サービス
    1
    IHクッキングヒータ、クラウドHEMS対応住宅用分電盤を対象機器に新たに追加
    12の機種群、2つのセンサー群、7つのサービス機能を実現!
    NEW
    NEW

    View full-size slide

  10. ©Mitsubishi Electric Corporation
    10
    2
    家 電 プ ラ ッ ト フ ォ ー ム の
    A P I 試 験

    View full-size slide

  11. ©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

    View full-size slide

  12. ©Mitsubishi Electric Corporation
    12
    アプリからの要望により、家電共通APIの改修・新規開発
    家電プラットフォームの改修開発
    2
    • 開発内容
    • データ(DBテーブル)構造の変更
    • APIレイテンシー改善
    • オーバーフェッチ/アンダーフェッチ対応
    • ページング対応
    • バグ修正

    アプリが増えることで、家電共通APIへの要望が多くなる・・・
    データ項目を追加し
    たから、取得できる
    ようによろしく! もっとAPIのレスポ
    ンスを早くして!
    処理面倒だから、
    必要なデータだけ
    渡して!
    データ量多くなって
    Lambdaの応答制約に引っ
    かかるんだけど・・・
    このAPIのHTTPス
    テータス、他と
    違くない?

    View full-size slide

  13. ©Mitsubishi Electric Corporation
    13
    • 改修対象APIで想定外のAPI Request/Responseの変更がないか?
    • 増えていくアプリ側の影響をPF設計者だけが把握することは困難
    • 現状のアプリのAPIの使い方で問題ないことを証明
    • 大きくレイテンシーが変化することがないか?
    • 取得するデータが増えた→レイテンシーが大きく下がった ではNG!
    • 実は影響があったAPIがないか?
    • サイレントな修正が入っていないか?
    • APIの変更点確認の漏れがないか?
    家電プラットフォームAPI改修時の懸念
    2
    リリースに際してAPIレイヤーでの影響確認が必須

    View full-size slide

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

    View full-size slide

  15. ©Mitsubishi Electric Corporation
    15
    • APIの改修&新規作成
    • Query String, Request bodyなどの改修内容を反映
    • APIリファレンスと他APIを参考に新規作成
    • システム試験項目
    • ユースケースを再現するAPI手順やRequestなどを伝えるだけで、比較的簡単
    に作成可
    • Request bodyやTestは、試験項目に応じてひな形を作っておく
    • デフォルトは作っておき、試験条件により内容を変更する程度
    ①新規テスト項目の作成の難易度
    2
    Postman GUIによりシステム試験などを他担当者へ委譲

    View full-size slide

  16. ©Mitsubishi Electric Corporation
    16
    Postmanのひな形
    2
    ゲストユーザー追加
    ユーザー変更
    API共通(ログ用)

    View full-size slide

  17. ©Mitsubishi Electric Corporation
    17
    • 試験用Collectionはユースケース単位でまとめ、Runnerで順番にAPI
    を起動することでシステム試験にも対応
    • Feasibility Studyとして開発環境で都度Runnerを実施することで、影響確認な
    どが容易にできる
    • CollectionをNewman化し、CI/CDプロセスに組み込み
    • API試験、システム試験をほぼ自動化
    • CodePipelineへの組み込みを実施
    ②属人性への対応
    2
    API試験ツールをPostmanで共通化し、試験用Collectionを共有
    今後はワークスペースを活用して、
    最新API Collectionの改修も共有できる予定

    View full-size slide

  18. ©Mitsubishi Electric Corporation
    18
    試験用Collectionの例
    2
    Ver.番号
    Ver.番号 + 試験工程
    環境破棄用API
    アプリ名
    条件
    ユースケースを再現するための環境準備
    例:ユーザー登録、家電製品の登録など
    ユースケースごとの試験条件の登録
    例:特定の家電製品の組合せなど


    I
    D
    ユースケースごとの試験内容
    例:試験ケースごと、バグチケットごと
    アプリで発覚したバグ内容は
    チケット番号と紐づけて試験ケースフォルダを作成

    View full-size slide

  19. ©Mitsubishi Electric Corporation
    19
    試験用Collectionによる試験自動化
    2
    試験環境
    試験者
    CodeCommit
    試験Collection
    試験Environment
    CodeBuild
    CodePipeline
    Fargate
    試験レポート
    作成&改修
    Git Push
    試験Collectionの実行
    (API Request/Response)
    試験結果の
    レポート登録
    試験結果の閲覧(Webサイト)
    API Gateway Lambda
    DynamoDB
    試験対象
    試験OKならステージング環境へ
    自動デプロイする仕組みも検討中
    (ただし本番は社内稟議が必須)

    View full-size slide

  20. ©Mitsubishi Electric Corporation
    20
    3 今 後 の 展 望

    View full-size slide

  21. ©Mitsubishi Electric Corporation
    21
    • 当社家電APIのオープン&クローズ戦略
    • ワークスペースを活用した限定公開/一般公開
    • チーム内でのワークスペース/プライベートの活用
    • PostmanでのMQTTやGraphQLの試験
    • 現状ではREST APIのみだが、上記の使い方を習得中
    • フローも併せて使ってみたい
    今後の展望
    3

    View full-size slide