ホーム > ユーザーサポート > FAQ カバレッジマスターwinAMS
【質問】
MC/DC計測のオブジェクトをビルドする際、コンパイラの最適化をOFFにすることが推奨されていますが、最適化をOFFにすると製品へ実装するオブジェクトコードと異なったコードになってしまいます。どのように考えればよいのですか?
【回答】
MC/DC計測時には、実オブジェクトコードと、MC/DC計測用に埋め込みを行ったオブジェクトコードの両方を実行し、前者の実コードから期待判定の出力値とC0カバレッジ、後者の埋め込みオブジェクトからMC/DC、C1カバレッジを取得する仕組みとなっています。
前者の実コードには、テスト品質を保つために、製品に実装するコードと同じ最適化を適用したオブジェクトを使用して問題ありませんが、後者の埋め込みの行われたコードのみ、最適化をOFFにしてコンパイルして頂くことを推奨しています。
後者の埋め込みが行われたコードは、テスト対象のソースコードにタグ(フック)コードを追加しているため、この時点で実際の製品へ実装するコードとは異なった構造となっており、これに最適化を行ってオブジェクトを生成すること自体に意味がありません。
埋め込みコードはMC/DCを正しく計測することが目的であるため、このコードは最適化の影響を受けないようにして頂くことが推奨されています。
出力結果を判定する部分につきましては、上記の様に最適化を適用した製品と同じオブジェクトで実行されるため、テストの品質は最大限に保たれています。
機能安全への対応につきましても、この方式でのMC/DC計測で、機能安全ツール認証を取得しています。
MC/DC計測の仕組みにつきましては、下のリンクを参考にご覧ください。
【参考資料】
MC/DC計測の仕組みについて(カバレッジマスタープレゼン資料からの抜粋)