什么是UAT?
用户验收测试(UAT)是一种由最终用户或客户端执行的测试,用于在将软件应用程序移至生产环境之前验证/接受软件系统。UAT在功能、集成和系统测试完成后,在测试的最后阶段进行。
UAT的目的
UAT的主要目的是验证端到端业务流,是一种黑盒测试,其中将涉及两个或更多最终用户。
谁执行UAT?
- 客户端
- 最终用户

用户验收测试的需求
一旦软件经过单元、集成和系统测试,就会产生用户验收测试的需求,因为开发人员可能根据自己的理解根据需求文档构建了软件,开发过程中进一步需要的更改可能无法有效地传达给他们,因此为了测试最终产品是否被客户/最终用户接受,需要进行用户验收测试。
-
开发人员根据需求文档编写软件代码,需求文档是他们对需求的“自己”理解,实际上可能不是客户从软件中需要的。
-
项目过程中的需求变更可能无法有效地传达给开发人员。
验收测试与V-模型
在VModel中,用户验收测试对应于软件开发生命周期(SDLC) 的需求阶段。

用户验收测试的前提条件:
以下是用户验收测试的进入标准:
- 业务需求必须可用。
- 应充分开发应用程序代码
- 应完成单元测试、集成测试和系统测试
- 系统集成测试阶段无Showstopper、高、中缺陷-
- 在UAT之前,只能接受示意错误
- 回归测试应该在没有重大缺陷的情况下完成
- 所有报告的缺陷应在UAT之前修复和测试
- 应完成所有测试的可追溯性矩阵
- UAT环境必须准备就绪
如何进行UAT测试
UAT由系统或软件的预期用户完成。这种类型的软件测试通常在满足UAT的进入标准后,测试人员需要执行以下任务:

UAT工艺
- 业务需求分析
- 创建UAT测试计划
- 确定测试场景
- 创建UAT测试用例
- 测试 Data(Production like Data) 的准备工作
- 运行测试用例
- 记录结果
- 确认业务目标
步骤1) 业务需求分析
UAT中最重要的活动之一是识别和开发测试场景。这些测试场景源自以下文档:
- 项目章程
- 业务用例
- 工艺流程图
- 业务需求 Document(BRD)
- 系统要求 Specification(SRS)
步骤2) 创建UAT计划:
UAT测试计划概述了将用于验证和确保应用程序满足其业务要求的策略。记录了UAT的进入和退出标准、测试场景和测试用例方法以及测试时间表。
步骤3) 确定测试场景和测试用例:
识别与高级业务流程相关的测试场景,并创建具有清晰测试步骤的测试用例。业务用例是用于创建测试用例的输入。
步骤4) 测试数据准备:
最好的建议是使用UAT的实时数据。出于隐私和安全原因,应该对数据进行加扰。测试人员应该熟悉数据库流程。
步骤5) 运行并记录结果:
执行测试用例并报告错误(如果有)。修复后重新测试错误。可以使用测试管理工具来执行。
步骤6) 确认是否实现了业务目标:
业务分析师或UAT测试人员需要在UAT测试后发送签名邮件。UAT测试的交付内容包括测试计划、UAT方案和测试用例、测试结果和缺陷日志
UAT的退出条件:
在投入生产之前,需要考虑以下几点:
- 没有打开的关键缺陷
- 业务流程运行情况令人满意
- UAT签署与所有利益相关者的会议
UAT测试仪的素质:

UAT测试员应具备良好的业务知识。他应该是测试员,应该是分析性和横向思考者,并结合各种数据使UAT成功。
了解业务需求或流程的测试人员或业务分析师或主题专家可以准备对业务现实的测试和数据。
最佳实践:
要使UAT成功,需要考虑以下几点:
- 在项目生命周期早期准备UAT计划
- 在UAT开始之前准备核对表
- 在系统测试阶段本身进行UAT前会议
- 设定预期,明确UAT范围
- 测试端到端业务流,避免系统测试
- 使用真实场景和数据测试系统或应用程序
- 认为自己是系统的未知用户
- 执行可用性测试
- 在投入生产之前召开反馈会议
UAT工具
市场上有几种用于用户验收测试的工具,下面列出一些以供参考:
Fitness:作为测试引擎的java工具。创建测试很容易,然后执行测试并将输出返回给用户。
Watir:它是一个工具包,用于在用户验收测试期间自动执行基于浏览器的测试。Ruby是用于Ruby和Internet Explorer之间进程间通信的编程语言。
UAT的一些示例指南
- 大多数情况下,在常规的软件开发场景中,UAT都是在QA环境中执行的。如果没有转移或UAT环境
- UAT分为Beta测试和Alpha测试,但当为基于服务的行业开发软件时,就不那么重要了
- 当用户在更大程度上参与时,UAT更有意义
结论:
- 在软件工程中,UAT的完整形式是用户验收测试。
- UAT是过去25年里出现的多种测试方式之一。
- 使用UAT,可以确定从产品中“期待什么”,而不是假设。
- UAT的好处是,当产品投放市场时,不会有意外。