什么是用户验收测试 (UAT)?
什么是用户验收测试以及它是如何工作的?
测试是众所周知的,而验收表示批准或同意。在软件产品的背景下,用户要么是程序的消费者,要么是要求为其制作程序的人(客户)。
用户验收测试 (UAT),通常称为 Beta 测试或最终用户评估,是用户或客户测试软件以查看是否可以接受的过程。这是在完成功能测试、系统测试和回归测试后的最后阶段的测试。
此测试的主要目标是确保软件满足公司的需求。需要熟悉业务需求的最终用户来进行此验证。
何时执行?
这通常是产品上线之前或产品获准分发之前的最后阶段。在产品经过广泛测试后进行此操作(即系统测试之后)。
谁负责 UAT?
用户或客户——这可能是购买产品的人(对于商业软件而言),也可能是让软件服务提供商定制软件的人,或者如果程序提前提供给最终用户并请求他们的意见,则是最终用户。
团队可能由 Beta 测试人员组成,或者客户可以选择公司内部的 UAT 成员,以确保彻底测试每一个用户角色。
需要用户验收测试
开发人员和功能测试人员是确保程序满足功能需求的技术人员。他们利用他们的专业知识来理解需求并开发/测试程序(这就是领域知识的重要性)。
尽管此程序符合功能要求,但仍会忽略或误读许多只有最终用户才能理解的业务需求和流程。
此测试对于确定在程序发布供一般使用之前是否已满足所有业务标准至关重要。此测试是发布周期中必不可少的组成部分,因为它使用实际数据和实际用例。
许多因发布后问题而遭受重大损失的公司都了解成功的用户验收测试的价值。发布后解决缺陷的成本是发布前修复缺陷成本的几倍。
用户验收测试流程
理解此流程的最佳方法是将其视为一个独立的测试项目,包括规划、设计和执行阶段。
在开始规划阶段之前,必须满足以下先决条件:
1. 编译最重要的验收标准列表
简单来说,验收标准是在接受产品之前将要评估的项目列表。
这有两种类型:
应用程序的功能或与业务相关的问题——理想情况下,将测试每个关键业务功能,但由于各种因素(包括时间限制),这是不可行的。因此,与将参与测试的客户或用户进行一两次会议可能会让我们了解将进行多少测试以及将检查哪些部分。
合同的——我们不会讨论这个,QA 团队在此中的作用很小。评估最初的合同(在 SDLC 开始之前写出),并决定是否已履行合同的所有组成部分。
我们将只关注应用程序的功能。
2. 定义质量保证参与的范围
QA 团队的工作是以下之一:
不参与——这非常罕见。
协助测试——这是最常见的选择。在这种情况下,我们的参与可能包括教 UAT 用户如何使用应用程序,并在整个测试过程中随时待命,以确保我们可以在用户遇到任何问题时提供帮助。在其他情况下,除了待命和提供帮助外,我们还可以共享他们的回复并记录结果、记录问题等等,而用户则执行实际测试。
进行 UAT 并交付结果——在这种情况下,用户将指示他们希望检查 AUT 的哪些方面,而 QA 团队将进行评估。然后将结果提供给客户/用户,他们必须决定他们拥有的结果是否足够并满足他们的期望,以便采用 AUT。QA 团队永远不会做出最终决定。
我们根据具体情况选择合适的方法。
规划 UAT 测试
在系统阶段,该过程几乎与标准测试计划相同。
在大多数项目中,最常见的方法是同时为系统和 UAT 测试阶段做准备。有关更多信息和 UAT 测试计划示例,请参阅随附的测试计划文档中的 UAT 部分。
计划用户验收测试
UAT 测试计划包含日期、环境、参与者(谁)、沟通协议、角色和责任、模板、结果及其分析过程、进入退出标准以及其他重要内容。
我们有责任为这一阶段做好准备,并确保一切都被考虑在内,无论 QA 团队在此测试中是否完全参与、部分参与或根本不参与。
测试执行
如果可能,验收测试会在会议室或作战室环境中进行,用户、项目经理和 QA 团队成员都会聚在一起一两天,并完成所有验收测试用例。
如果 QA 团队正在运行测试,我们将对 AUT 执行测试用例。
完成所有测试并收到结果后,将做出验收决定。此决定也称为“Go/No-Go”决定。如果消费者满意,则为 Go;否则为 No-go。
此步骤通常以验收决定结束。
方法和工具
通常,此测试阶段使用的软件工具与功能测试阶段使用的软件工具相同。
工具
因为此步骤涉及测试应用程序的整个端到端流程,所以使用单个工具来彻底自动化此验证可能很成问题。但是,我们将能够在一定程度上使用在系统测试期间构建的自动化脚本。
用户将像使用系统测试一样使用测试管理和缺陷管理工具,例如 QC、JIRA 等。可以设置这些工具来收集用户验收阶段的信息。
方法
尽管传统方法(例如专门的业务用户对产品的 UAT)仍然适用,但在当今真正全球化的世界中,用户验收测试可能需要根据产品包含来自不同国家的各种消费者。
例如,来自世界各地的客户可能会使用电子商务网站。在这种情况下,众测将是最实用的方法。
众测是一种方法,来自世界各地的人们可以参与并验证产品的用途,同时还可以提供评论和建议。
许多公司已经构建并正在使用众测系统。该平台托管一个网站或一个需要进行众测的产品,用户可以自荐进行验证。然后检查并确定提供的输入的优先级。
众测已被证明更有效,因为可以轻松了解世界各地客户的脉搏。
敏捷环境中的 UAT
敏捷环境本质上更具动态性。在敏捷世界中,业务用户将在整个项目冲刺中参与,并且项目将根据他们的反馈循环进行改进。
项目初期,主要利益相关者将是业务用户,他们负责提供需求并更新产品待办事项列表。业务用户将在每个冲刺结束时参加冲刺演示,并准备好提供任何意见。
此外,在冲刺结束之前,将安排用户验收测试 (UAT) 阶段,在此期间,业务用户将进行验证。
在冲刺演示和冲刺UAT期间获得的输入将被编译并添加到产品待办事项列表中,该列表将定期进行评估和优先级排序。因此,在敏捷环境中,业务客户更贴近项目,并更定期地审查其效用,这与传统的瀑布式项目形成对比。
结论
用户验收测试并非针对网站、表单或按钮。甚至在测试开始之前,我们都默认所有基本组件都经过彻底检查并且运行良好。如果人们发现像这样的简单缺陷,这对QA团队来说是个坏消息。
此测试的重点是作为业务最重要组成部分的实体。
UAT 本质上是一种测试,这意味着在此阶段也极有可能发现一些缺陷。这种情况时有发生。除了给QA团队带来巨大的升级压力外,UAT问题通常需要召开会议来讨论如何解决,因为在此测试之后通常没有时间进行纠正和重新测试。