写点什么

如何做自动化测试?

  • 2017-12-19
  • 本文字数:1905 字

    阅读完需:约 6 分钟

测试的自动化需要占用一些时间和精力。但如果开展的方式正确,这些投入物有所值。自动化不能过度,而是应按 Karishma Kolli 的建议,聚焦于需求和要求上。编写干净且易阅的代码,对于保持测试套件的可维护性是很重要的。

Karishma Kolli 是一位软件开发工程师。在 2017 秋季在线测试大会(Fall Online Testing Conference)上,Kolli 的报告关注了如何正确认识测试自动化。InfoQ 以问答、总结和文章覆盖了本次大会。

InfoQ 采访了 Kolli,内容涉及测试工具和技能、测试自动化,以及测试自动化中一些值得关注的进展。

InfoQ: 您对如何选取适合的测试工具有哪些建议?我们应该遵循什么原则?

Karishma Kolli:选择测试工具这一过程,主要依据的是你的业务或测试需求。例如,一些应用主要关注的是性能,但是对于其它应用,性能也许并非主要关注点。对于负载、UI 等,也是一样的。

测试取决于所针对的对象和业务影响。

在确定测试工具过程中,技能集的可用性、预算和时间因素也发挥了次要的作用。软件工作中总是具有时间线和截至日期。如果我们的时间线很紧张,那么我们可以选择一些更简单的事情,甚至是使用商业工具。

InfoQ: 不同类型的测试需要不同的工具。我们如何管理各种各样的工具和测试技能集?

Kolli:非常简单。一旦我们能理解并洞悉不同测试工具的需求,那么工具的管理就不是问题。既然我们能管理各种各样的开发工具和技能集,那么各种各样测试工具和技能集的管理也大同小异。

在“在敏捷项目中实施自动化测试之我见”一文中,Rajneesh Namta 介绍了为什么我们应该慎重决定哪些测试需自动化:

不要因为自动化而自动化。在添加新的测试之前适当的考虑可维护性和执行时间。每个加入到自动化测试集合的测试,都成为了产品基线的一部分,也需要同其他基线一样维护—在整个应用的生命周期中。添加复杂和难维护的测试,最终结果是减慢组内反馈循环,这个应当避免。

InfoQ: 团队应在测试自动化上投入多少时间?我们如何知道已投入了足够的时间,而非过多的时间?

Kolli:在一开始,测试自动化将占用更多的时间。但是一旦框架准备好了,我们将不必在此上投入过多的时间。通常,如果一个团队具有一到两名手工 QA 人员,那么一名 SDET(软件测试开发人员)就应该可以处理所有的自动化需求。当然,根据自动处理测试数量的不同,以及应用的不同类型,人员也会有相应的变化。

如果所有事情都是在 UI 上自动化进行的,那么所花费的时间机会比所需的时间更多。

在“在持续交付中加入自动化验收测试支持”一文中,Dave Farley 建议,我们不应该使用“UI 录制回放”(Record-and-playback)系统:

本质上,在 UI 录制回放系统中,测试的关注点是 UI,而不是用户所期望的系统行为。这也就意味着 UI 录制回放系统的测试关注点在于技术本身,而不在于系统行为。这就导致这样的测试用例总是很脆弱的,并且更容易由于目标测试系统中相对较小的改动而失效。因为从长远来看,它会带来很多额外的工作,因此我会避免使用这种测试。

InfoQ: 您对于在测试中使用 UI 录制回放系统怎么看?

Kolli:就我个人而言,我对录制回放并不感冒。对于我们大多数人而言,它和“一招鲜”的方法一样,在现实中并非能很好的适用。录制恢复并不能解决我们的剪裁需求。它们是最为片面的测试,将导致我们无法对自己的自动化测试套件建立信心。

InfoQ: 在测试自动化中,您有哪些主要的经验教训?

Kolli: 多年的经验使我意识到,人们非常容易沉溺于自动化中,并过度地开展自动化。

重在聚焦于需求和要求。

例如,如果我们的要求是测试一些对客户十分关键的区域,那么在这种情况下,我们不必将时间投入那些只有 2%的用户所使用的功能上。

如果我们需要同时支持一万名用户,那么我们不必测试一万一千名用户。

维护自动化套件可能听上去是一件不费吹灰之力的事情,但是随着代码量的不断增长,更新和维护代码变得越来越复杂。因此,编写干净而易读的代码是非常重要的。

我们往往忽视诸如报告和配置等微小的细节问题,但如果我们对这些微小的细节给予适当的关注,那么它们就会变成宝贵的资产。

InfoQ: 您认为在测试自动化中有哪些值得关注的进展?你期望在不久的将来测试自动化会是什么样的?

Kolli:每天都有越来越多的公司认识到自动化测试的重要性。测试自动化已经从在个人的本地计算机上做记录和回放,演进为在云上运行整个定制测试套件。

随着人工智能的发展,测试自动化将更为可靠和有效。一个我们所熟悉的例子就是 Siri 和 Google。通过学习和进化,它们实现了对语音差异的识别等功能。在软件开发中,人工智能可以使用同样的方式去识别代码模式、常见的错误区域等。

借助于人工智能,测试自动化将成为开发的一个组成部分。

查看英文原文: How Do We Automate Testing?

2017-12-19 18:002796
用户头像

发布了 391 篇内容, 共 138.8 次阅读, 收获喜欢 256 次。

关注

评论

发布
暂无评论
发现更多内容

OmniGraffle Pro 图表绘制工具 附 注册机 支持M1

繁星

OmniGraffle Pro 图表绘制

创享蜀都 创力澎湃|2023鲲鹏开发者创享日·成都站成功举办

科技热闻

Python 异常处理:try、except、else 和 finally 的使用指南

小万哥

Python 程序员 软件 后端 开发

自由职业者的心路历程:我是如何找到自我的

少油少糖八分饱

自由职业 副业 职场 工作 远程工作

终极秘诀:打破无代码状态的小方法

Immerse

小方法 敲代码

技术筑生态智联赢未来,第二届OpenHarmony技术大会圆满举行

科技热闻

【随意换装】基于 Svelte 与 Tailwind 的组件库 STDF 支持多主题配置

DUFU

JavaScript 前端 Svelte 组件库 Tailwind

2023-11-04:用go语言,如果n = 1,打印 1*** 如果n = 2,打印 1*** 3*** 2*** 如果n = 3,打印

福大大架构师每日一题

福大大架构师每日一题

第二届OpenHarmony技术大会隆重揭幕年度课题,为OpenHarmony技术发展指明方向

科技热闻

Vector Magic for mac(矢量图片转换工具)

展初云

Mac 矢量图 Mac软件

Mac电脑专业PHP集成开发推荐:PhpStorm 2023注册码激活版

mac大玩家j

php 开发工具 Mac软件

OpenHarmony:4.0 Release版本的开发数据

OpenHarmony开发者

Linux Vim三种工作模式

芯动大师

花了三年时间开发的开源项目,终于500 个 Star 了!快收藏

越长大越悲伤

开源

Maya 2024 for Mac(3D图形软件)

展初云

maya Mac软件 玛雅 3D图形

一图读懂k8s informer

良凯尔

云原生 k8s Serverless Kubernetes Client-go

CollageIt Pro mac (照片拼图软件) v3.6.12中文激活版

mac

苹果mac Windows软件 CollageIt Pro 拼图软件

EndNote 21 for Mac(文献管理软件)

展初云

Mac 文献管理 endnote

CodeWhisperer 的使用心得

亚马逊云科技 (Amazon Web Services)

Golang微服务框架居然可以开发单体应用?—— Kratos单体架构实践

golang 微服务架构 单体架构 Kratos #微服务

Nevercenter CameraBag Photo for Mac(照片滤镜软件) 2023.4.0完整激活版

mac

苹果mac Windows软件 Nevercenter CameraBag 照片滤镜软件

Amadine for Mac 矢量图设计工具 完美兼容M1

彩云

矢量图设计 Amadine下载

助力鸿蒙生态建设|坚果派6位华为HDE以及若干成员喜获HarmonyOS专业证书

坚果

鸿蒙 HarmonyOS OpenHarmony 坚果派

创意飞轮

俞凡

创业

支持M1、Capture One Pro 23 Mac 「raw图像处理工具」

繁星

图像处理工具 Capture One Pro 23

专业高效的视频编辑软件Premiere Pro 2023补丁激活版

胖墩儿不胖y

Mac软件 视频处理工具 视频编辑软件

OpenHarmony技术俱乐部亮相第二届OpenHarmony技术大会, 揭榜课题科研共建OpenHarmony

科技热闻

如何做自动化测试?_软件工程_Ben Linders_InfoQ精选文章