对于测试从业不久,或没有经历过CMMI的测试员来说,可能不清楚验证测试和确认测试的差异。以前经常有新丁问我这个问题,下文我将给大家介绍说明下验证测试和确认测试,我相信通过这些介绍,你今后对此不再有疑惑。
在CMMI过程域中,有两个测试相关的域,它们分别是VER(Verification,验证)和VAL(Validation,确认)。
“验证” 过程域的目的在于保证开发产品能满足其规定要求,该过程域有3个特定目标:准备验证、执行同行评审和验证选择的工作产品,要求按照需求(包括用户需求、产品需求和产品构件需求)对产品和中间产品进行验证。“准备验证”特定目标有3个特定实践:建立验证策略,建立验证环境,建立详细验证计划;“执行同行评审”特定目标有3个特定实践:准备同行评审,进行同行评审,分析同行评审数据;“验证所选择的工作产品”特定目标有3个特定实践:进行验证,分析验证结果和确定纠正措施,进行复验证。
“确认”过程域的目的在于证明产品或产品构件被置于预期的环境时能够满足其预期的用途,该过程域有两个特定目标:准备确认,确认产品或产品构件。“准备确认”特定目标有3个特定实践:建立确认策略,建立确认环境,建立详细确认计划;“确认产品或产品构件”特定目标有两个特定实践:进行确认,收集和分析确认结果。“确认”的实践类似于“验证”使用的实践,但是这两种过程域集中于不同的主题,确认主要用于表明一件产品被置于预期的环境时能实现其预期的用途,而验证则表明工作产品达到了指定的需求。
确认证明所提供的产品符合预期的使用需求,而验证说明工作产品是否适当的反映了特定需求。换言之,验证确保“你把事做对了”,而确认确保“你做了对的事”。如果测试是在用户实际生产环境下进行的,例如:验收测试、客户试用系统等,这时这类工作就属于确认测试了。
而验证测试贯穿于整个开发生命周期,用来检测产品是否满足了前面的活动所定义的需求,而确认测试发生在生命周期的末尾,用来检查系统是否满足了客户的需求。通常验证测试活动包括单元测试、集成测试、系统测试。