Data+AI时代,如何打造下一代数智平台? 了解详情
写点什么

如何做自动化测试?

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

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

关注

评论

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

喜讯!云起无垠获评“国家高新技术企业”认证

云起无垠

云起无垠荣获“北京市2024年第三季度专精特新中小企业”称号

云起无垠

百度智能云曦灵推出春节功能:一张照片即可生成拜年视频!

科技热闻

Byteman 使用指南(三)

FunTester

艺术藏品NFT的开发流程

北京木奇移动技术有限公司

软件外包公司 音乐NFT 体育NFT

艺术藏品NFT的开发流程

北京木奇移动技术有限公司

软件外包公司 音乐NFT 体育NFT

一次线上生产库的全流程切换完整方案

京东零售技术

后端

MES系统助力五金制品行业数字化转型

万界星空科技

制造业 mes 万界星空科技 五金行业 五金制品行业

区块链智能合约的优化

北京木奇移动技术有限公司

智能合约 区块链技术 软件外包公司

体育 NFT 项目的技术框架

北京木奇移动技术有限公司

软件外包公司 音乐NFT 体育NFT

音乐 NFT 项目的优化

北京木奇移动技术有限公司

软件外包公司 音乐NFT 体育NFT

从数据到决策,如何打造驱动游戏业务增长的数据引擎?

镜舟科技

游戏 分析型数据库 StarRocks 物化视图 实时分析

一文带你入门 MCP(模型上下文协议)

Se7en

MCP Server 开发实战:无缝对接 LLM 和 Elasticsearch

Se7en

《CPython Internals》阅读笔记:p336-p352

codists

CPython Internals

Kmesh v1.0正式发布!稳定易用的高性能Sidecarless服务网格

华为云原生团队

云计算 容器 云原生

腾讯面试:大厂必问消息队列场景面试题

王中阳Go

腾讯 消息队列 面试问题

DNS解析防护应措施有哪些?

国科云

职场新人如何设计职业规划

老张

职场成长 职业生涯规划 职场认知

1688 图片识别商品接口系列(1688 API)

tbapi

1688API 1688图片识别接口

牛牛剧场APP:不只是观看,更是投资未来的趋势

新消费日报

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