テクノロジー
近年、自動運転車両の開発が活発に行われていますが、自動運転車両を実際に市場に登場させるためには、自動運転システムの安全性を立証する事が避けて通れません。自動運転システムの安全性を立証するには、
- システム要件の前提となるODDの範囲内において、想定されるシナリオを用いた網羅的なテストが実施されているか
- テスト結果から、合理的に予見されるリスクに対して当該システムが安全であるといえる
といった2点を示す必要があります。
これまでの検証には(実走行試験および仮想試験内での)試験走行総距離がしばしば用いられてましたが、走行距離といった指標は万人にとってわかりやすい一方、ODDの範囲内で合理的に予見される誤動作などの危険要因(ハザード)による事故などのリスクがないことを立証する根拠としては弱く、「走行距離が長い=安全」とは言えないといった懸念点がありました。
そこで、走行距離に代わる新たな手法として、カバレッジドリブン検証が注目されています。
ソフトウェアにおけるカバレッジには、ステートメントや分岐、複合条件などを網羅するコードカバレッジや、システム要件から導出される検証項目のうちどの程度網羅されたかを検証するファンクショナルカバレッジなどの種類があります。カバレッジドリブン検証では、特にファンクショナルカバレッジを指標としています。
自動運転検証におけるカバレッジドリブン検証は、以下の流れで進められます。
- ODDに基づき検証する機能を決定し、検証プランを作成
- 1の検証プランをベースとし、検証に利用する抽象シナリオの仕様およびカバレッジモデルを決定
- 網羅率が増えなくなるまで複数の乱数シードを用いて抽象シナリオから具体的シナリオを生成し、テストを繰り返し実行
- カバレッジ結果を検証プランにアノテーション
- 制約条件の調整を行った後テストをさらに繰り返し、カバレッジホールを狭める
- 未検証の領域について分析し、テスト実施有無を判断し、必要に応じて詳細なシナリオを生成・実施

規定したカテゴリの仕様が、抜け漏れが無いように全域でテストされたかどうか確認。カバーされていない領域は、なるべくしてなっているのか、テストが不十分なのか、分析しながらテストを繰り返し実行していき、カバー領域を100%に近づけていくことで、検証を十分行ったというエビデンスにしていく、という考え方が、カバレッジドリブン検証なのです。