【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

如何做自动化测试?

  • 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:002504
用户头像

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

关注

评论

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

低代码开发,改变数字化游戏规则

伤感汤姆布利柏

华为云CodeArts Build-云端化的编译构建平台

华为云PaaS服务小智

华为云 华为开发者大会2023

阿里云通义大模型家族迎来新成员,通义万相已开启定向邀测~

新云力量

AI 2023人工智能大会 科技改变生活

机器学习洞察 | 降本增效,无服务器推理是怎么做到的?

亚马逊云科技 (Amazon Web Services)

机器学习

【文件管理】Linux系统-cp命令 – 复制文件或目录

百度搜索:蓝易云

Linux centos 服务器 云服务器 ECS

引领AI浪潮:低代码开发平台点燃数智时代,释放人工智能的巨大潜力!

快乐非自愿限量之名

人工智能 低代码 AI赋能

C++实现读写ini配置文件

二哈侠

数智之潮下的移动生态: AI与低代码平台的完美交融!

不在线第一只蜗牛

移动应用 低代码 数智化 AI赋能

给大模型持久记忆!GitHub 2万星向量数据库云服务升级,国内云产品下周上线

Zilliz

云服务 Zilliz 向量数据库 zillizcloud

OpsGPT 智能运维大语言模型业界首发

乘云 DataBuff

APM 可观测性 AIOPS Dynatrace Datadog

阿里云AI绘画创作大模型通义万相亮相,已开启定向邀测!

新云力量

AI 2023人工智能大会 科技改变生活

解决CentOS yum源失效问题.

百度搜索:蓝易云

Linux centos 云服务器 香港VPS服务器 蓝易云

Centos更新升级内核命令-以及区别.

百度搜索:蓝易云

Linux centos 云服务器

iOS打包IPA教程

雪奈椰子

跨功能需求(CFR)/ 非功能性需求(NFR)的目标设定

码猿外

技术管理 非功能性需求 跨功能需求

Linux系统使用cpulimit对CPU使用率进行限制

百度搜索:蓝易云

Linux 服务器 云服务器 蓝易云

🎉号外号外!OpenTiny 将在HDC华为开发者大会正式发布!

Kagol

开源 前端 OpenTiny UI组件库

代码随想录Day10 - 栈与队列(上)

jjn0703

QEMU之CPU虚拟化(一):CPU虚拟化介绍

Linux内核拾遗

虚拟化 qemu kvm

宝塔面板Nginx开启Brotli压缩,提升网站加载速度-【给网站提提速】

百度搜索:蓝易云

Linux CDN 云服务器 压缩 宝塔面板

手把手教学小型金融知识图谱构建:量化分析、图数据库neo4j、图算法、关系预测、命名实体识别、Cypher Cheetsheet详细教学等

汀丶人工智能

人工智能 深度学习 nlp 知识图谱 命名实体识别

一文囊括Ceph所有利器(工具)

hs_wu

云计算 分布式存储 Ceph

2023-07-07:给出两个字符串 str1 和 str2。 返回同时以 str1 和 str2 作为子序列的最短字符串。 如果答案不止一个,则可以返回满足条件的任意一个答案。 输入:str1 =

福大大架构师每日一题

Go 算法 rust 福大大架构师每日一题

做大模型不要沉迷有趣,要解决企业问题

新云力量

AI 2023人工智能大会 科技改变生活

【磁盘管理】fdisk命令 – 管理磁盘分区

百度搜索:蓝易云

Linux 命令 云服务器

【文件管理】Linux系统-ls命令 – 显示指定工作目录下的文件及属性信息

百度搜索:蓝易云

Linux 服务器 云服务器 蓝易云 ls

GeaFlow图计算快速上手之PageRank算法

TuGraphAnalytics

PageRank 图算法 图计算 图论 GeaFlow

AI重塑千行百业 华为云发布盘古大模型3.0和昇腾AI云服务

华为云开发者联盟

人工智能 华为云 华为云开发者联盟 企业号 7 月 PK 榜

金融时间序列预测方法合集:CNN、LSTM、随机森林、ARMA预测价格(适用于时序问题)、相似度计算、各类评判指标绘图(数学建模科研适用)

汀丶人工智能

人工智能 数据挖掘 机器学习 数学建模 LSTM

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