Open10
組込みソフトウェアでTDDが効果を発揮しそうなシーン
組込みソフトウェアでTDDを適用するメリット
- 再現性の低いハードウェア異常・外部装置の異常を容易に再現することが可能
TDDが効果を発揮しそうなシーン
マイコン依存
アーキテクチャ
エンディアン
int型サイズ
スタックサイズ
ヒープサイズ
標準ライブラリの挙動
ホストの標準ライブラリと違う挙動があるかもしれない
マイコン制限事項
マイコンに制限事項がありホストと挙動が違うことがあるかもしれない
マイコンメーカ配布のコード
レジスタ定義ファイル
- レジスタのアドレスに間違いない
- レジスタのbit割り当ては1bitたりとも間違いはない???
通信エラー
通信相手の通信途絶
通信相手からの異常ステータス受信
意図しない通信データ受信時の振る舞い
誤り訂正データの異常
通信開始で接続相手の異常で足並みが揃わない
再現が難しい現象
温度xx以上
湿度xx以上
接続デバイスの接続⇛未接続
接続デバイスの未接続⇛接続
外部デバイスのウォームアップ時間中の挙動
- 起動時のxxms間だけxxbitが1になるなど
連続運転試験
温度xx, 湿度xx をxx時間
連続運転の条件 xx条件: ON時間 xx時間 OFF時間 xx時間をxx日間
データ
データ初期値
データ範囲(最小・最大)
データ範囲外
データ範囲外でソフトの挙動が変わるケース
- 表示の色を変える
- 最小・最大値の固定表示
- なにもしない(範囲外を無視し他に影響を与えないこと)
バッファオーバーフロー
- バッファがフルになったあとの挙動
最古上書きなのか、要求仕様による