软件产品开发过程中有两个重要步骤:验证(Verification)和确认(Validation)。
验证(Verification):Are we producing the product right? 就是要用数据证明我们是不是在正确地制造产品,这里强调的是过程的正确性。
确认(Validation):Are we producing the right product?就是要用数据证明我们是不是制造了正确的产品,这里强调的是结果的正确性。
举例来说:
验证(Verification):比如测试软件,要检查的东西就是软件,检查的标准就是软件的规格说明,包含功能说明、性能要求等。
确认(Validation):比如检查软件在最终的执行环境上是否达到预期的目标。一般来说,就是甲方的验收,这些工作都要软件在真正执行的环境上进行,确保软件符合用户的使用要求。
总体来说,“验证”和“确认”都是认定。不过“验证”表明的是满足规定要求,而“确认”表明的是满足预期用途或用户需求。换句话说,验证要保证“产品做得正确”,而确认则要保证“做的产品正确”。
验证多数情况下是对可预置、可量化的指标操作。而确认则应含有很多人的因素,如感受、接受程度、符合程度等,虽然也可以量化,但不一定很客观。