百家之言。越辩越明还是越辩越不明。这种问题没有正确和好的答案,考试的话就是考个人的表达能力和想象力。
http://wenku.baidu.com/view/a86ef9c20c22590102029d6a.html?re=view
http://en.wikipedia.org/wiki/Verification_and_validation
http://wenku.baidu.com/link?url=MIiy5DXHMqxde-Zerk3lqkFOE2JDOxi1qwKw7-MWClkIwF3GL5TprCLzAVnCNXCUB45c-IZBFDeoViwH3Wu1uinrRRyThol7W2bsu0bIDSq
http://wenku.baidu.com/view/2cd6353d0912a216147929b0.html?re=view
找了个有意思的解释,以下为转贴:
Verification and Validation改行做tester已经一个月左右,我的mentor远在万里之外的美国,记得第一次指导,他通过远洋电话说tester除了要测试对与错之外,还要侧重是否是有效的。换言之,就是本文说得是Verification和Validation。Verification也就是说要做正确、而Validation是看经过Verification是否是我们想要的。 Verificaiton是我们可以预见的,在测试以前就知道我们期望一个什么结果。例如我要找GF,首先对方要是个女的,if(Person.gender!=female) return false;做IC的,读卡器芯片,必须能够读相应的数码卡;做sales的,评价Performance的标准每个月的销售额就是Verification的标准,Verification是否可以说是理性思维大于感性。1是1,2是2。而Validation首先前提是经过Verification,重要的是做的是否是customer需要的。拿刚才三个例子,我相信任何一个人找对象,不会只需要一个异性。验证Validation,还要看是否是自己喜欢的; IC做出来了,是否市场真的需要。做sales,除了销售额,是否让客户买对了产品,是否增加了客户的忠诚度,是否合乎客户使用习惯应该是Validation过程。 可以说Validation更多的是感性因素多,也是一个及其难以掌握的事情。毕竟,think from others是一件非常难的事情。 看看windows xp,尽管安全问题依旧,但是很多用户会毫不犹豫地抛弃win98。其实经过调查,大多数原因是界面比以前漂亮友好了很多。而且使用方面,和之前的版本对于绝大多数人来说能够最大程度保持一致。 Microsoft的可怕不在于技术,而在于它能够让我们养成了习惯,习惯是很难改变的,而掌握了客户的习惯和心态,这正是做Validation的极高境界。 不多说了,下周末又有一场婚礼要参加。看样又有一对新人经历了Verifiaction和Validation。
1、在整个开发过程中verification和validation是什么时期什么阶段需要做的?
2、verification和validation针对的对象是什么?
3、verification和validation都需要怎么去做?
4、verification和validation的区别?
CMMI中有VER和VAL两个过程域
Verification (验证) : You do it right.
侧重在软件系统是否正确地反映了需求.
Validation (确认) : You do the right thing.
侧重在是否按照客户的意图来进行系统开发
具体例子可以参考测试,单元,集成,系统测试,反映的意图不同,考虑的角度不同,同行评审也
可以说VER和VAL贯穿了开发过程始终
主要手段就是做评审和测试
确认侧重站在客户的角度进行评审和测试
比如前期的需求评审,后期的用户接受测试,可以认为是确认活动
开发过程中的一些依照分析设计文档进行开发和测试的活动可以认为是验证活动,比如代码的同行评审和单元测试
1、在整个开发过程中verification和validation是什么时期什么阶段需要做的?
VER和VAL是贯穿开发过程始终的
假设采用的生命周期模型是V模型
前期跟需求相关的确认的工作量要多(需求评审,用户接受测试用例评审,系统测试用例评审),在开发中期验证的工作量要相对大些(单元测试,代码评审),在开发的末期确认的工作量相对较大(系统测试,用户接受测试)
如果采用敏捷的方法,生命周期模型一般是增量模型,VER和VAL的工作量就基本一致,没有按阶段有所侧重
2、verification和validation针对的对象是什么?
针对的对象包括了开发过程的所有文档和代码
评审和测试是VER和VAL的主要形式
3、verification和validation都需要怎么去做?
VER和VAL的主要实现形式是评审和测试
4、verification和validation的区别?
Verification (验证) : You do it right.
侧重在软件系统是否正确地反映了需求.
Validation (确认) : You do the right thing.
侧重在是否按照客户的意图来进行系统开发
以测试举例(V模型),
用户接受测试,系统测试较靠近确认活动,侧重站在客户角度考虑问题
单元测试,集成测试较靠近验证活动,侧重站在系统功能角度考虑问题
Verification与Validation按照实行的目的不同来区分的
BTW:两个活动可以说你中有我,我中有你,完全区分还是有困难的
验证:validation ,如process validation工艺验证,cleaning validation清洁验证; 确认verification,如method verification方法确认; 认证 qulification,如 qulification of personnel人员的资格认证。
IQ,OQ,PQ,对于一般稍大一些的仪器,都要做的,有些重大的仪器都还要做DQ。
首先,我想说这不是三言两语就能把具体操作说清楚的,下面是我们的一些经验,理解不对的地方请指正:
1、Validation验证(Revalidation再验证):
可能影响产品质量的分析方法、生产工艺、清洁程序、计算机化系统等必须进行验证。验证分前瞻性验证、同步验证、回顾性验证,变更引起的再验证、周期性再验证等。验证报告应包括风险分析等。
2、Qualification确认(Re-qualification再确认):
某些技术系统需要进行确认,如厂房设施(包括洁净级别)、工艺系统、技术设备、分析设备或计算机设备的确认。普通设备只要做技术接收和IQ,控制设备、测量仪器、分析仪器除了技术接收和IQ还要做OQ、PQ,分析仪器、计算机化系统最好还做风险评估之类。设备定期要做再确认。
3、Verification检定:
计量仪器要做检定。
Validation在新版GMP中表述为“验证”,针对方法。
Qualification为“确认”,针对仪器设备
Verification为“检定”
qualification着重于资格认证
Validation: A documented program that provides a high degree of assurance that a specific process, method, or system will consistently produce a result meeting predetermined acceptance criteria.
为某一特定的工艺、方法或系统能够持续地产生既定接受标准的结果提供充分保证的文件程序。[在制药行业,Validation通常翻译为验证,如工艺验证,分析方法验证等]
Qualification: Action of proving and documenting that equipment or ancillary systems are properly installed, work correctly, and actually lead to the expected results. Qualification is part of validation, but the individual qualification steps alone do not constitute process validation.
证明设备或辅助系统、安装正确、工作正常、确实产生预期的结果,并以文件为主的行为。确认是验证的一部分,但单独的确认步骤不构成工艺验证。[在制药行业,Qualification通常翻译为确认,如仪器的安装确认、运行确认等]
严格来说,这两个词要表现的意思是一样的。但是现在面对的对象不同,validation现在针对的是process,操作的过程。而qualification的对象是equipment和设施。一个相对抽象,一个是有实体的
Verification ensures the product is designed to deliver all functionality to the customer; it typically involves reviews and meetings to evaluate documents, plans, code, requirements and specifications; this can be done with checklists, issues lists, and walkthroughs and inspection meetings.
Validation ensures that functionality, as defined in requirements, is the intended behavior of the product; validation typically involves actual testing and takes place after verifications are completed.
验证(Verification)与确认(Validation)的区别
说法一:
(2)“验证(Verification)”的涵义
通过提供客观证据对规定要求已得到满足的认定。
(2)“确认(Validation)”的涵义
通过提供客观证据对特定的预期用途或应用要求已得到满足的认定。
(3)“验证”和“确认”之区别
“验证”和“确认”都是认定。但是,“验证”表明的是满足规定要求,而“确认”表明的是满足预期用途或应用要求,说简单点,“确认”就是检查最终产品是否达到顾客使用要求。
(4)“设计和开发”中“设计验证”和“设计确认”之区别在于:
设计验证的目的是检查设计输出是否满足设计输入的规定要求。
设计确认的目的是检查设计形成的最终产品是否达到顾客的使用要求。
说法二:
1.“确认”是要证明所提供的(或将要提供的)产品适合其预计的用途,而“验证”则是要查明工作产品是否恰当地反映了规定的要求。换句话说,验证要保证“做得正确”,而确认则要保证“做的东西正确”。
2.验证注重“过程”,确认注重“结果”
3.(Verification) ---Are we producing the product right?
(Validation) ---Are we producing the right product?
说法三:
1.什么是验证?
验证 就是要用数据证明我们是不是在正确的制造产品。注意这里强调的是过程的正确性
2.什么是确认?
确认 就是要用数据证明我们是不是制造了正确的产品。注意这里强调的是结果的正确性。
3.验证和确认是一个广泛的概念,感兴趣的读者可以参考 IEEE Std 1012-1998 。
验证:验证检查某样东西是否符合之前已定好的标准,如:文档评审,要检查的东西是文档,检查标准就是文档的评审标准,又如:测试软件,要检查的东西就是软件,检查的标准就是软件的规格说明,包括功能说明,性能要求等。
确认:检查软件在最终的运行环境上是否达到预期的目标。一般来说,就是调试、验收测试等,这些工作都是在真正的软件需要运行的环境上进行的,在最终环境上运行软件,确保软件符合使用要求
注:
Valiadation更多是从用户的角度或者可以是模拟用户角度来验证产品是否和自己想要的一致。从SP来看可能更容易理解这个;
Verification更多的是从开发方的角度来做评审、测试来验证产品的需求、架构设计等方面是否和用户要求的一致;
说法四:
(1)“验证(Verification)”的涵义
用试验的方法,来检验某个结论是否正确。
实践是检验真理的唯一标准,验证==检验+证明 。
也就是用实践来检验理论是否成立。验证之前,答案可能是对或错的。
(2)“确认(Validation)”的涵义
已经知道某个结论,看看是否被有效执行,不需要验证理论的正确性,
是对执行力的检验。日本企业喜欢用“确认”一词,可以理解为:结合
实物,到现场认真地看。
verification = 核实
validation = 批准
qualification = 资格
现代芯片设计中的QA环节有两个,验证Verification和测试Test,事实上,还漏了一个不常见的,其英文为Validation,对应中文经常也翻译为验证,但为了和之前的验证区分,我在此翻译成确认。
对于刚进入芯片设计领域的童鞋,经常被这三个概念迷惑,很难区分,我曾经也是,因此,在这里把我理解的异同点在这里写一下,不一定准确,希望对某些童鞋有用。
验证(Verification),确认(Validation),测试(Test)的最终目的是一样的,都是减少设计中的缺陷,保证设计的质量,可以算是QA的环节(不过貌似现在QA几乎就是指测试了),不同点的是,他们是在不同的层次,由不同的人进行的工作。
验证(Verification)一般是在硅前的rtl设计阶段进行的,一般也是由rtl设计人员负责的。其目的是让设计符合设计者所想的,粒度也比较细,一般前期是分模块的,不同的模块由不同的设计人员进行,后期才会将所有模块连起来联调。由于这时候只有rtl,需要用软件仿真来模拟最终的硬件行为,速度很慢,因此用于验证的向量规模都比较小,即便如此,在整个设计周期中,验证所占的时间也非常可观,对于这一点,作为一个做设计和验证的码农,我深有体会,把rtl写出来,简单,把rtl验证好,那是非常地难。
确认(Validation)是由结构设计者完成的(这是我的理解,不知对否),一般是对设计的功能进行验证,即确认设计能否实现某种功能。其粒度(功能级)较验证(一般为模块级)要粗一些,时间也短一些。
测试(Test)一般是在硅后(Post-silicon)完成的,有专门的测试人员完成,粒度最粗,一般是系统级(其实验证也会在系统级进行,但由于是硅前的,规模非常非常的小)。并且由于已经有了硬件平台,测试速度大大提高,因此规模也比较大,具体的可看之前关于测试的文章。
一般来说,芯片设计会有专门的验证(也负责设计)和测试人员,但没有专门的“确认”人员,就像龙芯有验证组和测试组,但没有“确认”组。
比较复杂的芯片,如处理器,验证与测试已经占了整个芯片研发的大部分时间,一般来说,在一款芯片量产前,需要进行几次工程样片的流片,这些流片的主要原因都是测试中发现了缺陷,从而重新修改设计,重新进行验证(一般只验证修改的模块),重新进行测试(一般也是针对之前发现的缺陷,以及因为之前的缺陷无法进行测试的部分)。
这几天Intel Sandy Bridge 所用芯片组的缺陷的事情闹得沸沸扬扬,其比较早的说法如下:
The flaw, which is found in the comany’s recently released Intel 6-series “Cougar Point” chipset, could cause the Serial-ATA(SATA) ports within the chipset to degrade over time, according to Intel. This could potentially affect the performance or functionality of any hard drive, DVD drive, and other device connected to the SATA port.
上文的大概意思是Intel确认了其6系列(学名“Cougar Point”?)的芯片组存在缺陷。会导致SATA接口老化,会影响所有的SATA设备,如硬盘,DVD等。
作为一个以后很可能在芯片领域混的码农,对这件事还是比较关注的,但是,貌似具体的技术细节没有透露(当然,也可能是因为我搜索能力不行),但可以肯定的是,除了设计者外,测试者的责任最大。因此,在这里,顺便谈谈芯片中的测试:
在现代的芯片设计中,质量保证(Qualification assurance,QA)的两个重要环节是验证和测试,验证一般和设计同步进行,并且一般是硅前的。而测试,往往是硅后的,是工程样片回来后进行的,是芯片投入市场-量产前的最后一道QA程序。
测试的目的就是保证产品不存在或者尽量少存在缺陷(fault),其基本方法就是通过大量的测试向量来发现缺陷从而进行修复。因此,测试向量的好坏直接关系到测试的质量,评价测试向量的两个主要指标有测试向量的覆盖率(Coverage)以及测试向量的大小。覆盖率直接关系着测试的质量,覆盖率越高,意味着测试越充分,被测物未测出的缺陷越少;测试向量越小,意味着测试所需要的时间越少,从样片到量产的时间越短,对一个商业公司来说,这也是非常重要的,提早一个月发布往往意味着抢占了市场先机。在当今的学术界和工业界,测试向量生成一直是一个热门的话题。
另外一个缩短测试时间的方法是提高测试本身的可测性,包括可控制性和可观测性,这需要额外的可测性设计,具体见之前的可测性设计DFT。