単体テストとは何か、なぜ必要なのか【後編】はじめての単体テスト(4/4 ページ)

» 2021年09月22日 06時00分 公開
前のページへ 1|2|3|4       

5.3.2.4 コンディションカバレッジ(条件網羅/C2)

 コンディションカバレッジは、カバレッジ基準の中で最も厳格なコードカバレッジです。

 テスト対象の条件分岐に複合条件が使われる場合でも、各条件の真偽全ての組み合わせをテストします。ソースコードに対する網羅性が高い一方で、テストケース数が膨大になるため、規模の大きなソフトウェアでコンディションカバレッジまで網羅されているケースは少ないといえます。

5.3.2.5 MC/DCカバレッジ(Modified Condition/Decision Coverage)

 MC/DCカバレッジは、「Modified Condition/Decision Coverage」の略です。

 コンディションカバレッジと同様にコードの網羅性が非常に高いため、航空機向けソフトウェアや自動車に搭載するソフトウェアなど、高い安全性が求められるケースにおいてはMC/DCカバレッジ基準を用います。複数あるカバレッジ基準の中で、現実的かつ最も厳しい基準がMC/DCであるといえるでしょう。

 MC/DCカバレッジの定義は下記の通りです(※5)

  • MC/DC requires all of the below during testing
  1. Each entry and exit point is invoked.
  2. Each decision takes every possible outcome.
  3. Each condition in a decision takes every possible outcome.
  4. Each condition in a decision is shown to independently affect the outcome of the decision.

(※5)「A Practical Tutorial on Modified Condition/Decision Coverage」;NASA/TM-2001-210876;May 2001;https://shemesh.larc.nasa.gov/fm/papers/Hayhurst-2001-tm210876-MCDC.pdf

 抄訳になりますが、MC/DCカバレッジはテストで以下の要件を確認することを求めています。

  1. プログラムの全ての入口と出口を通過していること
  2. プログラムの各判定式が、全ての取りうる結果を出力すること
  3. プログラムの判定式の各条件が、全ての取りうる結果を出力すること
  4. プログラムの判定式の各条件が、判定結果に単独で影響すること

 例えば、とある複合条件式がある命令において「A and Bが真の時、処理2を実行する」場合、Aが真であれば、Bが真偽のどちらかによって判定の出力が変化しますが、Aが偽であれば、Bの真偽がどちらでも判定は偽になります。つまり、Aが偽のテストケースは1つでよいため、このソースコードにおけるMC/DCのカバレッジを100%にするためのテストケースは3通りということになります。

図11:MC/DCカバレッジ(クリックして拡大) 出典:ベクター・ジャパン

6 まとめ

 手作業での単体テストには膨大な工数が発生します。ブラックボックステスト、ホワイトボックステスト、それ以外のテストをどのような基準で行うのか。各製品ドメインに求められる品質基準を考慮しながらテスト計画を定め、きちんと運用していくことが重要です。

 また、手作業でのテストにはヒューマンエラーが介在しますので、各種国際認証におけるテストエビデンスにはなり得ません。そのため、何かしらの自動化ツールを導入してヒューマンエラーを排除し、均一的なテストエビデンスを作成できるような環境を整えることが重要です。

会社紹介

ベクター・ジャパン株式会社

ベクターは、創立から30年以上にわたり、カーエレクトロニクス開発の頼れるパートナーとしてお客様をサポート。現在、世界各国30拠点以上でベクター社員が、自動車業界および関連する業界のメーカー様とサプライヤー様に、組込システム開発に必要なツール、ソフトウェアコンポーネント、サービスなど、プロフェッショナルな開発プラットフォームを提供している。

▼ベクター・ジャパン

https://www.vector.com/jp/ja/

▼VectorCASTページ

https://www.vector.com/jp/ja/products/products-a-z/software/vectorcast/

→連載「はじめての単体テスト」バックナンバー

前のページへ 1|2|3|4       

Copyright © ITmedia, Inc. All Rights Reserved.