验收testing与functiontesting的区别?

验收testing和functiontesting之间的真正区别是什么?

每个的亮点或目标是什么? 我读到的所有地方都模棱两可。

在我的世界里,我们使用的术语如下:

functiontesting :这是一个validation活动; 我们是否build立了正确的工作产品? 软件是否符合业务要求?

对于这种types的testing,我们拥有涵盖所有可能情景的testing用例,即使这种情况在“现实世界”中不太可能存在。 进行这种types的testing时,我们的目标是实现最大的代码覆盖率。 我们使用我们可以在当时抓取的任何testing环境,只要可用,它不一定是“生产”的口径。

验收testing :这是validation活动; 我们build立了正确的事情吗? 这是客户真正需要的吗?

这通常与客户或内部客户代理(产品负责人)合作完成。 对于这种types的testing,我们使用的testing用例涵盖了我们期望使用该软件的典型场景。 这个testing必须在“类似生产”的环境中进行,在与客户使用相同或相近的硬件上进行。 这是当我们testing我们的“ilities”时:

  • 可靠性,可用性 :通过压力testing进行validation。

  • 可扩展性 :通过负载testing进行validation。

  • 可用性 :通过检查和演示validation客户。 用户界面是否按照自己的喜好进行configuration? 我们把客户品牌放在了什么地方? 我们有他们要求的所有领域/屏幕吗?

  • 安全 (也就是 安全 性,只是为了适应) :通过演示validation。 有时客户会聘请外部公司来进行安全审计和/或入侵testing。

  • 可维护性 :通过演示如何提供软件更新/补丁来validation。

  • 可configuration性 :通过演示客户如何修改系统以适应其需求进行validation。

这不是标准的,我不认为有一个“标准”的定义,因为这里的矛盾的答案表明。 对你的组织来说最重要的是你要精确地定义这些术语,并坚持下去。

我喜欢Patrick Cuff的回答。 我想补充的是testing级别testingtypes之间的区别,这让我大开眼界。

testing水平

testing级别很容易用V模型来解释,例如: 在这里输入图像说明 每个testing级别都有相应的开发级别 。 它具有典型的时间特征,在开发生命周期的某一阶段执行。

  1. 组件/unit testing=>validation详细devise
  2. 组件/单元集成testing=>validation全局devise
  3. 系统testing=>validation系统要求
  4. 系统集成testing=>validation系统要求
  5. 验收testing=>validation用户需求

testingtypes

testingtypes是一个特点,它侧重于一个特定的testing目标。 testingtypes强调您的质量方面,也称为技术或非function方面。 testingtypes 可以在任何testing级别执行。 我喜欢使用ISO / IEC 25010:2011中提到的质量特性作为testingtypes

  1. functiontesting
  2. 可靠性testing
  3. 性能testing
  4. 可操作性testing
  5. 安全testing
  6. 兼容性testing
  7. 可维护性testing
  8. 可转移性testing

完成。 还有一些东西叫回归testing 。 这是testing级别testingtypes旁边的额外分类。 回归testing是一个你想要重复的testing,因为它涉及到你的产品中至关重要的东西。 它实际上是您为每个testing级别定义的testing的子集。 如果您的产品存在小错误修复,则不会总是有时间重复所有testing。 回归testing是对此的答案。

testing问题和解决scheme之间的区别。 软件是一个问题的解决scheme,两者都可以被testing。

functiontesting确认软件在您解决问题的方式范围内执行function。 这是开发软件不可或缺的一部分,与大量生产的产品出厂前的testing相媲美。 functiontestingvalidation产品实际上是否像您(开发人员)认为的那样工作。

验收testing确认产品实际上解决了解决问题的方法。 这最好由用户(客户)完成,例如执行他/她的软件协助的任务。 如果软件通过了这个真实世界的testing,它被接受replace以前的解决scheme。 这种验收testing有时候只能在生产中正确地进行,特别是如果你有匿名顾客(例如网站)。 因此,只有在使用数天或数周后才能接受新function。

functiontesting – testing产品,validation它是否具有您devise或构build的品质(function,速度,错误,一致性等)

验收testing – 在产品的上下文中进行testing,这就要求(模拟)人类交互,testing它对原始问题具有预期的效果。

答案是意见。 我曾在很多项目中做过testingpipe理和问题pipe理,所有不同的angular色和各种书籍的描述都有所不同,所以这里是我的变化:

functiontesting:从functionangular度考虑业务需求并进行全面testing。

验收testing: “付费”客户进行他喜欢做的testing,以便他可以接受交付的产品。 这取决于客户,但是通常testing并不像functiontesting那么彻底,特别是如果是内部项目,因为利益相关方会审查并信任在早期testing阶段完成的testing结果。

正如我所说,这是我的观点和经验。 functiontesting是系统化的,验收testing就是testing事物的业务部门。

  1. 听众。 functiontesting是为了确保产生软件的团队成员能够做到他们所期望的。 验收testing是为了保证消费者满足他们的需求。

  2. 范围。 functiontesting一次只能testing一个组件的function。 验收testing涵盖产品在接受软件之前足以testing的任何方面(即任何值得花费时间或金钱来testing以确定其可接受性的东西)。

软件可以通过functiontesting,集成testing和系统testing; 只有当客户发现这些function不能满足他们的需求时,才能通过验收testing。 这通常意味着有人搞错了规格。 软件也可能会通过一些functiontesting,但是通过验收testing是因为客户愿意处理一些function性错误,只要软件能够完成他们需要的核心function(testing版软件通常会被一部分用户所接受是完全function的)。

functiontesting:应用从指定的function要求派生的testing数据,而不考虑最终的程序结构。 也被称为黑盒testing。

验收testing:进行正式testing以确定系统是否满足其验收标准 – 使最终用户能够确定是否接受系统。

在我看来,主要的区别是谁说如果testing成功或失败。

functiontestingtesting系统是否满足预定义的要求。 由负责开发系统的人员进行检查。

验收testing由用户签字。 理想情况下,用户会说出他们想要testing的内容,但在实践中,用户可能没有足够的时间投入,因此很可能是functiontesting的日落。 请注意,这个观点是从我处理其他用户的业务用户,例如航空和其他安全关键可能没有这种差异,

验收testing :

…是在交付之前在系统(例如软件,大量制造的机械部件或批次的化学产品)上执行的黑盒testing。

虽然这继续说:

它也被称为functiontesting,黑盒testing,发布接受,QAtesting,应用程序testing,置信度testing,最终testing,validationtesting或工厂验收testing

带有“需要引用”的标记。

functiontesting (实际上redirect到系统testing):

在一个完整的集成系统上进行评估,以评估系统是否符合其指定的要求。 系统testing属于黑匣子testing的范围,因此不需要知道代码或逻辑的内部devise。

所以从这个定义来看,他们几乎是一回事。

根据我的经验,验收testing通常是functiontesting的一个子集,在客户的正式签退过程中使用,function/系统testing将由开发人员/质量保证部门运行。

两者之间的关系:验收testing通常包括functiontesting,但可能包括额外的testing。 例如检查标签/文件要求。

functiontesting是指将待测产品置于testing环境中,在testing环境中,testing环境可以产生各种刺激(在testing范围内)目标环境通常产生甚至超出的范围,同时检查被测设备的响应。

对于物理产品(而不是软件),有两种主要的验收testing :devisetesting和制造testing。 devisetesting通常使用通过制造testing的大量产品样本。 不同的消费者可能以不同的方式testingdevise

当devise根据产品规格进行testing时,验收testing被称为validation,当产品被放置在消费者的真实环境中时,验收testing被称为validation。

验收testing只是由客户进行的testing, 包括其他types的testing:

  • functiontesting: “这个button不起作用”
  • 非functiontesting: “这个页面运行但是太慢”

对于functiontesting与非functiontesting(他们的亚型) – 请参阅我对这个SO问题的回答 。

他们是一样的东西。

系统在部署或交付之前,在完整的系统上执行验收testing,尽可能与真实的生产/部署环境相同。

您可以以自动方式或手动进行验收testing。