验证和确认
软件测试的工作归结起来就是两个V,Verification和Validation。
Verification翻译为验证,在在ISO9000中,“验证”的严格定义是:
验证是通过检查和提供客观证据,表明规定要求已经满足的认可。
Validation翻译为确认,在ISO9000中,“确认”的严格定义是:
确认是通过检查和提供客观证据,表明一些针对某一特定预期用途的
要求已经满足的认可。
从定义上可以看出“验证”关注是否满足规定,即需求规格说明书,
“确认”关注的是是否满足预期用途,即用户的真正需求。我们知道,
软件的设计,编码实现都是依据软件的需求规格说明书。对于软件测试
来说单元测试,集成测试,系统测试的目的是验证软件是否符合软件的
需求规格说明,因此都可归于验证过程。然而需求规格说明书并不能代
表用户的真正需求,而且依据需求的设计也往往同需求会有些偏差,
所以得出的软件产品在经过了系统测试以后还需要进行,确认测试。
测试软件产品是否就是用户想要的产品。
总之,验证针对的是需求说明书,检验软件是不是根据需求来设计实现的,
确认针对的是用户,检验软件能否满足用户的需求。BOEHM对V&V的最著名
又最简单的解释是:
Verification:Are we building the product right?
是否按需求做出了正确的产品
Validation:Are we building the right product?
是否作出了用户想要的产品