阅读 39

如何做UAT的自动化测试

什么是UAT?

用户验收测试是部署软件之前的最后一个测试操作。在软件产品完成了单元测试、集成测试和系统测试之后,产品发布之前所进行的软件测试活动。它是技术测试的最后一个阶段,也称为交付测试。验收测试的目的是确保软件准备就绪,并且可以让最终用户将其用于执行软件的既定功能和任务。

UAT 特点

  • 验证在真实场景中软件产品的功能表现。
  • 测试范围广,UAT力求全面覆盖整个产品,这是使验收测试任务自动化变得如此困难的因素之一。
  • 流程方面,UAT遵循系统测试。如前所述,用户验收测试是软件投入使用之前的最后一个测试阶段。
  • 自动化用户验收测试可以是回归测试的一部分,在主要版本发布之前,团队可以重新运行UAT套件。

执行UAT的必要性

可能你会觉得软件经历了单元、集成和系统测试,验收测试的需求就显得多余了。但是还是需要进行验收测试,因为:

  • 开发人员根据需求文档编写软件,需求文档是他们对需求的“自己”理解,实际上可能不是客户需要的东西。
  • 项目过程中的需求变更可能无法有效地与开发人员进行沟通。

何时执行UAT

在整个软件开发的生命周期中,用户验收测试对应的是需求评审阶段。

UAT执行标准

  • 业务需求必须是可用的。
  • 代码开发全部完成。
  • 完成单元测试、集成测试和系统测试。
  • 没有中,高级的功能缺陷。
  • 在UAT之前,只有外观错误是可接受的(页面样式或者文字拼写)。
  • 回归测试应该在没有重大缺陷的情况下完成。
  • 所有已知的缺陷都应该在UAT之前进行修复和测试。
  • UAT环境必须准备好。
  • 来自系统测试团队的邮件或通信,确认系统已准备好执行UAT。

如何执行UAT

UAT也是用户熟知的Beta测试,这种类型的软件测试通常在客户场所执行,由系统或软件的使用用户来完成。一旦满足了UAT的执行标准,测试人员需要完成以下任务:

UAT 执行流程

  • 业务需求分析
  • 创建UAT测试计划
  • 确定测试场景
  • 创建UAT测试用例
  • 测试数据的准备
  • 运行测试用例
  • 确认业务目标

手工测试是进行UAT的正确方法吗?

在一个典型的项目中,手动运行预发布的UAT测试套件可能需要2-3个测试人员一周的时间。随着项目的增长,运行用户验收测试所需的时间也在增加。在某种程度上,交付频度不断提高的压力使公司跳过一些UAT运行或完全放弃UAT。

很少有QA团队真正用自动化做验收测试。据统计(TestDrive UAT),只有大约3%的软件测试团队自动化了UAT过程。虽然这些数字可能不够精确,但它们确实说明了一个目前的状况:对于大多数团队来说,大多数UAT还是依赖于手工测试。

为什么自动化在用户验收测试中普及率比较低呢?根据我在很多团队中看到的情况,由于测试团队编码能力有限,写出的代码不够健壮或者根本写不出来自动化代码,代码能力成为测试团队的主要瓶颈。

自然语言驱动UAT

测试人员平时写了很多测试用例,测试用例作为自然语言可以被所有用户理解。测试人员可以从UAT测试的角度,将测试用例抽离出来组成不同的UAT场景。

Cucumber (github.com/cucumber/cu…) 作为行为驱动框架可以将用例与代码结合起来进行自动化UAT。作为测试人员可以将UAT用例编辑到feature文件中,在对应的步骤上实现自动化脚本操作。例如下面的场景:

场景: 购物车结算
假如打开浏览器并导航到"https://cuketest.github.io/apps/shopping-cart/"
当点击添加到购物车按钮
那么此时按钮文字应该为"Sold Out"
而且弹出账单 "Total: $4.99"
复制代码

上面用例可以轻松转为UAT测试场景,借助CukeTest(cuketest.com)工具,可以方便的编辑基于gherkin标准的场景描述,并将这些场景与自动化代码关联起来,实现UAT自动化。

进行UAT测试,直接点击运行项目,就可以自动化运行,并且在运行过程中,会在桌面上直接显示字幕,显示当前运行到哪个场景及哪个操作步骤,方便了解UAT进度。

运行结束后,可以自动生成报表文件,查看整体的运行结果。

此外它还能在执行过程中录制UAT自动化操作的视频,方便在必要的时候重新查看操作过程诊断问题。

UAT涉及的应用类型很多,如Windows应用、Web、API、移动应用、WPF、Qt、Java等,同时在一个脚本中操作多种类型的应用。或者要在多平台下执行,如Windows、Mac、Linux。幸运的是,CukeTest作为UAT自动化测试工具对这些平台都有支持。详情可查看之前的文章Node.js开发多端自动化步骤详解(Windows,Mobile,Web)。你只要掌握流行的JavaScript语言,就可以对所有的应用类型做UAT测试了。

关注下面的标签,发现更多相似文章
评论