単純なコーディングミスからインタフェースミスマッチまで、IoTには多様なバグが生息している。

 IoTシステムの仕様に未確定の部分があったり、構造や機能が複雑になったりすると、バグは繁殖し、システムは虫だらけになる。その種類も多様で、昆虫図鑑が作れるほどだ。

 IoTシステムでは、企画の意図がしばしば要求分析に伝わらず、重要な要求が設計では無視され、設計の意図はプログラミングで実装されない。これらがすべてバグを生み出す卵となる。ああ、IoTの仕様のなんとうつろいやすいことか!

 こうしたバグを見つけるために不可欠なのが、IoTのテストである。テストで多くのバグを見つけるほど、IoTの品質は向上する。今は動いているIoTでも、ある日、突然バグで動かなくなることもある。テストでバグをあらかじめ取り除いておけば、「動かないIoT」という未来からシステムを救うことができる。

IoTのバグはテストで駆除する
[画像のクリックで拡大表示]

 ただしIoTのテストは、一般的なシステムのテストよりもはるかに複雑で、難しい。

 IoTシステムはデバイスからサーバーまで全てが並行で動作する。同じ時刻に多数のイベントが発生する。IoTシステムは様々な要因が絡み合う、非線形で挙動不審で予測不可能な一種の複雑系である。

 IoTからバグを駆除するためのテストは、並行動作する複雑系のIoTを相手にしなければならない。従来のシーケンシャルな線形世界を相手にするテストはもはや通じない。

 今回はIoTシステムのテストについて、一般的なエンタープライズ系や組込み系のシステムとの違いを中心に見ていくことにする。

この先は会員の登録が必要です。有料会員(月額プラン)は申し込み初月無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら