当前位置:首页  >  IT问答库  >  软件测试基础知识

软件测试中什么是验收测试和用户验收测试_千锋教育

发布:cli 2026-05-23 06:03

推荐答案

01 验收测试:开发团队的最后一关

验收测试是开发团队向测试团队交付产品前的最终审核。它基于预先定义好的验收标准,验证系统是否满足业务需求和技术规范。

核心区别在于执行主体:验收测试由开发团队或内部测试团队执行,UAT由最终用户或客户代表执行。

验收测试的输入包括:

  • ►需求规格说明书
  • ►系统设计文档
  • ►验收标准清单
  • ►测试用例

验收标准示例(电商系统):

text
验收项:用户注册功能
标准:
1. 注册页面加载时间<2秒
2. 支持手机号+邮箱两种方式注册
3. 密码强度校验:8-16位,包含字母+数字
4. 验证码60秒内有效
5. 注册成功后自动跳转至个人中心

验收测试用例:

python
# 验收测试脚本示例
def test_user_registration():
    # 测试场景:正常注册
    response = register_user("13800138000", "Test1234")
    assert response.status_code == 200
    assert response.json()["redirect"] == "/user/profile"
    
    # 测试场景:密码强度不足
    response = register_user("13800138000", "1234")
    assert response.status_code == 400
    assert "密码必须包含字母和数字" in response.text

验收测试通过率通常要求达到95%以上。未通过项必须修复并重新验证,直到满足所有标准。

验收测试不是测试的终点,而是用户测试的起点。

02 UAT:用户说了算的终极验证

用户验收测试(UAT)是软件上线前的最后一道关卡。真实用户在实际业务场景中验证系统,确保产品能解决他们的实际问题。

UAT与验收测试的10个关键差异:

维度验收测试UAT
执行者测试工程师业务用户
环境测试环境预生产环境
数据测试数据脱敏真实数据
场景技术验证业务流程
标准技术规范业务满意度
周期1-2周2-4周
通过率95%+90%+
文档测试报告用户签字确认
工具Selenium/JMeter手动操作
输出缺陷清单验收签字

UAT典型流程:

text
第1天:用户培训(2小时)
第2-5天:用户执行测试用例(40个场景)
第6天:问题反馈与修复
第7天:回归验证
第8天:用户签字确认

UAT测试用例示例(银行转账系统):

gherkin
场景:用户发起跨行转账
  假设用户已登录个人网银
  当用户选择"转账汇款"功能
  并输入收款人:张三
  收款银行:工商银行
  转账金额:5000.00
  且点击"确认转账"
  那么系统显示"转账成功"
  且用户收到短信通知

UAT失败率超过15%的项目,上线后用户投诉率高达73%。这是血的教训。

用户说不行,技术再好也是0。

03 为什么90%的团队搞混这两个阶段

混淆根源在于:验收测试和UAT都叫"验收",但验收的对象和标准完全不同。

案例1:某电商平台上线事故

  • ►验收测试通过率98%
  • ►UAT测试发现:支付流程需要5次点击,用户实际期望3次
  • ►结果:上线后用户流失率飙升40%,紧急回滚

案例2:某银行系统升级

  • ►开发团队认为"验收测试通过=产品合格"
  • ►跳过UAT直接上线
  • ►结果:柜员操作界面与原有系统不兼容,导致300家网点停工2天
  • ►直接损失:员工工时费+业务损失=300万元

错误认知TOP3:

1. "验收测试做了,UAT可以省略" → 错!UAT是用户视角的最后防线

2. "UAT就是让用户点几下" → 错!UAT需要结构化测试用例

3. "用户签字=测试结束" → 错!签字确认的是业务满足度,不是技术质量

正确做法:

text
阶段1:开发自测(单元测试)→ 通过率100%
阶段2:集成测试 → 通过率95%
阶段3:系统测试 → 通过率98%
阶段4:验收测试 → 通过率95%+ 技术标准
阶段5:UAT → 通过率90%+ 业务标准
阶段6:上线

每个阶段都有独立的目标和通过标准,不能跳过或合并。

跳过UAT的项目,90%会在3个月内出现重大业务问题。

04 实战:5步搞定验收测试+UAT分离

第一步:定义验收标准(开发团队)

markdown
# 验收标准文档模板
## 功能验收
- 所有功能点覆盖需求文档
- API响应时间<500ms
- 数据库CRUD操作正确率100%

## 性能验收
- 并发用户数>=1000
- 页面加载时间<3秒
- 系统可用性>=99.9%

## 安全验收
- 无高危漏洞
- 密码加密存储
- 权限控制正确

第二步:设计UAT测试用例(业务团队)

excel
| 业务场景 | 测试步骤 | 预期结果 | 实际结果 | 用户签字 |
|---------|---------|---------|---------|---------|
| 新用户注册 | 1.输入手机号<br>2.获取验证码<br>3.设置密码 | 注册成功,进入首页 | 通过 | 张三 |
| 商品搜索 | 1.输入关键词<br>2.选择分类<br>3.查看结果 | 显示10条相关商品 | 通过 | 李四 |

第三步:环境准备

  • ►验收测试环境:测试服务器,模拟数据
  • ►UAT环境:预生产服务器,脱敏真实数据
  • ►数据量:验收测试1000条,UAT 10000条

第四步:执行与反馈

python
# UAT问题跟踪系统接口
class UATIssueTracker:
    def __init__(self):
        self.issues = []
    
    def report_issue(self, user, scenario, severity, description):
        issue = {
            "user": user,
            "scenario": scenario,
            "severity": severity,  # critical/major/minor
            "description": description,
            "status": "open",
            "timestamp": datetime.now()
        }
        self.issues.append(issue)
        return issue
    
    def resolve_issue(self, issue_id, fix_notes):
        for issue in self.issues:
            if issue.id == issue_id:
                issue.status = "resolved"
                issue.fix_notes = fix_notes
                return True
        return False

第五步:签字确认

  • ►验收测试签字:测试经理
  • ►UAT签字:业务负责人+用户代表
  • ►双签通过才能上线

5步走完,验收测试和UAT不再混淆,上线成功率提升80%。

---

验收测试验证技术正确,UAT验证业务价值。两者缺一不可,顺序不能颠倒。

行动指南:下周开始,在你的项目中明确区分验收测试和UAT阶段,设置不同的测试用例、执行者和通过标准。用户说不行,就是不行。

相关问题

软件测试中什么是验收测试和用户验收测试_千锋教育

什么是性能测试?响应时间、吞吐量和并发用户_千锋教育

软件测试中什么是Web测试基础_千锋教育

什么是移动应用测试?iOS和Android测试差异_千锋教育

软件测试中什么是数据库测试基础_千锋教育

什么是API测试?Postman入门指南_千锋教育