需要が拡大する自動車制御OSを知る ――機能向上に対応するには開発効率向上が必須
● システム・ジェネレータに自動テストを組み込む
システム・ジェネレータが正しくOILを解釈し,OSが必要とする情報を正しく出力できているかどうかをテストする必要があります注15.しかし,システム・ジェネレータにはMODISTARCのようなテスト仕様が用意されていません.
また,システム・ジェネレータは複雑かつ大規模になりがちなため,修正時にすべての動作確認を手作業で行うのは困難です.そこで,全パターンを網羅できるOILファイルを作成したり,自動テスト環境を用意するといった対応が必須になります.今回は,テスト記述とカバレッジ算出処理をシステム・ジェネレータに組み込みました.
1)テスト記述を組み込む
システム・ジェネレータ用のテスト記述をあらかじめ関数として作成し,組み込みました.このテスト記述を自動実行することにより,実行結果の合否を判定できます.
2)カバレッジ算出
カバレッジとは,テスト実行を完了したパスの割合のことです.どれだけの割合のパスについてテストが完了したかを算出することで,単体テストとしての質を知ることができます.
今回実装したカバレッジはC2(条件網羅率)注16です.分岐点としては,if文,switch文,while文に対して実装しました(for文については実装できなかった).for文やメモリ不足などの異常処理を除いた762個の分岐文についてチェックし,うち700個についてはすべての条件を通過したことを確認しました.
注15;これにはOS仕様が関連してくるため,OSに依存したテストになると推測できる.
注16;コード内のすべての条件を少なくとも1回は実行するもの.