暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

【译】测试中的验证和确认

原创 剩余价值 2022-05-19
2370

原文地址:https://dzone.com/articles/verification-and-validation-in-testing

原文作者:普里扬卡·查拉克

 

尽管它们听起来相似,但它们具有不同的含义,具体取决于您在软件开发和测试过程中作为测试人员/开发人员打算做什么。

介绍

你是在正确的地方!这不是一个免费的词汇构建课程,而是对软件测试领域中关于验证和确认的广受欢迎的辩论的批判性评估。为什么我们需要知道验证和验证之间的区别?尽管它们听起来几乎相同,但它们具有不同的含义,具体取决于您在软件开发和测试过程中作为测试人员/开发人员打算做什么。他们在解决问题的过程中齐头并进。但是,关于软件测试的这两个词的含义存在很多混淆。虽然互联网上各个领域可能对这些术语有很多定义,但在这里我们将在测试空间中查看这些术语并详细分析这两个术语。

验证与确认

软件测试是一个广阔的领域。它涉及为解决不同的软件测试问题而提出的各种方法和过程。验证和确认也是软件测试中同一组的一部分。在软件开发和测试的背景下,它也被称为 V 模型(验证和验证模型)。

什么是验证?

软件工程标准 IEEE-STD-610 将 验证定义为:

“一项系统测试,以证明它在其开发的特定阶段满足其所有指定要求。”

让我们试着理解这个定义。应用程序构建过程从验证一组概述的规范开始。因此,验证可确保在应用程序开发开始之前处理所有规范。
简单来说,验证就是测试您的软件产品是否满足您在开发初始阶段指定的条件。它包括为构建所需的软件产品而采取的所有操作,例如检查规范文档,确保其符合代码逻辑,检查代码审查,进行狭义检查,设计分析,走查,静态测试等。验证更多在产品仍处于开发阶段时完成的内部过程,与在产品完成后执行的验证不同。验证过程消除了开发初期的错误,以确保产品的可靠性。验证以预测的方式分析应用程序的完整设计。一旦开发完成,此分析将作为输入/输出功能成功运行的基础。它还分析了产品设计的准确性和合格程度。最好执行单元测试和系统测试,以验证软件代码是否遵循单元规范以及模块是否连接为一个完整的系统。

什么是验证?

现在让我们通过IEEE-STD-610来理解Validation的定义:

“一项确保满足最终产品利益相关者的真实需求和期望的活动。”

一旦构建了产品的一部分或整个应用程序,就会执行验证过程。验证确保采取必要的步骤使产品按计划进行。验证通常使用回归、用户、性能和其他、用户测试、性能测试等进行。当用户与问题解决者(开发人员)之间存在不适当或缺乏沟通时,就会出现与验证相关的问题。这就是为什么开发人员必须使用验证来检查构建的产品是否满足用户需求以及他们对产品的接受程度,并确保整个系统能够正常运行以满足这些需求。通常,各种公司通过向最终用户展示他们的软件产品并获得他们的反馈来检查他们对结果的接受程度来进行验收测试。

验证和确认比较

                                                  图 1 验证与确认对比


验证和确认是软件测试中使用的两个关键词。有时它们可以互换使用,但它们彼此不同。这两个术语都是 V&V 模型(验证和有效性)的一部分,它们试图实现两个主要任务:

  • 从开发者的角度检查产品:检查产品是否符合要求。它还显示了开发人员对最终产品的看法。
  • 从消费者的角度检查产品:它检查产品是否适合客户的使用。它包含消费者如何看待最终产品。

验证和确认之间的区别主要在于规范的作用。验证过程是为了验证软件产品是否按预期捕获了客户的需求或是否符合预定义的规范;验证确保产品经过精心设计以负责任地满足规格或产品是否正确制造。验证会仔细检查提议的系统,以检查其满足现实世界需求的能力。
围绕验证与验证的争论一直很盛行。因此,让我们借助比较图表仔细看看 Verification 和 Validation 之间的区别:


差异的关键点确认验证
问题它回答我是否能够构建正确的产品?我是否能够以正确的方式做出需要的东西?
定义是在不同开发阶段对系统/软件产品进行评估的过程,以确定它是否符合规范这是一个在开发周期结束时对系统/软件产品进行评估的过程,以确保其构建是否满足最终用户的要求
客观的确保产品按照规定的要求和设计进行开发。如果偏离规范,在开发本身的第一阶段采取纠正措施根据用户要求,检查以确保产品开发正确。如果不符合要求,则应重新构建/调整,直到达到用户接受的水平
编码要求不需要代码执行需要代码执行
方法类型它是一种静态方法,其中验证有关产品的所有第一阶段文档和文件,并且在此过程中不涉及/最少编码这是一种动态方法,其中实际产品在其不同的构建阶段直接进行测试。它也是动态的,因为它涉及代码的执行
活动验证过程包括计划、走查、检查、产品开发和规格审查、案头评估等活动。验证涉及黑盒测试、白盒测试、非功能测试等活动,以确保将无错误的产品交付给客户并且产品符合规格
活动度涉及低级活动涉及高级别的活动
目标软件应用、规范、设计、架构实际建造的产品
演员验证由软件测试人员执行验证需要执行测试的软件开发人员和在需要时协助开发人员的软件测试人员
执行令验证/质量保证在开发初始阶段验证之前进行在软件开发结束的验证之后进行验证/质量控制
方向验证是面向过程的验证是面向产品的
涉及成本涉及成本低涉及成本高
错误检测阶段它可以在开发的开始阶段就检测到错误仅在构建产品后才检测错误
特征早期错误发现、准确快速验证等。鲁棒性、精确性、包容性等。
人为干预主要是手动执行它涉及积极需要计算机系统干预的编码和程序执行。不过,与此同时,程序是由人编写的。因此,它涉及人和机器
内部/内部验证是开发和生产的内部过程验证是一个外部过程,需要利益相关者接受所构建的产品。

                                                            图 2 对比图


何时使用验证和确认?

验证和验证之间的差异可能让我们大致了解它们在性能方面的差异。但同样值得注意的是,这两个过程需要一起执行,以最大程度地明确应用程序与初始开发阶段制定的规范的符合程度。共同运作可确保实现预期目标,并成为质量管理的重要组成部分。

您的软件产品可能会清除验证过程。尽管如此,它还是没有通过验证阶段,这意味着产品可能已经满足了在验证阶段计划的所有规范和要求。但是,规格不足以满足最终用户的要求。因此,它们对于提供 360 度质量概览至关重要。

结论

验证和验证这两个词经常可以互换使用,但是这两个术语在很多方面是不同的。总结验证与验证的辩论并使其更简单。请注意,前者主要涉及验证和审查将导致构建预期软件的活动。后者包括执行负责开发正确产品的实际测试活动。即使验证和确认之间存在差异,它们也可以相互补充。它们应该一起执行,以深入了解产品的整体质量。





「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论