n個の故障f1, f2, ..., fnとm個のテストパターンt1, t2, ..., tmに対して,各故障がどのテストパターンで検出されるかの情報が与えられているとする.表1中の○は,故障が検出されることを示している.このとき,すべての故障を検出するための最小数のテストパターンを求める.
表1
t1 | t2 | t3 | t4 | ... | tm | |
---|---|---|---|---|---|---|
f1 | ◯ | ◯ | ||||
f2 | ◯ | ◯ | ◯ | |||
f3 | ◯ | ◯ | ||||
... | ||||||
fn | ◯ | ◯ |
- 手順1:F={f1, f2, ..., fn}, T={t1, t2, ..., tm}, Ts=φとする.
- 手順2:手順2.1をFまたはTが空になるまで続ける.
- 手順2.1:Tの各テストパターンに対して,Fの故障の中で検出する故障数を求め,最も多くの故障を検出するテストパターンを選択し,それをTから除外し,Tsに含める.検出された故障をFから除く.
上記の方法は貪欲法と呼ばれる方法で,少ないテストパターンが選択されますが,最少かどうかは分かりません.他にも色々な方法があります.また,故障数が非常に多い場合,例えば,数千万個以上や,表1のような情報が与えられていない場合など,様々な問題が考えられます.