- 追加された行はこの色です。
- 削除された行はこの色です。
* Validation とVerification [#t6b55794]
テストには、Validation とVerification という考え方があります。
- Validation
-- 正しいものを作っているか確認する
- Verification
-- ものを正しく作れたか検証する
詳細設計書をもとに、ソースコードを作成した場合を例にします。
Validation は、詳細設計書に基づいて作成したソースコードが、詳細設計書に書いてある内容を満たしていることを確認します。つまり、成果物に対する確認です。
Verification は、詳細設計書に基づいてソースコードを作成できたことを確認します。つまり、プロセスに対する確認です。
例えば、詳細設計書の一部の情報を完全に見落として、ソースコードを作成したとします。ただし、見落とした情報以外については、正しく作成できたとします。この場合、プロセスの input が正しくないのですが、プロセス自体は正しいので、Verification は PASS します。しかし、Validation で FAIL します。
一方、Verification は Validation より細かい粒度で確認を行ないます。例えば、以下のような設計仕様があったとします。
関数 PrintGender(uint8_t num)
num 0:男性, 1:女性
上記の仕様に基づいた validation では、最低限テストケースで保証する num の値は 0 と 1 です。しかし、以下のような実装で、num > 1 のときに発生する不具合を発見できません。
char gender[] = {'M', 'F'};
PrintGender(uint8_t num)
{
printf("%c", gender[num]);
}