[转贴]关于软件“验证(Verification)”和“确认(Validation)”的对话
[转贴]关于软件“验证(Verification)”和“确认(Validation)”的对话2007-07-0419:50[转贴]关于软件“验证(Verification...
[转贴]关于软件“验证(Verification)”和“确认(Validation)”的对话2007-07-04 19:50[转贴]关于软件“验证(Verification)”和“确认(Validation)”的对话
[按]软件验证(Verification)和软件确认(Validation)是测试理论中包含的两个基本概念,我对这两个概念的确切含义的理解,以及在实际测试工作中有什么指导意义,一致存在模糊的认识。
这两个概念,在很多英文文章里这两个术语经常缩写成“V&V”,比较权威的解释是:
IEEE,1991
软件验证技术是“评估系统或部件在特定的开发阶段是否满足该阶段开始时人们对它提出的要求” 。
软件确认技术是“评估系统或软件部件在开发过程中或开发结束时是否满足特定要求”。
如果要更详细地解释一下,可以这样理解:
软件验证和确认是软件测试的两种技术。
软件验证是在软件开发的各个阶段,从软件技术人员的角度,测试当前的开发成果(文档,代码等)符合设计的规范,保证按照设计流程和要求进行开发,即“正确地做了事”。
软件确认是从用户的角度,测试当前的开发成果符合用户的真正需求,即“做了正确的事”。
可能有人会问,既然软件的最终目标是满足客户的需求,为什么在测试过程中还要把这两种技术一起使用呢,或许只要“软件确认”就够了?
关于这个问题,我专门请教了国内软件测试的高手,请看下面的MSN 对话(我->Cuiql。Johnson->测试高手)
--------------------------------
Cuiql说:
测试、评审、验证、确认,很多人不能准确理解
Cuiql说:
我在思考为什么不把“验证+确认”更好的集中?
Cuiql说:
“确认”更符合用户的需求
Johnson说:
确认是产品已经出来,确切地run的过程.
Cuiql说:
对
Cuiql说:
开发过程中只能“验证”
Johnson说:
比如,设计规格说明出来,我们来run这个设计,看有没有问题.
Johnson说:
或者run某个需求,看看是不是用户需要的。
Cuiql说:
对
Johnson说:
而验证,则类似于在产品没有出来之前证明这样做是没有问题的。
Cuiql说:
明白
Johnson说:
这个概念相当费解.
Johnson说:
之所以会产生差异,是波音公司将所有的文档审核都叫验证,
Cuiql说:
验证的作用是在没有成形产品的情况下(开发过程中),当前的成果是否符合开发规定的一些标准,规范(各种文档的要求)
Johnson说:
所有的硬件或软件的实测都叫确认.
Johnson说:
后来IEEE出了规范统一了一下.不过更模糊了。
Cuiql说:
明白
Johnson说:
我们可以找IEEE的最新版.听说分得很清楚.
Cuiql说:
“验证”和“确认”都需要测试代码,二者有什么不同呢?
Johnson说:
验证并不去run.
Cuiql说:
明白了
Johnson说:
比如去代码阅读,审查,或规范审查,
Cuiql说:
明白
Johnson说:
测评中心这个名字是有讲的.
Johnson说:
他们把测试当作确认,评审作为验证.
Johnson说:
呵呵.我觉得没有必要.
Cuiql说:
更乱了
Johnson说:
第一,验证原比评审大.
Johnson说:
第二,测试和确认不是同一个意思.因为确认往往是阶段性的.我们要强调全程质量管理就要把测试当做一个全过程的概念。
Johnson说:
我觉得EDward Kit的书写得很清楚.我同意他的提法.
Cuiql说:
测试是一个全过程,太正确了
Johnson说:
有很多人将测试与V&V并列起来,这会造成测试地位被排挤.
Cuiql说:
评审是测试的一种手段
Johnson说:
事实上,测试包括V&V.
Johnson说:
对.评审是一种测试.
Johnson说:
至少V&V的老祖宗(波音)是这样说的。
Cuiql说:
验证和确认是测试方法论,测试的两条内容主线 展开
[按]软件验证(Verification)和软件确认(Validation)是测试理论中包含的两个基本概念,我对这两个概念的确切含义的理解,以及在实际测试工作中有什么指导意义,一致存在模糊的认识。
这两个概念,在很多英文文章里这两个术语经常缩写成“V&V”,比较权威的解释是:
IEEE,1991
软件验证技术是“评估系统或部件在特定的开发阶段是否满足该阶段开始时人们对它提出的要求” 。
软件确认技术是“评估系统或软件部件在开发过程中或开发结束时是否满足特定要求”。
如果要更详细地解释一下,可以这样理解:
软件验证和确认是软件测试的两种技术。
软件验证是在软件开发的各个阶段,从软件技术人员的角度,测试当前的开发成果(文档,代码等)符合设计的规范,保证按照设计流程和要求进行开发,即“正确地做了事”。
软件确认是从用户的角度,测试当前的开发成果符合用户的真正需求,即“做了正确的事”。
可能有人会问,既然软件的最终目标是满足客户的需求,为什么在测试过程中还要把这两种技术一起使用呢,或许只要“软件确认”就够了?
关于这个问题,我专门请教了国内软件测试的高手,请看下面的MSN 对话(我->Cuiql。Johnson->测试高手)
--------------------------------
Cuiql说:
测试、评审、验证、确认,很多人不能准确理解
Cuiql说:
我在思考为什么不把“验证+确认”更好的集中?
Cuiql说:
“确认”更符合用户的需求
Johnson说:
确认是产品已经出来,确切地run的过程.
Cuiql说:
对
Cuiql说:
开发过程中只能“验证”
Johnson说:
比如,设计规格说明出来,我们来run这个设计,看有没有问题.
Johnson说:
或者run某个需求,看看是不是用户需要的。
Cuiql说:
对
Johnson说:
而验证,则类似于在产品没有出来之前证明这样做是没有问题的。
Cuiql说:
明白
Johnson说:
这个概念相当费解.
Johnson说:
之所以会产生差异,是波音公司将所有的文档审核都叫验证,
Cuiql说:
验证的作用是在没有成形产品的情况下(开发过程中),当前的成果是否符合开发规定的一些标准,规范(各种文档的要求)
Johnson说:
所有的硬件或软件的实测都叫确认.
Johnson说:
后来IEEE出了规范统一了一下.不过更模糊了。
Cuiql说:
明白
Johnson说:
我们可以找IEEE的最新版.听说分得很清楚.
Cuiql说:
“验证”和“确认”都需要测试代码,二者有什么不同呢?
Johnson说:
验证并不去run.
Cuiql说:
明白了
Johnson说:
比如去代码阅读,审查,或规范审查,
Cuiql说:
明白
Johnson说:
测评中心这个名字是有讲的.
Johnson说:
他们把测试当作确认,评审作为验证.
Johnson说:
呵呵.我觉得没有必要.
Cuiql说:
更乱了
Johnson说:
第一,验证原比评审大.
Johnson说:
第二,测试和确认不是同一个意思.因为确认往往是阶段性的.我们要强调全程质量管理就要把测试当做一个全过程的概念。
Johnson说:
我觉得EDward Kit的书写得很清楚.我同意他的提法.
Cuiql说:
测试是一个全过程,太正确了
Johnson说:
有很多人将测试与V&V并列起来,这会造成测试地位被排挤.
Cuiql说:
评审是测试的一种手段
Johnson说:
事实上,测试包括V&V.
Johnson说:
对.评审是一种测试.
Johnson说:
至少V&V的老祖宗(波音)是这样说的。
Cuiql说:
验证和确认是测试方法论,测试的两条内容主线 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询