妥当性確認の流派

ソフトウェアテストの文脈で、検証と妥当性確認の違いはなんだ、という話によくなります。

https://en.wikipedia.org/wiki/Verification_and_validation

>"Validation. The assurance that a product, service, or system meets the needs of the customer and other identified stakeholders. It often involves acceptance and suitability with external customers. Contrast with verification."
>"Verification. The evaluation of whether or not a product, service, or system complies with a regulation, requirement, specification, or imposed condition. It is often an internal process. Contrast with validation."

あとよく言われるのは、

Verification:正しくモノを作ったか

Validation:正しいモノを作ったか

ですね。Validationはその名前の通りValidであることを確認する作業です。


さて、この記事の主題は妥当性確認の捉え方の違いについてです。

1つの考え方がこちらです。絵がわかりやすいですね。もともとの課題を本当に解決することができたかを、中間成果物を含めたそれぞれの成果物に対してチェックする活動を妥当性確認と呼んでいます。こちらの方が世の中的にはメジャーな解釈かもしれません。


もう一つがこちらです。こちらも絵を見ると一目瞭然ですが、基本的にすべての戻る矢印がVerificationで、最後のテストだけがValidationになっています。最後のテストを除いて、すべて仕様書や設計書通り作られたかをテストする、または、要求仕様書の内容が実現できるように設計書が作られたかレビューする、という活動であるため、Verificationだと。最後のテストだけは、そもそもやりたかったとができているか、の視点になるためValidationだということです。こちらは自動車業界でメジャーな考え方かなと思います。ISO26262がこの考え方を採用しているからでしょう。


この二つ以外には、左向きの矢印(テスト)はすべてValidationだ、というWebサイトもありました。


この記事で言いたかったことは、

・Validationの定義は決まったものがあるが、その解釈によってどのプロセスがValidationに当たるかは違いがある

・代表的なものとしては、広義のValidation(一つ目)と狭義のValidation(二つ目)がある

ということです。



この記事が気に入ったらサポートをしてみませんか?