本文仅用于学习和交流目的,不得用于商业目的。非商业转载请注明作译者、出处,并保留本文的原始链接:http://www.ituring.com.cn/art...

嘉宾简介:

潘在亮, 现任腾讯 社交网络质量部测试开发中心组长。加入腾讯之前,先后任职甲骨文、微软公司测试开发工程师,参与企业级搜索和Visual Studio产品的测试开发工作。于2009年加入腾讯,参与了企点、PCQQ、手机QQ、QQ空间、QQ音乐、腾讯云等产品的测试技术改进工作。在测试开发领域拥有超过10年的丰富项目经验,擅长测试自动化、测试工具开发、研发工具开发和静态代码扫描等领域。


访谈内容:

相对于开发人员(也要写测试代码),测试开发人员在测试方面有哪些更高的要求?

各个公司甚至公司内部各小组对“测试开发”这个角色的定义各有不同,对测试开发人员的要求也各有不同。从我个人来说,测试开发角色主要负责测试效率乃至研发效率的提升,而效率的提升一般是通过自动化和流程的方式来实现的,所以从这个角度来说测试开发人员跟开发人员没有太大的差别。不过,测试效率主要由测试开发人员负责,需要对被测业务的技术方案和测试方法都有比较深刻的理解。

一个合格的测试人员,理解被测试产品的技术特点和功能特性是必须的,否则就不能有效地测试产品。但测试人员对技术的理解跟开发人员的角度又是不一样的,开发人员需要了解技术从而能够高效地开发出性能良好的代码,测试人员理解产品的技术是为了更高效地进行测试。除了理解产品的技术外,测试人员还需要掌握测试的方法,比如等价类、边界值、敏捷测试、探索性测试方法等,这些都可以通过相关图书的学习进而掌握。

如果用类比方式描述测试开发人员的日常工作,您会怎样描述?

如果业务开发人员是特工007詹姆斯邦德,测试开发人员就是里面的Q博士,专门给业务提供黑科技装备。我们的一款产品曾时不时地跟后台的传输协议产生严重的问题,造成crash,但仅仅通过界面的黑盒测试很难将相关的场景构造出来。对此,测试开发人员开发出该产品的协议抓取工具,来修改协议内容,相关的测试场景才得以顺利进行。

测试开发人员是不是要有一些“找茬”“搞坏”的心态?

腾讯的测试开发人员一般不会直接负责查找产品的bug,所以不会存在其他测试人员的“找茬”心态。我个人并不鼓励测试人员的“找茬”“搞坏”心态。团队作为整体都是对研发的产品负责、对客户负责,应该站在客户的角度思考问题而不是一味追求团队中个别的成绩。测试工作中,测试人员应该遵守相关的业务规范,即使这些规范有时候会对个别人产生一些困扰。

在设计测试计划、测试用例、操作步骤、重现步骤等工作中,您有哪些特别的经验和教训要和大家分享?

腾讯的测试开发人员一般不会直接参与测试计划、测试用例等工作,这里没有什么特别的分享。

我们的测试开发人员负责测试工具、自动化框架、持续集成方面的开发建设工作。我个人在这方面的经验也想分享下,希望能对行业内人士有些帮助。首先,测试开发人员的工作需要得到团队和公司领导的认可并给予足够的耐心,因为任何的开发建设性工作,都需要在初期投入成本。这些建设都是很基础的、很必要的,部门内最好能有统一的规划和实施。缺少必要的沟通的话,你搞你的,我做我的,重复的轮子到最后只能变成浪费。

另外,业界一些人认为测试自动化不就是写写简单的用例,这样简单的事情随便派个人搞搞就好了。如果存在这样的想法,测试自动化基本上是搞不起来的。测试工具和框架的开发跟其他的产品开发一样,都需要比较好的开发技术和工程化实施。

自动化测试更适合哪些测试场景?

像Google这样的一些国外公司会采用自动化测试应对绝大部分的测试场景。国内的实际情况下,一般不建议在产品初级阶段、产品形态变化较大的情况下进行自动化测试。产品初级阶段和产品形态变化大的时候,虽然也可以使用自动化测试来提升研发效率,但实施的前提是研发团队具有很高的研发水平,能够保证应用接口很好地扩展,保证接口的稳定性,否则每更新一次版本,大部分的自动化测试用例就要推倒从来。

过多地依赖自动化测试工具,而减少人工测试的投入,是否会导致产品的某些缺陷不易被发现?

就目前的自动化测试技术水平来看,它还不能替代人工测试,尤其是在主动发现bug方面,人的灵活性还是非常重要的。自动化测试更多地用于防止bug的回归,以及提升发布的效率。自动化往往也是其他深层测试的基础,像压力测试、性能测试、MTTF测试等,没有自动化框架的支持深层测试就比较难做到。

随着机器学习领域技术的逐步成熟,机器学习算法应用到自动化测试只是时间的问题,到时候很多的手工测试会被人工智能所替代。

PC端、Web、移动端以及后台Server端的测试工作有哪些不同?

几个端的测试从本质上讲没有什么不同,都是测试一个或多个进程的应用。PC端的界面会比较复杂,因为PC的显示器较大,允许产品在界面上有更复杂灵活的设计,对测试的要求也更高。移动端需要注意碎片化的问题。这个碎片化主要是指Android系统的碎片化问题,测试人员需要在Android的不同版本、不同手机厂商间做多次测试。另外还要更加注重性能、电量等问题。Web端的测试需要面对比较多的的技术栈,js,php,HTML,json等。Server的测试则会面对比较复杂的网络拓扑结构、复杂数据存储,以及高可用等挑战。这些对后台应用的测试环境搭建会产生很大的挑战。要解决这个问题需要对后台程序有更高的可测性要求,在刚开始开发的时候后台应用就要将可测试性考虑到后台应用中。

麦思博主办的上海MPD软件工作坊即将在5月中旬开幕,我知道您将在会上讲授“跨多端测试自动化体系”。可以先给我们透露一下,腾讯内部是怎样打造跨越多端的全栈自动化测试体系的吗?

腾讯的很多产品都涉及多端,产品的自动化测试自然需要跨越多端的自动化体系。不过,腾讯内部并没有一个全公司统一的多端自动化体系。就我所在的社交网络质量部而言,多端自动化体系的搭建主要从两个方面入手。一个是统一的多端驱动来驱动被测试的应用,另一个是统一的用例编写、管理方式和系统。这两个方面涉及的技术点和难点是非常多的,但这两个方面是不可或缺的,是一个完整的多端自动化体系最重要的两个组成部分。

我们在社交网络事业群打造的QTA自动化测试平台主要也是从上面的两方面入手。Android、iOS端的驱动类库QT4A、QT4i都是我们自己研发的,这保证了驱动接口的一致性。在UI控件的定位和管理方面,我们也都采用了统一的做法。Android端和iOS端的UI控件采用QPath格式进行描述。各个端的用例统一采用python编写,此外用例的编写格式、代码风格也是统一的。

为应对校招的测试开发面试,在校生应该做哪些准备?

我觉得在校生需要做好三方面的准备,一个是需要有比较好的心态,积极的心态。自动化测试会存在失败的情况并且失败的次数不止一次,这需要积极的心态才能迎难而上,最终克服困难。二是需要对测试有一定的了解,例如边界值测试等。这里倒不是要求在校生对测试方法有很深地掌握,毕竟学校里并没有这样的课程。对测试有一定的了解主要是希望在校生能有较好的场景分析能力,设计出测试要素。例如分析一个简单的登录窗口,除了考虑登录密码的正确与否,还要考虑到用户名的不同格式、不同字符的编码,不同的字符串长度。除了功能之外,是否还能考虑到性能因素。三是要有比较好的编程基础,能够掌握基本的数据结构算法。如果不能很好地掌握数据结构算法,测试工作中就很难理解操作系统、数据库、网络等方面的技术要点,这对掌握团队的技术方案更是困难。


更多精彩,加入图灵访谈微信!

潘在亮:给业务开发提供黑科技装备的“测试Q博士”相关推荐

  1. 潘在亮:给业务开发提供黑科技装备的“测试Q博士”(图灵访谈)

    嘉宾简介: 潘在亮, 现任腾讯 社交网络质量部测试开发中心组长.加入腾讯之前,先后任职甲骨文.微软公司测试开发工程师,参与企业级搜索和Visual Studio产品的测试开发工作.于2009年加入腾讯 ...

  2. Oracle APEX 系列文章1:Oracle APEX, 让你秒变全栈开发的黑科技

    本文是钢哥的Oracle APEX系列文章中的第一篇,完整 Oracle APEX 系列文章如下:  - Oracle APEX 系列文章1:Oracle APEX, 让你秒变全栈开发的黑科技  - ...

  3. Android开发之黑科技安装APP无启动图标

    老套路看图: 实现方法很简单只需要在启动Activity清单文件配置data属性就好了: <activity android:name=".MainActivity"> ...

  4. 云上看警博会黑科技,得益于华为云打造的“云之盾”

    对于军迷.警迷.科技迷来说,11月的北京有一场不容错过的年度盛宴. 11月23日至26日,第十届中国国际警用装备博览会在北京举办.本届警博会的主题是"聚焦科技最前沿.领警务新时代" ...

  5. 聊聊H5与JS近几年的黑科技

    聊聊H5与JS近几年的黑科技 自ajax技术的诞生,编程界兴起了一股WEB开发热,facebook,Twitter等众多大佬级企业都在网页应用上大放异彩,这十年我们见证了前端技术的崛起.这期间产生了众 ...

  6. 这哪是NBA球场!简直就是黑科技实验室啊!

    原文链接 刚结束的2017 NBA总决赛第五场中,勇士队129比120战胜骑士,总比分4比1拿到了2016到2017赛季的总冠军.砖家分析,勇士夺冠,可不仅仅是球技过人,还因背后一大波黑科技相助!让我 ...

  7. 盘点2017 CES展会所有亮眼黑科技 (上)

    文章转自"ittbank"微信公众号,由于2017 CES(国际消费电子展)内容太多,所以文章分上下两期连载,此篇为上篇,主要展示智能汽车/智能驾驶/车联网,个人电脑,家庭电视,智 ...

  8. 干货 | 携程酒店小程序开发背后的“黑科技”

    作者简介 崔广宇,携程酒店研发部小程序开发经理,曾负责过反爬虫开发以及H5开发. 本文将分享携程酒店小程序的一些开发经验, 和一些非技术的经验.这里的小程序包括微信小程序,支付宝,百度,头条.快应用因 ...

  9. 聊聊旷厂黑科技 | 为了让手机拍出好照片,我们开发了100多种算法

    发现美并记录美,是烙印在人类血液里的本能反应.从蒙昧时代的原始人在黑暗的洞穴中画下野生动物的第一笔涂鸦开始,绘画的火花激励着一代又一代人将美记录,随着历史的巨轮滚滚向前,西方世界的绘画向着古典主义对于 ...

最新文章

  1. Rootkit之SSDT hook(通过CR0)
  2. Mac 完全卸载 Java
  3. mybatis自我总结
  4. Selenium2+python自动化75-非input文件上传(SendKeys)
  5. 1.4.3 编写自己的模块和包
  6. 【重点】LeetCode 24. Swap Nodes in Pairs
  7. 【OVRP问题】基于鲸鱼优化算法求解开放式车辆路径问题附matlab代码
  8. 【rmzt】小清新美女win7主题_7.14
  9. 服务器虚拟成一个共用一台ipsan,IPSAN(四)IPSAN多路径设置(服务端)
  10. 疫情下企业面临的关键网络安全建设,去繁从简,保住核心安全
  11. 纠删码(Erasure Code)及其演进LRC(Locally Repairable Codes)原理讲解
  12. html语言中网页主体标记是,HTML 网页主体标记
  13. mysql拖库_利用SQL注入漏洞拖库的方法
  14. MessageBox中涉及到的宏定义
  15. open judge 1.7.18
  16. centos 禁止自动锁屏
  17. thinkphp图片集合
  18. 将折旧表分配至公司代码时提示公司代码分录不完全解决方案
  19. Knockout JS 示例
  20. 震荡间断点与导函数不连续

热门文章

  1. Java开发的可扩展-高性能-响应式的API网关-soul v2.2.1
  2. HTML5儿童玩具游戏商店网站模板
  3. mysql 生成xml 表头_Spring Boot + MySql + Mybatis generator 自动生成mapper/entity/xml文件
  4. oracle db2备份数据库,datagurad 使用备库的备份恢复主库的数据文件
  5. 招商银行网站在chrome中 布局出现大问题,如图
  6. 优秀的 jQuery 文本输入框自动完成 自动提示插件
  7. Multimedia (MP3, MPEG-4, AVI, DiVX, etc.) support in Ubuntu 12.04 (Precise)
  8. 使用Google Custom Search打造站内搜索
  9. jQuery水印插件 - Watermark 和 FormWatermark
  10. 一维数组的初始化问题(函数体内与函数体外)