KUMICO

COLUMN

組込み機器開発におけるテスターの重要性

組込み機器開発に限らず、システムを作るのはプログラマーなんてイメージを持っている方も多いと思います。しかし、開発においては、テスターという重要な役割を担う人もかかせません。本コラムでは、組込み開発だからこそさらにその価値を増す、テスターの重要性について説明します。

おさらい:組込み機器開発の流れ

テスターの話に入る前に、まずはこの開発工程に関して説明します。(※既に開発工程を理解している方は次の章に進んでいただければ幸いです。)

多くの組込み機器開発においては、要件定義、システム設計、実装、単体テスト、システムテストと呼ばれる5つの工程があります。本コラムではわかりやすいように「カレーを自動で作るシステム」を例に各工程を説明します。

(1)要件定義:
まず初めにシステムの機能を決めます。ここでは、システムに野菜・肉・スパイスを入れて、スイッチをONすると、カレーが出来上がるシステムと定義します。
(2)システム設計:
要件定義で決めた動きを実現するために、個々のシステムの役割分担を決めるます。カレーを作るには、野菜・肉を切るシステム、切ったものを炒めるシステム、炒めたものを煮込むシステム、煮込んだものにスパイスを入れて味付けするシステム。とこんなシステムが必要になります。(皮をむく等々、細かいことは他にも色々ありますが、ここではわかり易さ重視で割愛します)
(3)実装:
個々のシステムごとに、システム設計で決めた動きを、実際にプログラム言語で記述する工程です。野菜・肉を切るプログラム、切ったものを受け取り炒めるプログラム、炒めたものを煮込むプログラムといったように、システムごとにプログラムを作ります。
(4)単体テスト:
システム設計で決めた役割通りにプログラムが動くか確認する工程です。野菜・肉を切るプログラムでは、ちゃんと切ることが出来るかを確認します。切ったものを炒めるプログラムでは、切った状態の野菜・肉を準備し、ちゃんと炒められるかを確認します。個々のシステム単位で自分の役割を確認します。
(5)システムテスト:
最後はシステム同士が連携し要件定義通りに動くのかを確認する工程になります。切るシステム、炒めるシステム、煮込むシステム、味付けするシステムをつなぎ合わせ、野菜・肉・スパイスをセットしてスイッチONしたらにカレーができるのかを確認するのです。
このように組込み機器は、要件定義からシステムテストまでの工程を実施し作り上げられるのです。

テスターは要件定義とシステムテストを行うスペシャリスト

テスターはその名の通り、組込み機器やシステムが想定通りの動きをするかをテストする人の事を言います。プログラマはモノを作るという設計や実装といった工程が主となることが多いです、テスターはモノを開発する詳細の工程には関わらず、機器やシステムの機能がどう動くべきかを決定しているシステム要件と、その通りに動くのかをテストする工程を担当します。詳細の工程に関わらないからこそ、テスターは欠かすことのできない要員なのです。テスターというのは、本人は気付いていない特殊な視点と思考法を高度に活用する能力を持っています。次の章ではテスターの持つ特殊な視点と能力に関してお話します。

テスターの持つ特殊な視点と能力

開発につきものの言葉として、”エラー”、”障害”、”BUG”、”問題”、”フォルト”なんて単語があります。これらは似たような形で使われますが、総じて在ってはならないものとして認識されており、開発者はこれらがゼロになるように必死に汗水をたらして開発を行うのです。(本コラムでは総称してエラーと呼びます)

テスターは、これらエラーを見つけてきます。特に今まで誰も気づかなかったエラーを見つけてきては、腹立たしいくらい、証拠とともに指摘します。何で、そんなテストを実施するの?と思うことも多くありません。そこにはテスターの想像を遥かに超えた想像力があるからなのです。

想像をはるかに超えた想像力がどこから来ているのか?そこには、テスターが全ての成果物に対する認識や知識に囚われず、そもそもどうあるべきかを考えてテストしているからこそなのだと私は思います。哲学でいうところの「認識論」です。テスターは無意識にこの認識論を実践することで、今まで誰も発見することのできなかったエラーを見逃さないのです。 (※認識論について説明すると主題を外れてしまうのでここでは割愛します)

認識論を上手に適用していることはテスターの以下のような行動パターンを見るとわかってきます。

行動パターン1:何パターンものテスト結果を集め、総じて分析し、品質を評価する。
行動パターン2:分析する際の根拠や経過を、適切、そして妥当な推論を立てている。
行動パターン3:様々な論理や手法を使い、いろんな観点から分析している。
行動パターン4:どのような評価結果であっても、それなりの見解をもっている。
行動パターン5:批判的にも近い考え方と肯定的な考え方による結果の違いを知っている。
行動パターン6:「あと少しで終わります」といった言葉の曖昧さを理解している。
行動パターン7:あるべき、正しい判断ができる。

これらの行動から、テスターは考え方を「批判的」にも「肯定的」にも器用に切り替えて考え、考え抜かれた論拠で品質を評価していることがわかります。テスターは認識論を応用することで想像を遥かに超えた想像力で今まで誰も発見することのできなかったエラーを見逃さないのです。

組込み機器開発だからこそ優秀なテスターが必要なのです

IoTの時代が到来し、様々な機器がネットワークにつながるようになって来ています。最近の携帯電話などは、購入後電源ONと同時に、ソフトェアのバージョンアップが始まったりすることも多くなりました。しかしながら組み込み機器開発では、一度市場に出してしまったら後から解決できない問題も多々あります。もしそのようなエラーを含んだ機器を市場に出してしまったら、たちまち「事故」が起こり、リコールなど多くの時間と費用を要することになってしまうのです。市場リリース後に改修が難しい組込み機器だからこそ、優秀なテスターの存在は重要となります。 私の経験上、優秀なテスターは多少はひねくれ者が多いような気がします。しかし、プログラマーと同様に良い商品を世に送り出したいという思いは同じなのです。優秀なテスターを育成することが、より良い組み込み機器開発には重要なのです。

個別相談も承っております。下記よりお申し込みください。

個別相談会申し込み

関連記事

OTHER COLUMN

MORE  

まこちゃんブログ

NEWS

MORE  

PARTNER

  • Intel
  • Xilinx

お探しの組み込み製品はキーワードで検索!