赢在测试2:中国软件测试专家访谈录
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

我的职业发展路径

蔡:谢谢文强接受我的采访。请相对详细地介绍一下你的个人经历。就我个人而言,我比较喜欢看人物传记。虽然我们不是什么大人物,但是每个人都是独特的,人生的经历都是宝贵的,其中或许有可以供其他朋友借鉴的地方。

按工号随机分配而进入软件测试行业

郑:我不是计算机相关专业毕业的,却阴差阳错地从事了与之相关的软件测试工作。1994年到 1998年我在华东师范大学物理系上学,1998年到 2001年接着在本校上了精密激光物理专业的研究生。因为大学与研究生专业都是理科,在整个 7 年学习期间基本没有上过计算机相关的专业课,因此 IT基础很差,导致工作以后入门相对比较难。

2001年硕士毕业以后我应聘进入中兴通讯上海第一研究所。中兴通讯在上海有两个研究所:第一研究所和第二研究所,其中第一研究所的主要产品线是有线通讯。我在中兴通讯上海第一研究所的工作是软件测试,产品是园区宽带接入系统 IPDSLAM,主要提供 ADSL/VDSL的用户端接入。从时间上来说,在国内我算是做软件测试比较早的一批了。当时国内测试行业刚刚起步,测试工作并不受重视。说起来比较有意思,新入职一批新人,按工号排列,奇数的去做开发,偶数的去做测试(或者反过来,记得不是很清楚了),就是这么随机分配的。

努力学习软件测试

由于专业的原因,我的 IT 基础很差,甚至 TCP/IP 协议和 IP 地址/掩码等方面的知识都没有。不懂怎么办?我能做的只能是比其他同事更加勤奋努力。在工作之余,我拼命看书,同时多向其他同事学习。当时测试组加我只有三个人,两个做功能测试,一个做性能测试,我就是被分配做性能测试的那位。刚出校门,我对通信设备的功能都不了解,就要做性能测试,压力非常大。但是,没有别的路可以走,只能靠自己努力。当时所做的性能测试,主要是偏硬件的,要搭建大的测试环境,是个体力活,基本都是没有人愿意接手的工作。更苦的是,除了性能测试,还需要负责通信设备的 EMC(电磁兼容性)测试,每次都是背着沉重的设备,乘公交车去其他公司的 EMC实验室做测试,经常在外面奔波。

旁观者说:刚毕业后的第一份工作,不要挑工作内容。不管做什么,都是一种历练,像郑文强一样踏踏实实做下来。刚毕业的时候有冲劲,总想学习,没有家累,这些都是优势,能够弥补工作经验的不足。如果这也不愿做,那也不愿做,要享受老员工的“待遇”,等于在破坏自己的优势。一个人在公司总要有点优势。

就像前面说的,当时所谓的性能测试和 EMC 测试,都是最没有地位的工作,即使是在测试部门内部。为了使自己更多地了解产品功能和协议方面的知识,我在完成性能测试与 EMC测试工作之后,就会拿一个本子,坐到做功能测试的同事边上,边看边记,不懂的就问。等他们中午吃饭和休息的时候,我就自己动手尝试操作,这个过程对自己掌握产品功能的测试帮助很大。

旁观者说:在这里,我看到了郑文强刻苦学习的精神。天道酬勤。

除了产品测试的任务之外,为了在公司内部引入一些自动化测试的内容,我开始尝试学习编程语言。没有一点编程的基础,怎么办?时间对每个人都是平等的,在不影响每天测试工作的前提下,我主动加班以获取更多的学习时间。那时候,每个月的加班时间都在 40个小时以上。因此,很快熟悉了如何通过 C++和 TCL(Tool Command Language,一种通用的脚本语言,可以在各种平台上解释运行)进行测试脚本的编写。大概过了半年的时间,我不但在性能测试和 EMC 测试上是了解最多的,同时在产品功能测试方面也不逊色。因此,部门经理开始让我在技术上负责公司内IPDSLAM的总体测试任务和公司外 OEM交换机的验收测试。

旁观者说:时间都是挤出来的。一个月加班 40个小时,相当于给自己增加了一周。

旁观者说:机会来自能力,而能力来自于日常的学习和积累。

在 2001年的时候,公司对测试并不大重视。当然这并不是单个公司的问题,整个国内的大环境就是这样,整个软件测试行业还是刚起步,流程上也不规范。项目计划主要是根据客户的要求来确定的,在项目进度与质量之间发生冲突的时候,往往先满足发布的时间要求,而牺牲产品质量。因此,对于测试人员,除了在公司内部有紧张的测试任务之外,还需要不断地去解决客户现场的问题,就是一个不断救火的过程。

在中兴通讯上海第一研究所的 2年测试工作为我在产品知识领域打下了非常坚实的基础。这是合格的测试人员首先需要具备的一个技能——深入了解你的测试对象,它的架构、功能,以及客户是如何使用他们的业务知识的。

旁观者说:对软件产品了解到什么程度,测试才能做到什么程度。

学习好软件研发流程

2003 年中,我第一次换工作,到上海贝尔-阿尔卡特继续从事测试工作。现在回过头来看,即使是在 2003年,上海贝尔-阿尔卡特的项目管理、开发流程和测试流程都是做得相当好的。在上海贝尔-阿尔卡特公司内部,一个萝卜一个坑,不仅仅强调个人的能力,更注重团队的整体能力。上海贝尔-阿尔卡特的文档管理系统非常好,以前项目的所有文档你都能找得到,而且是正确的版本,同时针对各种测试工作产品,都会有相应的文档模板,以方便测试人员迅速了解每个文档中应该包括哪些内容。当时采用的开发模型是火车模型火车模型:软件发布像火车一样,有固定的发车时间,新的功能能否发布取决于它能否赶上火车。详细信息请参见 http://www.biaodianfu.com/release-train.html。,即迭代增量的开发模型,针对产品有 5年的长远计划,基本上是每隔半年会发布一个版本。

旁观者说:团队越大,项目越大,配置管理就越重要。

在上海贝尔-阿尔卡特,除了继续在产品知识和业务领域进行学习与实践之外,我将很大的精力花在了流程的学习上,包括 PMP知识体系、开发模型、测试流程的主要活动、测试输入与输出文档等。在上海贝尔-阿尔卡特的几年工作经验,使得自己对整个研发流程都有了全局了解,也让自己可以更轻松地和不同的测试从业人员进行交流与分享。不同公司尽管其采用的开发模型和测试流程会有所不同,但是基本的测试知识体系都大同小异。

旁观者说:在一家公司工作,除了学到软件产品对应的技术外,不要忘了学习“软技能”,例如研发流程。

去管人还是坚持做技术

在上海贝尔-阿尔卡特,我当时的目标是去做经理,简单地讲,就是去管人。周围的氛围大抵如此,大家基本都认为管人的经理有地位、有能力,当然也有面子。其间我曾经去 UT-斯达康面试过,目标职位是项目经理。所有的面试流程都通过了,但是这个职位因为各种原因最终被取消了,我没有去成。这件事情让我深思,我问自己:自己真的喜欢做项目管理工作吗?自己真的适合做项目经理吗?是自己喜欢还是活在其他人的期望之中?深思和反省了一段时间之后,发觉自己并不是真的喜欢项目经理这样的职位,更多的是由于人家觉得这样是好的。经过这次反思,我给自己重新做了一个定位:发挥自己在测试领域的专长与经验,继续自己的软件测试技术之路。

旁观者说:做自己,而不是生活在别人的期望中。

上海贝尔-阿尔卡特是一家不错的公司,我在其中的几年最大的收获是:深入了解了软件开发流程、测试流程与项目管理方面的知识。这也是合格测试人员需要具备的技能。除了了解你的测试对象之外,你需要深入了解软件产品是如何开发出来的,开发与测试之间的关系是什么,主要的测试活动与测试任务,等等。

由于办公场所在浦东,离家太远,每天往返上下班需要 2到 3个小时。虽然公司有班车,但是每天在路上花费的时间太多。在 2006年的时候,我犹豫、徘徊了很久,最终决定到离家更近的朗讯科技光网络有限公司,继续做我喜欢的软件测试工作。这样,我也可以更好地平衡工作与生活。

旁观者说:一个人最珍贵的资源是什么?时间。

在朗讯我做了 2 年多的测试管理职位,带领一个测试团队。在朗讯工作 2年多后,也就是 2008年年底,我主动向公司申请,转做测试技术岗位。我感觉自己的个人兴趣还是在技术上,我想专注在软件测试过程和测试能力改进等领域上,这样从管理岗位转到技术岗位有利于自己的发展,有更多的时间和精力去做自己想做的事情。

旁观者说:能够看清自己的兴趣在哪里,看清自己擅长的在什么地方,真是幸事。

研究测试技术和方法

在朗讯公司内部,完成测试任务之后,我将其他时间与精力放在了测试技术与方法的研究上面,提出了一些解决方案来不断提高团队内部的测试能力。例如,在测试用例设计与执行中引入了测试类型的概念;根据敏捷开发的特点,在测试团队中提出并引入了 Pair Testing(结对测试结对测试:业界内有两种含义,一是指两个人一起做测试,二是指一种测试设计技术,在有多种参数需要测试的情况下,应用结对测试可以减少测试用例数,提高测试效率。)的概念;在测试用例设计中提出了“精简化的测试用例”的概念;在测试用例设计中提出了放射性思维,使得测试用例编写的工作量与测试人员创造性思维方面得到了很好的平衡。

旁观者说:提出新概念是一种创新,当然这不容易做到。

同时,我开始在公司内部更广泛地参与测试相关的活动。2011 年和2012 年分别参加了公司中国区第一届和第二届技术大会,并做了主题演讲。积极参与公司内部的软件测试社区建设,并在公司内部推广测试知识、测试技术与方法、测试管理等方面的培训与分享。现在非常明显地感觉到公司对软件测试的重视程度在不断提高。

到现在为止,我在朗讯的工作时间已经有 7年了,在软件测试方面给我最大的体会是:不管多好的测试理念、测试技术与方法,我们都需要和实际测试工作结合起来,不断提高测试效率和有效性,不断提升测试质量。这是合格的测试人员需要具备的技能。

旁观者说:让理论经过实践的检验,落地,形成适合自己公司和团队的做法和经验。

我在测试行业工作已经超过 11年了,我感觉是在更深入地了解测试的内涵,更愿意将当前的状态看做是超越自己的一个起点。坚持去做自己喜欢的工作,不断积累、总结和分享,相信每个人都可以成为领域内的专家。

旁观者说:11年的积累,仍然看做是一个新的起点,值得学习。