验证verification与确认validation是两个不同的概念,在CMMI 1.3版本中是两个不同的PA,在2.0版本中合并成了一个PA,命名为VV。

验证与确认的区别,可以通过下表来描述:


验证Verification

确认Validation

目的

确保所选择的工作产品满足指定的需求

当产品或者产品组件被置于其要求环境中时,产品或者产品组件能够完成其所期望的功能。

重点

做法是否正确,强调中间过程的正确性。verification ensures that “you built it right;” 

结果是否正确,强调结果的正确性。validation ensures that “you built the right thing.” 

参照物

本活动的需求,如验证设计时参照需求,验证代码时参照设计等。

最初的原始需求,如客户的原始需求。

可采用的方法

需求梳理,需求评审,设计评审,代码评审,单元测试,集成测试,系统测试,DoD等

用户评审,用户划分优先级,原型,模拟,验收测试,用户反馈使用意见,试运行,sprint review,验收标准定义等

在产品开发过程中持续地进行验证与确认是基本的原则。验证与确认是互补的,缺一不可。只做验证不做确认,一旦跑偏了,就无法满足最初的需求,只做确认不做验证,一是无法及时发现开发过程中的错误,返工的成本极其昂贵,而且确认本身的成本也比较高。所以在业内都是称为V&V,而不是V or V。

 

实践列表

VV

1.1

Perform verification to ensure the requirements are implemented and record and communicate results.

执行验证以确保需求已被实现并记录和沟通验证结果。

VV

1.2

Perform validation to ensure the solution will function as intended in its target environment and record and communicate results.

执行确认以确保解决方案在目标环境中能发挥预期的作用,并记录和沟通结果

VV

2.1

Select components and methods for verification and validation. 

选择验证和确认的部件和方法

VV

2.2

Develop, keep updated, and use the environment needed to support verification and validation. 

建立、保持更新和使用支持验证和确认的环境

VV

2.3

Develop, keep updated, and follow procedures for verification and validation. 

制定、保持更新和遵从验证和确认的规程

VV

3.1

Develop, keep updated, and use criteria for verification and validation.  

制定、保持更新和使用验证和确认的准则

VV

3.2

Analyze and communicate verification and validation results. 

分析和交流验证和确认的结果

 

通俗解释

VV1.1执行验证以确保需求已被实现并记录和沟通验证结果。

VV1.2执行确认以确保解决方案在目标环境中能发挥预期的作用,并记录和沟通结果

这2条实践就是要求执行了验证与确认的活动。

 

VV2.1选择验证和确认的部件和方法

对哪些工作产品、产品部件执行验证与确认?采用哪些手段?

 

VV2.2建立、保持更新和使用支持验证和确认的环境

环境包括软件工具、硬件工具、测试设备等。

有些工具可以是自己开发的,有些工具是采购来的。

验证与确认的环境与产品实际执行的环境可能存在差异,这是一个常见的风险。

 

VV2.3制定、保持更新和遵从验证和确认的规程

规程即具体的操作步骤,即如何具体做验证和确认,从前期的准备到执行过程,以及事后的分析。

 

VV3.1制定、保持更新和使用验证和确认的准则

准则包括了验证与确认的检查单、测试用例、验证与确认启动的条件、结束的条件。

 

VV3.2分析和交流验证和确认的结果

对验证与确认结果的分析包括:

验证与确认投入的充分程度分析、覆盖率分析;

缺陷的趋势分析;

各种缺陷类型的分布分析、严重程度分析、原因分析;

等等。

根据分析结果应识别应采取的纠正措施、改进建议等。