こんにちは、ゆーすけです。
今回は「V&V(ぶいあんどぶい)」という用語について考えてみたいと思います。
「Verification & Validation」
「検証と検証」になってしまいますが、一般的には「検証と妥当性確認」と訳されています。
業界によって様々な定義・解釈がありますが、
Verification : Are we building the product right?
Validation : Are we building the right product?
という言葉が有名なのではないでしょうか。
それぞれを意訳すると
Verification →正しく製品を作っているか →仕様通りに作っているか
Validation →正しい製品を作っているか →顧客要求を満たしているか
のようなことだと自分は解釈しています。
V字のV&V
「V&V」をウォーターフォールのV字モデルで考えると、
要求→UATの工程が「Validation」
設計からSTまでの工程が「Verification」
だということがよくわかると思います。
テストを行っていると極々稀に
「仕様書にこう書いているから、その現象は仕様で問題ない!」
(ユーザー影響は結構大きいんだけど……)
「仕様書にどう書いてようが、動いているものが基本的には正で問題ない!」
(それだったら設計とかせずに全部モンキーテストでいいやん……)
というプロジェクトに遭遇することがあります。
こういった状況だと、本当にユーザーが求めている機能を計画的効果的かつ効率的に開発することができないので、テスト関係者だけではなくソフトウェア開発にかかわる全員で、是全工程に対して「V&V」の活動が必要だといえると思っています。
素朴な疑問として
テストの中で「バリデーション」というと「入力確認」として捉えられることが多いですが、何故入力確認がバリデーション(妥当性確認)と言うのだろう、という疑問があります。
入力フォームに入れられた内容が本来求めているものとして妥当なものか判断する、
だとは思っていますが、
「それって仕様として定義されている内容だから、妥当性確認よりは検証じゃない?」
などと密かに思ってたりしますが、「違う業界の定義・解釈が入り乱れている」などあるかもしれないので、的外れだ的な意見はご容赦いただければと……