《Google软件测试之道》—第2章2.4节与工具开发工程师Ted Mao的访谈

简介: Ted Mao是一位Google的开发工程师,但Ted的主要工作专注于测试工具的开发方面。特别要提到的是,Ted制作的Web应用程序方面的测试工具,所有的Google内部应用上都在使用。

本节书摘来自异步社区《Google软件测试之道》一书中的第2章2.4节与工具开发工程师Ted Mao的访谈,作者【美】James Whittaker , Jason Arbon , Jeff Carollo,更多章节内容可以访问云栖社区“异步社区”公众号查看。

2.4 与工具开发工程师Ted Mao的访谈
Ted Mao是一位Google的开发工程师,但Ted的主要工作专注于测试工具的开发方面。特别要提到的是,Ted制作的Web应用程序方面的测试工具,所有的Google内部应用上都在使用。Ted本身在SET这个圈子里也很有名气,一般情况下SET都对优秀工具有需求,否则效率就会非常低下。Ted可能是Google内部对通用Web测试基础框架最熟悉的人员。

HGTS:你是什么时候加入Google的?是什么吸引你来这里工作的?

Ted:我是2004年6月加入Google的。在那之前,我只在一些大公司里待过,像IBM和Microsoft,那个时候Google是最热门的创业型公司,吸引了大量非常有天赋的工程师加入。Google尝试去解决许多有趣且有挑战性的问题,我想参与进来,与这个世界上最优秀的工程师们一起去解决这些问题。

HGTS:你是Google缺陷管理库Buganizer(注:Buganizer是Google内部使用的缺陷管理系统,开源版本的Buganizer被称为问题跟踪工具,在Chromium项目中有使用,参见http://code.google.com/chromium/issues/list)的创建者。与之前的BugDB相比,Buganizer尝试去解决了哪些核心问题呢?

Ted:BugDB当时是在阻碍我们的开发流程的运转,而不是为之提供支持帮助。老实说,它浪费了许多宝贵的工程开发时间,这使得使用这个工具的团队负担更加沉重。它的问题表现在许多方面,像UI延迟、笨拙的工作流模式、在非结构化的文本字段中使用特殊字符串等。在设计Buganizer的时候,我们确保我们的数据模型和UI可以反应出用户的真实开发过程。在核心产品团队与集成过程中,这个系统通过使用扩展的模式,经受住了考验。

HGTS:你在Buganizer上做的非常出色。这真是我们用过最好的缺陷管理数据库了。你又怎么开始去搞Web自动化方面的测试呢?是你看到这方面有强烈的需求吗?还是有人请求你去帮助解决这方面的问题呢?

Ted:在为Buganizer、AdWords和其他Google产品工作期间,我经常发现已有的Web自动化测试工具不能满足我的实际需求,他们并不像我期望的那样快速、扩展性强、健壮且有用。当工具团队宣布去寻找这个领域的技术人才时,我抓住了这个机会。这方面的尝试就是我们知道的Matrix项目,而我是这个项目的技术负责人。

HGTS:如今有多少个测试团队在使用Matrix做测试执行?

Ted:这个取决于你如何度量测试的执行。例如,我们在使用的一个指标,我们称为“浏览器会话”。针对所有浏览器,每一次新的浏览器会话都会保证从同样的状态开始运行。这样的话,在这个浏览器上运行的测试只由测试本身、浏览器和操作系统来决定,其行为也就是可以确定的。Matrix在Google的每个Web前端团队都有实践应用,每天提供大于一百万个新浏览器会话。

HGTS:Buganizer和Matrix这两个项目,曾有多少人为之工作?

Ted:在项目开发高峰时期,Buganizer有5个工程师,Matrix有4个工程师。当时我们的团队本可以拥有更多的人,让团队存活地更长久一些。虽然这令我有些伤感,但我觉得在当时的情况下我们已经做的足够棒了。

HGTS:在你打造这些工具的时候,你面临过的最难的技术挑战是什么?

Ted:对于我而言,我认为最艰难和最有趣的挑战总是出现在设计阶段。理解一个问题领域,权衡不同的解决方案和它们的利弊,并从中选一个最优的方案。实现阶段一般按照选定的方案去做即可。这样的选择决定和功能实现一样会贯穿项目的整个生命周期,决定项目的成败。

HGTS:对于世界上其他专注于测试工具方面的工程师,你有什么一般性的建议吗?

Ted:专注于你的用户,理解他们的需求并解决他们的问题。不要忽视一些看不见的功能,如可用性和响应速度。工程师在解决他们问题方面有自己独特的能力,要允许他们使用你无法预料的方式来使用你的工具。

HGTS:在测试工具框架领域,下一个最大的问题,或者是你最感兴趣的且最想去解决的问题是什么?

Ted:有一个问题我最近一直在思索,我们的工具变的越来越强大和复杂,但相应地,在理解和使用这些工具上也变得越来越困难。例如,使用Google当前的Web测试框架,工程师可以一键运行上千个Web测试,并发地运行,针对不同的浏览器。我们抽象封装了如何运行的细节,例如这些测试是在哪里开始真正运行的,浏览器是从哪里得到的,测试环境是如何配置的等细节。从某方面上讲,这是好事儿。但是,如果测试运行失败之后,工程师又必须去做调试,这些隐藏的细节就必须要去了解。我们已经在这个领域有所举措,但仍然有很多可以去做且必须去完成的事情,它们在等待着我们去解决。

相关文章
|
6月前
|
机器学习/深度学习 人工智能 算法
新时代软件测试工程师的挑战与机遇
随着科技的飞速发展,软件测试在当今信息化社会中扮演着举足轻重的角色。本文将探讨新时代软件测试工程师所面临的挑战和机遇,分析其发展趋势及应对策略,旨在为广大软件测试从业人员提供启示和指导。
|
测试技术 数据库
腾讯游戏测试工程师的经验心得分享
腾讯游戏测试工程师的经验心得分享
423 0
|
测试技术
华为测试工程师面试必备的问题点
华为测试工程师面试必备的问题点
161 0
|
1月前
|
Java 测试技术 程序员
「测试线排查的一些经验-上篇」&& 后端工程师
「测试线排查的一些经验-上篇」&& 后端工程师
16 1
|
3月前
|
算法
测试工程师的技能升级:LeetCode算法挑战与职业成长
这篇文章通过作者亲身体验LeetCode算法题的过程,探讨了测试工程师学习算法的重要性,并强调了算法技能对于测试职业成长的必要性。
70 1
测试工程师的技能升级:LeetCode算法挑战与职业成长
|
3月前
|
运维 测试技术
测试与开发问题之测试开发工程师与软件开发工程师和测试工程师如何区别
测试与开发问题之测试开发工程师与软件开发工程师和测试工程师如何区别
|
3月前
|
监控 安全 测试技术
测试与开发问题之为什么测试开发工程师需要有安全生产意识,文档编写能力对于测试开发工程师的重要性如何理解
测试与开发问题之为什么测试开发工程师需要有安全生产意识,文档编写能力对于测试开发工程师的重要性如何理解
|
5月前
|
消息中间件 缓存 中间件
【赠书活动 - 第1期】- 测试工程师Python开发实战(异步图书出品)| 文末送书
【赠书活动 - 第1期】- 测试工程师Python开发实战(异步图书出品)| 文末送书
|
5月前
|
安全 网络安全 网络协议
精选30道“渗透测试工程师”面试题
渗透测试 信息收集 网络安全 web安全
271 3
|
5月前
|
人工智能 自然语言处理 机器人
[AI Google] 新的生成媒体模型和工具,专为创作者设计和构建
探索谷歌最新的生成媒体模型:用于高分辨率视频生成的 Veo 和用于卓越文本生成图像能力的 Imagen 3。还可以了解使用 Music AI Sandbox 创作的新演示录音。
[AI Google] 新的生成媒体模型和工具,专为创作者设计和构建
下一篇
无影云桌面