ソフトウェアの品質を学びまくる

ソフトウェアの品質、ソフトウェアテストなどについて学んだことを記録するブログです。

「モノのインターネット: 解き放たれたQA」 #IoTテストアドカレ(4)

はじめに

 この記事は、IoTのテストに関するネットの記事を読んでいく、「IoTテスト アドベントカレンダー」の4日目です。3日目はコチラ。

kzsuzuki.hatenablog.com

プロファイル

タイトル: 『The Internet of Things: QA Unleashed』
著者: Cognizant
参照サイト: Cognizant [pdf]

ポイント

 IoTを構成する要素は、センサーと組み込みソフトウェアを内蔵した「モノ」、モノが外部とやりとりをするための「通信」、各コンピュータによる「計算処理」の3つからなる。 IoTのテストにおいては、デバイスやセンサー単体でなく、技術的な複雑さを総合的に考える必要がある。

QAマネージャーが直面するであろう課題

  1. ハードウェアのQAとソフトウェアのQAの融合
     数百万のセンサー、多様なデバイス、知的なソフトウェアが共存するIoTでは、特定の環境でソフトウェアに限定した機能バリデーションだけでは不足。

  2. 動いているシステムだけでは不十分*1
     デバイスやソフトウェアさえそろっていればテストができるわけではない。複雑でリアルタイム性のあるシナリオ作りが大きな課題となる。

  3. 膨大な数のセンサーの相互作用
     妥当性確認を行うためのテスト環境構築自体に、卓越した知識が求められる。

IoTのテストの2つのレイヤー

  1. バイス相互作用レイヤー
    ハードウェアとソフトウェアがやり取りするレイヤー。機能テストに加えて、以下が必要になる。

    • 規格への準拠: ハードウェアベンダーによるテストだけでは不十分
    • 互換性: 多彩なデバイスをサポートする必要がある
    • セキュリティ: セキュリティとプライバシーは重大な課題
  2. ユーザ相互作用レイヤー
    「モノ」とユーザーが接するレイヤー。ユーザが途切れなくエクスペリエンスを得るために、以下が必要になる。

    • ネットワークの性能とデバイスのレベルのテスト: ネットワークの接続性や、デバイス側のバッテリーの状況など
    • ユーザビリティ・UX
    • IoTサービスとバックエンドの環境: システムの裏にある分析エンジンなどを含めた統合的なテスト

QA部門に必要となるフレームワークとソリューションの構築

  • プロトコルシミュレーター: IoTにおける多様なプロトコルを扱うのに便利
  • 膨大なデータのレコーダー: あるデバイスからのデータを、他のデバイスに対して流すことで互換性確認の助けに
  • 仮想化: IoTアプリケーションを動かすための仮想環境

QA部門がフォーカスすべきこと

  • 人々が能力を結集できるようにする
  • 統合テストを行うために協働するQAチームを作る
  • ツール開発の機会を探る
  • シミュレーションを行うためのラボを作る
  • 「ユーザとしてのテスト」というマインドを醸成する

所感

 他の記事では、デバイス側かユーザ側かのどちらかに話が寄っていることが多かったのですが、この記事では両方を扱っています。この2つでは、見る観点も必要な専門性も、違う点がかなりあると思います。また、分けるといっても最終的には統合的にテストすることが必要になるはずで、両者のQAがどう連携・情報共有していくかもカギになってきそうです。
 また、テスト特有の観点として、ユースケースの検討が出てきました。機能テストだけでも際限なくありそうなのに、それを使う場面をどのように洗い出していけばいいのか。これも大きな課題です。環境の準備の困難さも繰り返し語れれています。仮想化とシミュレーションがその助けになります。

 5日目はコチラです。(12月5日の0時に公開されます)

kzsuzuki.hatenablog.com

*1:ちょっと解釈に自信がありません。