验证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分析和交流验证和确认的结果
对验证与确认结果的分析包括:
验证与确认投入的充分程度分析、覆盖率分析;
缺陷的趋势分析;
各种缺陷类型的分布分析、严重程度分析、原因分析;
等等。
根据分析结果应识别应采取的纠正措施、改进建议等。