Embedded Test 02 · テスト設計の土台 — 刺激・観測・判定と、機材の選び方

Chapter 02

テスト設計の土台 — 刺激・観測・判定と、機材の選び方

この章のゴール.

1 つのブラックボックステストを「刺激 → 観測 → 判定」の 3 段で設計でき、 テストダブル(模擬相手)・自動化・機材の選び方の全体像を持つこと。

この章で使う既出の用語(定義は各リンク先). USB(01 章 2 節)、アナログ(01 章 2 節)、オラクル(01 章 8 節)、ブラックボックステスト(01 章 1 節)、仕様書(01 章 3 節)

1. テストの最小単位 — 刺激・観測・判定

どんなブラックボックステストも、この 3 つに分解できる。

段やること例
刺激(stimulus)対象に入力を与えるボタンを押す、BLE で書き込む、センサ値を注入する、電源を入れる
観測(observation)外に現れる反応を測るLED、UART ログ、消費電流、無線パケット、応答時間
判定(assertion)オラクル(01 章)と照合して合否を出す「100 ms 以内に LED が点いたか」

「刺激なしの観測」はモニタリング(ただ眺める)であり、テストではない。 テストは必ず「こう入れたら、こうなるはず」という形を持つ。生成 AI が書いた機能を検証するときは、仕様の 1 文を 1 テストに落とすのが基本である。

テストは必ず「刺激 → 観測 → 判定」の形を持つ① 刺激決まった入力を与える② 観測応答を生データで取る③ 判定期待と照らして合否「刺激なしの観測」はモニタリング。テストは「こう入れたら、こうなるはず」を含む
図2-1 仕様の 1 文を、この 3 段 1 テストに落とす。

AI 生成コードで特に効くテストの型.

2. テストダブル — 相手を模擬する

組み込み機器は「相手」があって動く。センサ、通信先、クラウド、ユーザー。 本物の相手を毎回用意するのは大変で、しかも本物は都合の悪い入力(壊れたデータ、極端な値)を出してくれない。そこで相手を模擬する(テストダブル、test double)。

模擬する相手実現
センサ / 周辺 ICI²C/SPI で偽の応答を返すマイコン(06 章・19 章)、アナログ値を DAC で注入(07 章)
通信相手(BLE セントラル、Wi-Fi AP、サーバ)PC + ドングルで役を演じる(09 章〜12 章)
ユーザー操作リレー・トランジスタでボタンを電気的に押す(15 章)
電源プログラマブル電源で電圧を可変・瞬断(03 章・16 章)
時間・環境温度チャンバ、振動、光——または対応する信号を注入

模擬相手は「意地悪ができる」ことが本物より優れている点である。本物のセンサは正しい値しか出さないが、模擬なら NaN・範囲外・応答なしを自在に作れる。

テストダブル——本物の代わりに置く「意地悪できる」模擬本物のセンサ正しい値しか出せない模擬(フェイク)NaN・範囲外・応答なし・フリーズを自在に作れる = 異常系を試せるテスト対象(MCU)異常値をどう扱うか?クリップ/無視/クラッシュ正常系異常系
図2-2 模擬相手は本物より「意地悪」ができる点で優れる。

3. ハーネスと自動化

1 回のテストを手で行うのは学習には良いが、回帰(毎回同じテストを繰り返して劣化を検出)には自動化が要る。 テスト対象を取り囲む刺激・観測・判定の仕掛け一式をテストハーネス(test harness)と呼ぶ。

本編は 18 章〜19 章で、この自作に踏み込む。

4. 機材の全体像 — 何を揃えるか

観測点ごとに道具が違う。全部を最初に買う必要はなく、対象に応じて足す。

分類道具用途章
見る(デジタル)ロジックアナライザ(Saleae、fx2lafw + sigrok)バス・GPIO の観測とプロトコルデコード04〜06
見る(アナログ)オシロスコープ波形、タイミング、電源リプル04・07
測る(電源)プログラマブル電源、電流計、パワーアナライザ(Otii、ppk2)消費電流プロファイル03
話す(シリアル)USB-シリアル変換、USB-I²C/SPI アダプタ(FT2232、Bus Pirate)UART/I²C/SPI の送受信05〜06
無線を見るBLE ドングル + bluetoothctl/bleak、Wi-Fi モニタ、SDR(RTL-SDR、HackRF)無線の観測と能動09〜12
注入・刺激マイコン(自作治具)、DAC、リレー、信号発生器模擬相手・刺激07・15
中を覗く(半BB)デバッグプローブ(J-Link、CMSIS-DAP)、OpenOCD/pyOCDレジスタ・メモリ08
司令塔PC + Python、pyvisa、sigrok、pytest自動化18〜19
道具は役割で 4 系統——本編を通して使い分ける刺激系(入れる)偽センサ・信号発生器・DAC・プログラマブル電源・自作注入器観測系(測る)電流計(PPK2)・ロジアナ・オシロ・sniffer・プロトコルアナライザ半ブラックボックスデバッグプローブ(J-Link/CMSIS-DAP)OpenOCD・pyOCD(8 章)司令塔(束ねる)PC + Python・pyvisa・sigrok・pytest(18〜19 章)
図2-3 刺激・観測・半BB・司令塔の 4 系統。

「まず 1 万円のロジックアナライザと USB-シリアル」から.

安価なロジックアナライザ(fx2lafw 互換)+ sigrok/PulseView と、USB-シリアル変換があれば、 UART・I²C・SPI・GPIO の大半が観測できる。無線は BLE なら数百円のドングル + bleak、 電波の広い観測は RTL-SDR(数千円)から。高い機材より、観測点を正しく選ぶことが先である。

5. グラウンドとレベル — 壊さないための基本

観測点にプローブを当てる前に、毎回確認する。

6. 手を動かす

テストを 3 段に分解する


この章のポイント