一个测试老鸟的工作总结—专职测试之我见

发表于:2017-1-19 11:15

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:kkltxu    来源:51Testing软件测试网采编

  作为一个测试从业多年的却依然还菜的老鸟,从没习惯写博客或日记。从业以来,也和大多数人一样,经历过懵懂、开悟、突破、瓶颈、迷惑、释然等职业发展所应该经历的各过程;年过30后,因为工作变化,突然有些想把这些年来的工作所感所想记录下来的冲动,所以直接新开园随文,算是对原来工作树标定论的经验分享吧
  开篇前先对自己作个介绍吧,算是后面系列中提及内容的背景交代:本人信息过程自动化专业毕业,勉强算是计算机相关专业,在工业自动化公司实习半年,机缘巧合下,读了软件测试培训并顺利进入到软件测试行业中。在一家小公司厮混了1年后,有幸进入一家外资电子商务企业,在这家公司3年的时间也是我相对测试能力增长最快的3年,公司研发流程规范,并且又很注重人员技术能力的培养。作为SCAMPI亲身参与cmmi5级的评级,进入后端的backend组后,全面进行白盒测试的相关工作(你没看错,公司是要求测试人员来主导单元测试的);第三家公司是一家赴美上市的互联网企业,我也第一次作为测试主管带团队进行项目的测试工作,工作内容偏后端底层,所以和数据库、接口及数据统计接触较多,也是我自己管理上有很大提升的地方。第四家算是互联网在线教育类的公司,在这家公司里不再进行测试执行的工作,作为品质保证部总负责人,组建公司的QA/QC团队,制定研发流程规范,定义公司级各类产品上线准出标准。4年的时间,对质量管理和部门建设有了全面的认识和实践,从阶段工作跳出,对项目总体把控有了全新的认识,也是在这4年中,渐渐从处事到处人。回省自己所从事的测试工作,也算是有了一个整体的认识。
  干测试那么久了,都熬出了10天年假,相信很多测试从业人员在工作3到4年后快速成长期结束,都会或多或少的开始关注自己的职业发展道路了。提及国内测试人员的总体近况和现状,相信有很多测试人员都会有很多的抱怨,测试不受重视、工作规范的问题、归属感荣誉感、在项目中的定义定位问题等等。甚至有人会提出,测试人员在项目中是不需要的,直接影响自己所从事工种的存在问题,怎能不让作为测试从业者着急;那我们就来说一下是不是测试已经不再被需要了这个话题
  随着现在互联网的发展,越来越多的软件产品以短平快的生产方式出现在我们的眼前,特别是敏捷开发的流行,传统测试的存在感或重要性给我们的感觉是越来越小了。对于我来说,我的观点是,测试工作当然是被需要的,软件测试是软件产品绕不开的一个环节。那些说不需要测试的项目并不是真的不需要进行测试,而是测试工作被其他人完成了,测试工作是一直都被需要着的;所以我们的命题应该变成了专职测试是不是被需要?
  在回答这个话题前,我们来看一下,专职测试被有些人觉得没必要存在的主要几个原因:
  1. 专职测试本来并不是产出者,本身不能产生任何效益
  2. 专职测试只是产品质量的把控者,本身并不能提高软件产品的质量,产品质量的改善仍需要研发人员去实施
  3. 一般的专职测试人员国内来说,相较与其他工种替代性较强,技术门槛相对较低,替换成本不高
  基本上上述这些原因导致了我们普遍认为,专职测试人员是可以被替代的或者以其他方式补充的情况下,不需要专职的测试人员。虽然不愿意承认,但在一些特殊情况下,或特别项目中,专职测试人员是可以不需要的。但就我看来,如果对软件产品质量有所要求的话,专职测试人员(或主要以测试为主的工作者)是必须的。
  要把这个问题分析清楚,我们一步步推论来看;首先我们需要明确的是,一般一个软件产品注重产品的体验,具有迭代延续性的属性,那测试工作必不可少;那么测试工作不管是否由专职的测试人员来进行,它本身是不可缺少的,那么问题就变成了专职测试人员是否可被替代?比如我们现在常见的模式,由开发人员自己来进行测试,或者在XP(极限编程)的模式下,由开发人员结对互为测试,以补偿测试中的一个逻辑悖论:自己无法测试出自己代码中的bug。(就项目各阶段工作来看,最有效替代测试人员工作无论从成本还是效率上来说,开发人员是最合适的)我们先撇开这种模式下开发人员的素质问题不谈,我依然认为一个素质再高的开发人员无法替代一个优秀的测试人员。并不是因为觉得测试人员比开发人员优秀,而是这两个职能工种工作属性带到骨子里的基因决定了测试人员的工作开发人员无法完全替代。因为从工作逻辑上来说,这两种人的工作方式本身就是相违背的,开发人员的工作方式是如何把功能实现出来,把问题解决,关注的是任务的达成以及产品本身的可靠性。而测试人员相反,一个优秀的测试人员一直带着怀疑的角度来进行工作,他们总是设法证明程序是不可靠的。具体到工作处理上,开发人员是化繁为简,把复杂的用户需求划分成多个小的操作方式进行解决并从代码层面进行实现;而测试人员的工作处理上带有破坏性,针对简单的功能设计出复杂的场景以来测试bug,这种工作方式往往在设计用例时是要跳出程序设计思路找到产品不在设计内的入口或逻辑漏洞,这和开发的工作思路完全是不一样的。在日常工作中至少我很少发现同时具备这两种工作属性在一个人的身体出现,并且还能在工作中不停的切换(人格分裂?)。说一个具体的事例吧,以前我带的测试团队在做集成自动化部署时让一个自动化测试工程师和对应的项目开发中版本控制的人对接,一起开发项目的自动提包部署发布的工具包,两个工作之初,我看了一下他们分工合写的代码,开发人员最先定义的是主函数及获取版本库代码、编译打包、分布部署等主体功能的类和方法;而我们的测试人员呢,最先定义的竟然是版本库检查、代码回滚、部署非法检查等相关类和方法。从这点上,相信大家应该理解了,开发和测试从本质上来说,就是两种不同的生物。
  如果按上述说法,专职的测试人员的功用是其他一些人员所无法取代的,那么最后一个疑问,现在的软件是否需要专职测试人员所具有的功用,或者这样说,现在的软件产品是否需要较高的质量要求(专职测试人员进行测试)要对质量投入专职测试的人员成本。前面我们也提到,敏捷开发流行后,现在的软件产品迭代周期越来越快,这和整个行业发展越来越急功近利越来越浮躁有关,但不能否认的是,一个产品如果在半年或更短的时间里不能在市场上得到认可,那整个产品的生命周期将直接走到尽头。这样的现状,不得不让管理者评估产品的质量时间和资源成本的投入,生存问题永远是第一要考虑的。但我们也可以发现,一个优秀的产品,或在市场上已经被认可的产品,几乎找不到一个不重视质量的。当产品过了野蛮成长期后,有了自己的市场定位和客户群体后成为一个成熟的产品线,质量问题永远是你绕不开的问题;快速迭代以尽快适应用户需求的前提永远不可能是牺牲用户体验为代价的。于是如果产品能生存下去,迭代的增加带来的系统耦合性越来越高,用户对于质量要求和产品的认可度的趋同,是否需要专业的测试人员将是个不用回答的问题,质量越好的产品线,越需要专职的测试人员。如果抛开产品发展不说,在快节奏的软件产品研发模式下,测试人员也可以通过改变工作方式来找到自己的新定位,测试置于软件过程中这样一个最了解产品的人,其实有很多可以开拓的空间,在一个敏捷研发团队中,跨界工作可能是一种常态,开发做着测试工作,产品经理可能不是最终的客户代表,TDD的工作方式下设计文档由测试人员来提供。当所有人都以全栈工程师的身份出现在这个团队里,测试人员又何必只关注着自己的一亩三分地呢;在这样的团队中,我们讨论的话题可能不再是哪个工种是不可或缺的,而是哪个人是不可或缺的,一个在测试领域里的专家般的全栈工程师,在哪个团队中永远都将是受欢迎的工作伙伴。(敏捷测试的详细内容会另开篇描述)
《2023软件测试行业现状调查报告》独家发布~

精彩评论

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号