* 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]); }