【AICon】AI 基础设施、LLM运维、大模型训练与推理,一场会议,全方位涵盖! >>> 了解详情
写点什么

百度技术沙龙第 4 期回顾:Web 测试自动化(含资料下载)

  • 2010-07-28
  • 本文字数:2304 字

    阅读完需:约 8 分钟

在 7 月 24 日 InfoQ 和百度联合举办的第 4 期百度技术沙龙活动上,来自百度的工程师孙景卫和 ThoughtWorks 的工程师张晓庆分别和与会者分享了测试相关的话题,包括百度研发团队在 Web 测试自动化方面的尝试和实践,以及测试驱动开发实战。本次活动还增设了促进交流的 OpenSpace 环节,让“每一个人都是讲师”!

在孙景卫的演讲中,他从 Web 测试自动化的目标谈起,认为让测试自动化并不是为了赢得老板的赞赏,或者认为这是一个很潮的技术,不用就会落后,而是为了网站的质量。随后他介绍了测试自动化的原理,包括感性的时间和空间,记录鼠标键盘的动作;利用如 Http 协议和 Web 服务协议进行测试;或者直接操纵页面控件,如利用 JavaScript 操纵 Dom 等。在分享百度研发团队在测试自动化方面的一些实践时,孙景卫重点介绍了常用的测试工具 Selenium,以及做测试时需要重点考虑的一些地方:

  • 要尽量避免 UI 测试:其原因是 API 和功能层级来说更加稳定,而且其自动化和维护的成本都比较低。在 Google 内部,测试就有一个 721 原则,即 70% 的测试工作集中在底层接口测试和单元测试,20% 的测试工作为集成测试,其他 10% 的测试即为界面测试;
  • 在测试 Case 时,不要试图自动化所有的 Case,另外可以考虑使用 Ipython 等工具来半自动化自己的测试;
  • 在处理业务变更时,利用 ID/Name 定位元素设定 UI Map,向开发团队展示自动化成果和开发约定规则。

最后,孙景卫还介绍了如何设计一个好的模式或者框架来让测试自动化更加便捷,包括要对业务进行分层,关注数据存储和数据驱动,重视 DRY/WET 原则,以及要能够对结果进行验证等。在提问环节,有听众问如何设计 Case,以及当某个 Case 位置变更的时候,应该如何处理,孙景卫分享了百度在设计 Case 时常用的原则:

一般情况下,我们写 Case 的时候倾向于 Case 之间是没有关联的,但是这种情况很难做到,这是我们努力的一个方向。我们希望一个 Case 在执行的时候,它自己能够将初始化和结尾的工作先做好,A Case 和 B Case 不应该有关系,B Case 的成功与失败不应该依赖于 A Case 的成功与失败,一个好的 Case 应该这样设计。但是有时候 A Case 做完,我们需要先添加一个用户,然后再删除这个用户,这种情况下,如果没添加就去删除,则是失败的,两者之间存在一种依赖关系。在这种设计的情况下,有一个解决的思路是支持 Case 间的依赖,你可以定义一个标签去说明某个 Case 依赖于其他的 Case,这样就先执行被依赖的 Case,然后再执行这个 Case,确保了执行的顺序。

也有与会者提到如何使用 Selenium 来对不同的浏览器进行兼容性测试,以及百度的自动化测试率能达到多少,孙景卫的观点是:

Selenium 本身设计上是比较适合做兼容性测试的,但实际上效果并不是那么好,可能会有各种各样的问题,比如对 JavaScript 的支持不同,可能会导致在 Firefox 上运行是 OK 的,在 IE 上运行可能就会失败。兼容性测试方面并没有一个比较好的方法,还是要用 Selenium 来做,虽然它对非 Firefox 浏览器有时候支持的不好,但基本还是可以做的。如果你能提取几个主流的浏览器,比如 Firefox 和 IE,其他的浏览器暂时不关注的话,就可以针对性地设计一些 Case。 至于百度的自动化测试率,各个开发小组的数据是不一样的,但估计不是很高。在 2008 年我们大批做的时候,这个数据达到过 60%~70%,但是现在这个数据已经下来了,估计是 30% 这个级别。我们对这个数据本身已经没有太多的强制要求,有的组可能适合做自动化测试,数据可能高一些,有的组不适合,可能就低一些。

在 ThoughtWorks 工程师,也是 InfoQ 中文站敏捷社区编辑张晓庆的“测试驱动开发(TDD)实战”演讲中,他主要结合代码演示介绍了 TDD 的一些原则,包括:

  • 自上而下的驱动
  • Web 测试要先列出应用场景
  • 要先写测试,哪怕是 Bug
  • 测试即文档
  • 与 QA 讨论测试场景
  • TDD 与语言无关
  • TDD 不是玩具

在会后部分参会者所写的博客中,详细记录了两位分享嘉宾演讲的一些要点,比如 YanHua 的“测试专题活动和奇遇咖啡的 rails 活动小记”以及 sunway00 的“参加 Web 测试自动化与 TDD 应用的沙龙心得笔记

  • WEB 自动化测试只是给基本的业务流程提供一个安全网,主要目的不是发现 bug 的,覆盖率不高,有些人工更方便的使用人工测试好了。从提问的环节得到的信息,其实百度各个组对于 WEB 自动化测试的覆盖率没有硬性的要求,好一点的可能达到 20-30% 的样子;
  • 尽管 TDD 强调在编写任何功能代码前都要先写测试,不过对于 WEB 测试来说由于运行一次的代价比较大,所以可以先在 TestCase 里列出场景,而不写任何测试代码,这样先让这个 TestCase 作为一个文档的作用存在;
  • 通过测试和上层方法进行驱动开发。比如你写 Action 测试时发现需要跳转首页的方法,就驱动在 Action 建立 toIndex()方法。在 Action 发现你需要 Service ,就建立 Service 对象,利用 IDE 的辅助提示功能,快速的进行驱动开发。
  • ……

为了让参会者能够有更多的时间进行相互的交流,本次活动在最后的 1.5 小时中设置了 OpenSpace(开放空间)环节,将大家分成不同的小组,然后自己选择组长自己选择话题,然后和其他人员进行分享。从而让每个人都有发言的机会,“每一个人都是讲师”,并能在相同的单位时间内聆听到关于一个话题更多的观点,更靠近百度技术沙龙所强调的“交流”和“争鸣”目的。这一环节的效果,正如一位参会者会后在网易论坛中对这次活动的图片报道中写到,“真是很活跃丰富的沙龙活动,互动性很强,是我最喜爱的交流方式!希望百度延续这样的方式,给大家一个自由的交流平台。”关于 OpenSpace 环节的讨论,InfoQ 随后会有更深入的总结,本次活动的演讲资料下载链接为:百度技术沙龙第 4 期(7 月 24 日)演讲资料下载

2010-07-28 21:264667

评论

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

中小企业如何以最低成本数字化?华为云耀云服务器L实例给出完美答案

平平无奇爱好科技

Kubernetes 漫游:理解 ConfigMap

Phoenix

Kubernetes, 云原生, eBPF

高效率低成本!网站开发还得仰仗华为云这款宝藏工具

平平无奇爱好科技

降维打击_友商_?华为云这款轻量应用服务器性能全面升级

平平无奇爱好科技

跨境电商网站旺季爆单崩溃?华为云这款轻量应用服务器值得拥有

平平无奇爱好科技

穿越经济寒冬,华为云这款轻量应用服务器助力企业破局新生

平平无奇爱好科技

数字化尽头是轻量应用服务器,华为云耀云服务器L实例打开无限可能

轶天下事

小程序游戏卡的“掉渣”,华为云耀云服务器L实例助你重回丝滑体验!

YG科技

2023年双11大促,华为云耀云服务器最佳抄底时间来袭!

YG科技

年终企业采购潮来袭!华为云这款轻量应用服务器值得入手

轶天下事

从职场到创业,请查收华为云这份高效创业指南

YG科技

轻量应用服务器领域,这款产品何以被冠“国民级”美誉

平平无奇爱好科技

全面宣战!华为云耀云服务器L实例推出更强规格

YG科技

2023双十一爆单攻略,中小跨界商家别错过华为云捞金最佳机遇.

YG科技

企业ERP实施仍存三大难点,华为云耀云服务器L实例助力破局

平平无奇爱好科技

“跨”入蓬勃生长新时代,华为云耀云服务器L实例赋能跨境电商

平平无奇爱好科技

还迷信传统服务器开发小程序游戏?华为云耀云服务器L实例才是“正道”

平平无奇爱好科技

电商网站防崩溃秘诀来袭!华为云这款轻量应用服务器稳赚不赔

轶天下事

年终项目抢进度?华为云这款轻量服务器全面冲刺全年目标

轶天下事

“出海”在即?华为云这份跨境电商运营指南让新手商家少走弯路

平平无奇爱好科技

小程序游戏如何选择服务器?华为云轻量服务器重塑体验

轶天下事

双11电商节未“战”先“卡”?华为云这款轻量应用服务器是时候亮出“必杀技”

轶天下事

项目开发冲刺难度大?华为云这款轻量应用服务器助力大好“收官战”

平平无奇爱好科技

跨境电商网站运营最苦岗位?华为云这款轻量应用服务器轻松胜任

平平无奇爱好科技

小程序开发更吸“金”,华为云这个轻量应用服务器功不可没

YG科技

Amazon EC2 新手初探:初始设置之密钥对

王强

亚马逊云服务 Amaozn EC2

同程面试:说一下多态的实现原理?

王磊

Java 面试 java面试

内卷出奇迹!华为云耀云服务器L实例凭实力成为_卷王_

平平无奇爱好科技

年底续费服务器太贵?华为云这款轻量应用服务器正是最佳入手时候

轶天下事

不让竞品活了?华为云这款轻量应用服务器更强规格来袭!

YG科技

Java基础面试题【分布式】Kafka

派大星

Java 面试题

百度技术沙龙第4期回顾:Web测试自动化(含资料下载)_Java_霍太稳@极客邦科技_InfoQ精选文章