【ISTQB /JSTQB AutomotiveTester 解説】4.2.1 条件テスト・多条件テスト・MCDC(修正条件/判定カバレッジ)を理解しよう

JSTQB Automotive Tester

はじめに

この記事では、ISTQB Automotive Tester シラバス(4章:Automotive Specific Test Techniques) の中から、

「4.2.1 条件テスト(Condition Testing)、多条件テスト(Multiple Condition Testing)、MCDC(Modified Condition Decision Coverage)」

について解説します。

この章では、動的テスト技法(Dynamic Test Techniques) の一部として、ソフトウェアコードやロジック条件に基づいたホワイトボックステスト手法を扱います。

特に自動車ソフトウェアでは、制御ロジックや安全関連条件分岐が多いため、MCDCなどの手法が非常に重要です。


1. 動的テスト技法とは?

「動的テスト技法」とは、実際にソフトウェアを実行しながら動作を確認するテスト手法のことです。

(これに対し、レビューやコード解析のように実行しないものは「静的テスト技法」と呼びます。)

動的テスト技法の中で、4.2.1では以下の3つを学びます。

技法名

日本語訳

略称

Condition Testing

条件テスト

CT

Multiple Condition Testing

多条件テスト

MCT

Modified Condition Decision Coverage

修正条件/判定カバレッジ

MCDC

2. 各テスト技法の概要と違い

2.1 条件テスト(Condition Testing)

条件テストでは、個々の条件(True / False)をすべて評価することを目的とします。

例えば、次のようなIF文を考えます。

if (A && B)

この文の中には2つの条件(AとB)が存在します。

それぞれがTrue / Falseをとることで、条件テストでは以下のように少なくとも各条件の真偽を1回ずつテストすれば良いとされます。

テストケース

A

B

結果(A && B)

TC1

True

False

False

TC2

False

True

False

これで、AのTrue/False・BのTrue/Falseをそれぞれ1回ずつ評価できるため、条件テストの基準を満たします。

ただし、この場合、判定結果(全体のTrue/False)を完全にカバーしていないという欠点があります。


2.2 多条件テスト(Multiple Condition Testing)

多条件テストでは、全ての条件の組み合わせをテストします。

つまり、2条件なら「2² = 4通り」すべてを実施します。

テストケース

A

B

結果(A && B)

TC1

True

True

True

TC2

True

False

False

TC3

False

True

False

TC4

False

False

False

これで、AとBの全組み合わせを網羅します。

判定結果のTrue/Falseもすべて確認できるため、より完全なカバレッジが得られます。

しかし、条件が3つ、4つと増えるとテスト数は指数的に増えます。

  • 3条件 → 2³ = 8通り

  • 4条件 → 2⁴ = 16通り

  • 10条件 → 1024通り(!)

つまり、全組み合わせテストは現実的に不可能になることが多いのです。


2.3 MCDC(Modified Condition Decision Coverage:修正条件/判定カバレッジ)

MCDCは、多条件テストの「無駄を省いた」アプローチです。

各条件が独立して判定結果に影響を与えることを確認するだけでよい、というルールです。

MCDCの目的:

各条件が、他の条件の値に依存せず、単独で判定結果(True/False)を変えることを確認する。


✅ 例題:MCDCでのテストケース設計

再び、条件が2つの場合(A && B)を考えます。

テストケース

A

B

結果(A && B)

説明

TC1

True

False

False

Bの影響を確認

TC2

False

True

False

Aの影響を確認

TC3

True

True

True

両方Trueで結果が変化

  • TC1とTC3を比較すると、Bの値の変化(False→True)が結果をFalse→Trueに変えている。

  • TC2とTC3を比較すると、Aの値の変化が結果を変えている。

したがって、3ケースでMCDCを達成できます。

(多条件テストの4ケースより少ない)


3. 3つの技法の比較表

項目

条件テスト (CT)

多条件テスト (MCT)

MCDC

カバレッジ対象

各条件のTrue/False

全ての組み合わせ

各条件の独立影響

テスト数

少ない

非常に多い

少ない(効率的)

判定結果のカバー

不完全

完全

完全

自動車開発での推奨度

低(非効率)

高(ISO 26262などで推奨)

MCDCは**DO-178C(航空機)ISO 26262(自動車機能安全)**などでも推奨されています。


4. 実務での使いどころ

自動車ソフトウェアでは、以下のような制御ロジックが頻出します。

if (speed > 60 && brake == ON)

このような条件では、速度やブレーキ状態など複数の変数が組み合わされます。

そのため、すべての条件を単独にテストする必要があります。

MCDCは、安全関連システム(例:ABS、ESC、ADAS)などで特に重視されます。


5. まとめ

技法

特徴

利点

欠点

条件テスト

各条件の真偽を確認

シンプル

判定全体は網羅できない

多条件テスト

全組み合わせを確認

網羅的

組み合わせ爆発が発生

MCDC

各条件の独立影響を確認

効率的で高精度

設計がやや複雑

MCDCは、少ないテスト数で高い安全性を確保できる最も効率的な方法です。

自動車ソフトウェアテストにおいては、MCDCが最も実用的かつ推奨されるカバレッジ基準です。


💡 まとめポイント

  • 条件テスト:各条件をTrue/Falseで評価

  • 多条件テスト:すべての組み合わせを評価(テスト数が多くなる)

  • MCDC:各条件が独立して結果に影響することを確認(効率的)

  • MCDCはISO 26262などの安全基準で推奨


🔍 例題(ISTQB Automotive Tester Sample)

問題:

次の条件式 if (A && B) に対して、MCDCを達成する最小テストケース数はいくつか?

選択肢:

A. 2

B. 3

C. 4

D. 8

正解: B(3ケース)

理由:

AとBがそれぞれ独立して判定結果を変えることを確認できる3パターン(True/Falseの変化)で十分。

コメント

タイトルとURLをコピーしました