Chapter 00
目次と学習の進め方
この編の狙い.
生成 AI にコーディングさせた組み込みシステムを、ソースを見ずに外側からテストする—— 電源・信号・バス・無線・デバッグポートから状態を読み、刺激を与え、堅牢性と守りを試し、 それを自動の仕組みに育てる。「外から観測できるものには、必ず内部の手がかりがある」を出発点に、 対象ごと(電力・デジタル・アナログ・BLE・Wi-Fi・SDR・USB…)の手順と道具を実務の順で並べる。
この編が生まれた背景
生成 AI がファームウェアを書く時代になった。動くコードはすぐ出るが、省電力の抜け・境界の取り違え・ 例外の未処理・認証の省略・長時間の劣化といった穴が残りやすい。しかもソースは AI が書き換え続ける。 だから「外から・繰り返し・自動で」品質を確かめる技術が要る。本編はそのための道具箱である。
前提
- C 言語と 16 進数・2 進数が読める。電圧・電流・周波数の基礎がある
- マイコンや IoT 機器を触った経験があると入りやすいが、各用語は初出で説明する
- Linux(または WSL)と Python が使えると、本編のコマンド(
bleak,pyvisa,sigrok-cli等)をそのまま試せる - テスト対象は自分(自社)の機器を前提とする。特に無線送信・セキュリティ試験には法規制がある(12 章・17 章)
ブラックボックスとは — この編の立場
ブラックボックステストとは、内部構造(ソース・回路の詳細)を知らない前提で、入力(刺激)と出力(観測)だけから機器の正しさを確かめる手法である。本編は外部観測を主役に据えるが、開発中に使えるグレーボックス(デバッグポート経由で内部を少し覗く、08 章)も、役割を分けて活用する。
章の構成
| 部 | 章 | 内容 |
|---|---|---|
| I. 土台 | 01 ブラックボックステストとは | 白箱との違い・オラクル問題・観測点 |
| 02 テスト設計の土台 | 刺激/観測/判定・再現性・テストダブル | |
| II. 配線で触れる観測 | 03 電源と消費電流から状態を読む | シャント・PPK2・波形で状態分類 |
| 04 デジタル信号の観測 | ロジアナ・オシロ・サンプリング・デコード | |
| 05 UART とシリアルコンソール | 線探し・ボーレート・フレーム | |
| 06 I²C と SPI | バス盗聴・偽センサの注入 | |
| 07 アナログ周辺とセンサ | DAC/ADC・PWM・境界と校正 | |
| 08 デバッグポート経由の観測 | SWD/JTAG・RTT/SWO・グレーボックス | |
| III. 無線を見る・つつく | 09 BLE ① 仕組みと状況把握 | GAP/GATT・アドバタイズ・スキャン |
| 10 BLE ② 能動テストとファジング | read/write/notify・境界と順序・切断耐性 | |
| 11 Wi-Fi とネットワーク | nmap・キャプチャ・プロキシ・API | |
| 12 サブGHz・独自無線と SDR | RTL-SDR・スペクトラム・変調解析・法規 | |
| 13 USB とその他有線 | 記述子・usbmon・Facedancer・CAN | |
| IV. 質を測る・追い込む | 14 タイミングとリアルタイム性 | レイテンシ・ジッタ・観測の擾乱 |
| 15 HIL(ハードウェア・イン・ザ・ループ) | 世界を模擬して自動テスト | |
| 16 ファジングと堅牢性・長時間試験 | 枯渇・電源環境ストレス・ソーク | |
| 17 セキュリティのブラックボックス | 攻撃面・秘密・認証・サイドチャネル | |
| V. 仕組みにする | 18 テスト自動化ハーネスを作る | 三層設計・pytest・計測器連携・CI |
| 19 自作ツール | 作る/買う・注入エージェント・解析 | |
| 20 テスト計画とケーススタディ | リスク×面・層・BLE 温度ロガー通し |
読み方の提案
- まず土台: 01 → 02 を読んでから、必要な対象の章へ
- 配線から状態を読みたい: 03 → 04 → 05 → 06(多くの機器で最初に効く)
- BLE 機器をテストしたい: 09 → 10 →(必要なら)17
- ネットワーク/無線が中心: 11 → 12 → 13
- 品質を数値で詰めたい: 14 → 16 →(自動化へ)18
- 仕組みを立ち上げたい: 18 → 19 → 15 → 20(CI と HIL)
- とにかく現場で困っている: 20 のケーススタディから近いものを逆引き
手を動かす仕掛け
各章の末尾には、その章の観測・注入・判定をブラウザ上で体験できる対話デモを置いた。 電流波形から状態を読む、UART のボーレートを割り出す、BLE アドバタイズをデコードする、 レイテンシのばらつきを見る——実機がなくても、考え方を指で確かめられる。
関連する編
- フラッシュ/ファームの中身そのものを解析する: バイナリ解析編
- 鍵・証明書・セキュア設計: PSA API 編、IoT セキュリティ編
- 基板・信号の物理: 基板アートワーク編