谈谈软件测试行业对我个人的成长的影响

来源:范文网 1.51W

本科4年学的是非计算机专业,但因为我对电脑的浓厚兴趣,整个大学期间我经常利用周末的时间,穿梭于太原市电脑一条街,用挤出来的生活费升级电脑硬件,对各种电脑硬件的原理都很熟悉。这样的一个结果让我在大三的暑期很轻松的在北京中关村找到了一份当计算机老师的实习工作,北京实习的那段经历,让我对网络,编程及各种应用软件也都有了很深的了解。所以,在大四的春节,我也很容易的在苏州一家研发笔记本电脑的台资企业拿到一个软件工程师的offer;

谈谈软件测试行业对我个人的成长的影响

2年以后,我发现苏州的很多软件企业都在招聘软件测试工程师,同时我也研究了这个岗位未来的市场需求量会很大,便利用业余时间做了很多研究,终于在02年11月份如愿以偿的当了一名软件测试工程师,后来从应用软件测试到欧美外包的测试管理,从大的行业软件项目测试到现今的组建互联网测试团队,从阿里的B2B电商走到在线旅游携程的B2C电商,这么多年的测试从业经历,让我对这个职业有了很深厚的感情并且有太多的人和事割舍不下。但为了追求更高的个人职业发展,我决定寻求新的突破和挑战!前几天,团队的主管去西安招聘回来说,来面试的人几乎清一色的女孩子,这也让我感觉到确实要把自己这么多年的收获和成长人分享一下,让更多的年青人了解什么是软件测试,能提升我们个人的哪些技能?

1. 大家都知道,软件测试最重要的工作就是根据需求设计测试用例,这个工作主要就是考验你的逻辑思维和分析能力,你要根据需求设计出用户场景,然后还要考虑主要的业务流程,分支流程和异常的一些场景,这些场景都要考虑全面;做好测试分析,不但要借助一定的工具和测试理论,这个方面的能力也是最基本的了,招聘测试工程师,测试分析,思维逻辑能力也是我们必问的,当然,有了这个基础,再通过后期不断的项目实战,相信这方面的能力一定可以得大更大的提升;平时在和一些朋友交流,大家给我的反馈也是觉得我说话思路清晰,事情都会偏向理性的去分析,要符合逻辑,喜欢列出1,2,3。

2.测试的本职工作就是找Bug,但不管多优秀的工程师都不可能在他负责的项目中发现所有的Bug;当项目上线以后,漏到线上的Bug,除了根据轻重缓急逐步修复以外,作为测试团队,一个最重要的事情,就是分析为什么会漏测,后续有什么改进措施能够防止同样的问题再次被遗漏,在这样的不断的分析漏测场景、总结改进,这方面的能力也在潜移默化的得到了锻炼;当然,我觉得这个能力是否被很好的发挥出来,一个首要的前提是先要有这方面的意识,任何一个项目或一件事情在做之前,我们都可以去思考一下,有没有更好的方法去做这件事情,做完之后,再总结哪些方面做得还不够好,有没有提升的空间;有点类似于我们以前经常讲的PDCA,所以,我觉得这个能力的养成是非常重要的;

3. 测试在软件研发周期内,处于比较靠后的工序里,前面有架构师,产品经理和开发工程师,前面的任何一个环节出了问题,都会导致测试版本质量不高,测试进度被压缩或测试工作量增加,当我说的这些问题发生以后,往往受影响最大的受害者都是测试人员,如果只是被动等待着版本提测,不管你付出多大的努力都很难保证项目高质量的发布,这也是我之前为什么经常在团队里强调测试驱动开发的原因;测试驱动开发对测试的要求就是要对问题非常敏感,看到问题后要主动提出来并给出建议的方案和项目一起协调解决,如果推不动还要寻求领导的协助;再说一个UI自动化的例子,13年团队在我的要求下推动UI自动化,当时碰到了很多问题,比如业务项目优先级更高、测试数据、测试环境和业务变更等各种问题导致自动化通过率一直不高;当大家都在怀疑UI自动化到底能不能带来作用的时候,15年开始,我们整个团队根据问题经过多次讨论,优化用例规范,加强环境和数据领域工作推进并调整组织架构,终于到15年9月份把UI自动化覆盖率,通过率都做上来了,相信这种实际解决问题的经历一定会提升解决问题的能力、主动思考解决方案和决策的意识;

4.互联网软件研发因其短平块的特点,基本属于弱项目管理,之前在阿里巴巴工作时候,项目是没有专职的项目经理的,都是由项目中较资深的研发和测试兼任项目经理;而实际上,我感觉测试因其软件工程的思想比较好,对项目流程较强的把控意识以及本身所要求的沟通协调能力应该更加适合承担项目经理这样的一个职责;当时,我所在的团队,我给团队争取了很多次这样的项目经理机会,结果看下来,他们做得都比较专业,比如项目计划的安排、任务的协调、风险的控制或成员之间出现冲突也能比较合理的给予解决;在携程技术的研发体系里,诸如项目研发流程、测试流程及发布标准和规范基本都是由酒店测试团队牵头制定,这可能源自于当发生线上问题后测试会主动驱动各个团队在分析,然后不断优化流程而得出的这些流程和规范。

5. 在我们团队里经常被我提及的一句话是,“测试比开发更懂业务,比产品更懂技术”。 大概意思,测试这个岗位在技能要求上可能更加全面一些,因为,他不但要站在用户的角度去和产品沟通一些使用场景,甚至要关注到用户体验,还要站在技术角度,对开发的技术实现给出性能或代码可测性方面的建议;酒店测试团队从13年9月份开始规划一些测试自己的工具和平台,到目前为止一共研发了7个测试平台,除了我是一个最大的产品经理之外,团队中很多人都承担了产品经理的角色,甚至测试数据平台,我们已经请到专业的UED帮助我们做视觉及交互方面的优化,目前测试数据平台已经做了一次全新的改版,所以,感觉这个平台的几个负责人已经是比较专业的产品经理了;

6.说起这一点,其实是我感受最早的一点,当我还在做测试工程师的时候,我换过2,3家公司,因为每家公司的技术平台、框架都不一样,对我来说,我就需要快速学习去适应这个平台所要求你具备的`技术能力,比如数据库,web服务器,操作系统,编程语言、网络、安全甚至硬件等都需要我们去快速掌握;相对开发来说,对他们的技术能力要求是在某一个领域要深入,强调的是,我会什么,我能给你做什么?而对测试来说,因为测试是一个系统性要求更全面的工作,强调的是,你要求什么,我需要会什么?而且,测试本身的工作相对于开发也会多很多,比如从测试分析,设计脚本,准备数据再到测试环境搭建等。之前,在我还没有实力规划和自行开发测试工具时,我们都是用开源的测试工具自己搭建,而完成这项工作,对学习能力,动手能力和知识面都有着很高的要求;

7. 我们从整个项目研发过程,测试需要承担的工作来分析一下,在需求和测试用例评审阶段,如果某个用户场景有问题或某个成员对需求的理解有问题时,测试需要主动提出来;在架构设计或技术实现阶段,如果有性能风险或代码的可维护性较差,测试需要主动提出来;在测试阶段,如果发现Bug,测试不但要提出来,还要推进解决,甚至需要定位bug的产生的原因,沟通怎么去修复等;另外,当项目计划和质量出现冲突时,测试往往都要凭借一己之力和项目经理,产品经理甚至开发经理沟通,以质量为重。当然,还有测试环境有问题,你要和运营团队沟通,数据库有问题,你要和DBA沟通,发布有问题,你要和发布团队沟通等等;所以,这个岗位本身就决定了需要和多个团队的人打交道,如果你是一个测试leader,除了沟通能力,你还要具备事情的推动能力,说话要有一定的影响力和跨团队协调能力;

8.这里的团队管理包括团队的目标规划,团队的组建,员工绩效管理及如何帮助到你团队 的成长,可能针对还没有管理职责的人来说,这方面的能力培养可能会相对少一些,那为什么我还要把这个职责加进来呢?大家都知道,从事管理职责的人,除了本身的意愿和天生固有的一些气场外(不讨论公司赋予管理者的权力),我上面提到的这些综合技能,其实都是相当重要的,尤其针对知识性,技术性要求比较高的团队。其实,我想表达的是,如果你从事测试行业很多年,当以上的这些技能被潜移默化的培养了以后,或许,你可能也比较适合或者能干好团队管理的工作。且当你的级别越高,可能对你本身的技能要求会越来越低,反而对你的知识面,清晰的思路,学习能力和综合素质会助你的职业生涯越走越高!至于团队管理本身的这些技能,由于相对也比较专业,这里我也就不做过多的阐述,感兴趣的人可以参考我写的另外一篇文章《一线管理者要做的几件大事》

所有以上这些能力的具备,当然也需要个人的学习能力去支撑,或许,在我个人还没有取得大的成功之前,还不足以有很大的影响力去来说服我是否具备了这些能力,但这确实是我做了这么多年软件岗位的经验总结和心得体会;

我想对目前正在从事或有志于从事测试行业的你说几句:或许,你目前觉得从事这份工作的成就感还不够大;或许,你觉得所在的公司领导对你的认可也没有达到你的期望;或许,互联网行业圈里,更多人希望从事产品或开发类的工作;但事实上测试岗位的工作确实可以锻炼我们形成这么多的能力,我相信这些能力可以支撑你的职业生涯走得很高。我想说,既然你已经从事了这个行业,就踏实的去好,建立自己的个人品牌和声誉,也相信任何的用心付出终究会有回报,只是迟早的问题。

热门标签