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