在软测考试前的几天,我在知乎上看到一片很有意思的问答:做一名软件测试工程师,需要具备什么?
在看网友们的回答之后,我也有了自己的想法。。。
首先整理了一下其中几个我觉得较为好的网友的回答在这里同大家分享:
网友:陈晔,测试业界打杂第一人
一、知己识人
所谓知己就是清楚的认识自己,什么才是对自己最重要的。就测试这个职业来讲,我认为自己得到什么,学到什么才是最重要的。很多人看到这里可能觉得是正确,这种大道理谁都知道。但是平时呢大部分往往,嗯,保证产品 质量,保证公司企业的质量。但是有多少测试做的事情是真正自己想做的,又有多少做的事情是对自己有意义的。可能工作本身带来不了很多的学习点或者兴趣点,但是我们不能被忙碌的工作,频繁的项目,坑爹的老板所迷惑,因为我们是测试,我们是一个需要提升自我修养,提升自我知识面才能够更上一层境界 的职业。所以笔者自己是时不时的会问自己到底学到了什么,自己需要的是什么。所谓识人,这里所说的识人不是说怎么识别好人坏人,而是如何去面试一个测试,如何给一个测试去定一个要求。为什么笔者会提到这点,就如上面所说的,现在很多人进入了测试的圈子。笔者自身是一个做移动互联网的测试,同样也经历过了上海,北京,杭州等地在各个不同阶段的面试。感觉到了不仅仅应聘测试的IT们迷茫,企业 本身对于测试的定位也很迷茫。面试就是第一个能够看出来的地方。个人觉得测试这个职业很奇特,因为除了学历,技术还和这个人的各个方面素质有着紧要的关系。当然这里我不想多的举例子,我只想给各个面试官以及企业 一点建议,筛选海量的简历的确可以靠曾经的工作经验,可以靠学历。但是希望在面试过程中能够从“态度”“开拓性思维”“为什么要做测试”三方面去做检查,如果发现有欠缺能够在入职之后进行相应的培训补足,这样的话,我相信对于广大测试人和企业来讲都是会看到好处。同样的会加速推动测试行业的发展。二、找到测试的意义 这里其实就和知己很像,我相信这次chinatest的讲师也好,我碰见的各位同仁也好,每个人在企业中都分别扮演着自己的角色。我相信我们大家的角色绝对不会只是定位在找bug。但是我也同样的看到很多测试人没有找到测试的意义,很多上层或者老板觉得测试就是为了保证质量,呸!他们只会觉得测试是为了找到bug的,无论嘴上说的多好听,很多人最后还是会用数据来定你的KPI。但是,我们不能因为如此迷茫了自己,迷失了做测试的意义,不能 最终 为了测试而去测试。测试的意义在于从各个角度,各个维度去保证 产品的质量。这句话是废话,也是空话。但是为什么我想这里提醒大家找到测试的 意义呢,是因为只有测试人找到了测试的意义(可能是提升自己的管理 能力,提升自身的技术能力 ,分析能力等),那么才不会在各种困难,各种挫折面前迷失了自己,才不会为了测试而测试,最终得不偿失。当你在执行测试用例的时候,意义在学习别人写用例的思路,学习设计方法,不在重复劳动上面。当你在编写测试用例的时候,意义在于怎么能够更好的分析需求,分析需求,写出有意义的有限的用例,不在为了完成任务,写上成千上万条用例。当你面对找缺陷这个常见的任务的时候,意义在于学习研究各种方法,各种技术找到质量高的缺陷,分析总结,不在为了去完成缺陷数量而去找。当你作为一个测试管理者的时候,意义在于你要学习管理,你要引导测试人,你要体谅沟通 。不在写好用例之后简单的让他们去执行。当你面对一个周期很短,测试又很少的项目的时候,意义在于你要学会评估风险,合理使用好各种方法应对,从而积累,不在用自己的生命换取产品所谓的质量当你觉得做测试没有意义的时候,意义在测试为你带来了什么,测试让你学到了什么,不在你是不是想跳槽或者转行三、心理素质笔者为什么将这条放在那么前面呢,这里不得不提到,笔者在仅仅只有两年工作测试经验的时候就已经亲身经历过了身边的测试由于心理问题而最终选择绝路的事情。能从心理上真正了解测试的只有测试,这点我深信不疑。任何一个测试最先面对的心理压力就是重复性的劳动。测试人是愿意去做?是否愿意去寻求这重复劳动中的真谛?这其实是任何一个测试都应该迈过的一个坎儿。 而在之后的测试生涯中,依然会碰见很多心理的考验,自己对于质量心里没有底、或者由于产品发布问题 遭到了老板的职责、或者和开发以及其他人闹不开心、或者找不到缺陷时期的郁闷、达到了测试瓶颈时候的困惑等。测试也是人,每个人都有自己的背景以及性格,这些时间一长,往往对于测试来讲,就是考验心理素质的时候,你是否还 看得清自己的路,是否还知道自己做测试的初衷,会不会对于自己做测试去质疑等等。测试这个职业无非是心理活动波动最大的,心理上的暗示和缓解对于测试是最大的一个帮助。笔者第一本读的有关心理学的书籍是《梦的解析》,之后陆续看了佛洛依德的若干部著作。对于心理学上很有兴趣,强烈推荐各位测试同仁有空读一两本心理学有关的书籍,相信你得到的帮助绝对不只是心理上的。四、 主观能动很多人说测试行业中很多都是性格内向的人,很多需要细心的女性 。这点我不否认,但是只是和测试本身没有非常直接的关系。但是无论男女,无论性格,作为测试必须要学会的是主观能动。笔者在本文一开始就提到测试行业原本历史就短,并且 国内外的文化,技术差距很大。我自己是一个做手机移动端的测试(如果有人要交流相关技术,我很乐意一起讨论),在移动互联网的测试国内的积累更加的少。我举个实际的例子,在安卓的自动化测试框架中有一个框架叫做robotium,我无意识中的加了国内很多讨论群,同时也订阅了robotium gmail的一个讨论组。一个月过去了,国内的群很多都沉默,但是那个gamil的组却已经有了七百多封的讨论邮件。这里其实总结来讲,国内外的教育,文化从我们小时候开始与国外就是不同的一个理念,造成了国内很多人的主观能动性相对来讲比较差。但如果你选择了测试,那么必须大大提升你的主观能动性。如果你想做好测试,得到更多的信息,得到更多的技术,那么你必须主动去网上查找资料,主动的找人进行沟通,主动的进行实践,那么一切才会有改变。否则我相信做不了多久就会唉声载道。同时,这里的主动 不单单是单方面的吸收,还有主动进行分享。每个人都是普通人,没有一场战斗,革命是靠一个获胜的。一个人的能力有限 ,当大家把自己所知的东西都主动分享出来,那么才能够产生更大的财富 。一切才能够进步。五、乐观精神(阿Q精神)首先澄清一点,笔者在除了测试以外的方面并非一个乐观的人,所以还修炼不到火候。乐观对于测试绝对不可少。你往往面临着一个复杂的功能性产品,往往会被误解,往往会被很多人在心里看不起、会因为找不到缺陷而心情不好等等 ,等等。乐观会让你精神拥有强壮的体魄和内心,否则你会无法继续在这条道路上走下去。可能最后打败你的是你自己,说服你的是你自己。这份精神难能可贵,当你面对各种各样的突发事件,面对各种 困难 的时候,不妨乐观一下,调整好心态去在能力范围内做好,会有意想不到的收获。六、 沟通能力说到这里,如果你已经具备了测试的最基本的素质的时候,那么你绝对,绝对会觉得测试绝对不是测试唯一的工作,在一个公司,项目中测试不是你一个人的战斗。最先的一点,避无可避,也是历史上战斗最悠久的一个对手:开发。可能再好的朋友也会和你争论的面红耳赤。当你要确认缺陷的时候,你可能会遭到各方面的质疑;当你明确需求的时候,你可能需要和你的项目产品经理甚至客户进行沟通;当你要管理团队或改进测试流程的时候,那么你可能需要和相关的所有人进行沟通协调。沟通是一门技术,这句话放在测试身上再好不过了。我们往往扮演着各种各样的角色,曾经有人甚至告诉我,我除了做测试,还做全职的售前售后。很多测试在为提升效率而烦恼,当你解决了沟通问题的 时候,那么效率上升的比例可能是几何倍数增长的。同时,你的人际关系也会越来越好,这样会让你做管理,做协调,甚至做结构上的改变变得那么轻而易举。沟通能力其中比较重要的就是描述,当一个测试人员描述一个事情都描述不清楚的时候,绝对不是一个好的测试人员。测试人天生需要汇报提交缺陷,而清楚的描述这些缺陷如何发现,现象怎么样是一项基础技能。描述问题另外一面就是倾听问题。用怎么样的心态描述问题,又用 怎么样的态度去倾听别人所说的。决定了沟通最后的效果。七、分析能力我们慢慢的从一些软性条件上说到了硬性的条件上了。好的分析能力带给测试的会是另外一片天地。分析能力其中包括了:如何去发现问题,如何去分析问题,如何去解决问题,如何去总结问题。这里的问题不是指测试中的缺陷。可能是一种模型的运用,可能是一种测试技术,也可能是一种人际关系等等。曾经在google全球code jam竞赛中获取第一的中国选手告知我“万事不懂问google”,同样的我相信,很多人会觉得为什么有的问题我就查不到,别人就查得到。如何灵活运用搜索引擎真的是一门学问。好的分析能够让你找到问题出在什么地方,然后找到切入点进行相对应的改进以及修改。面对产品,能知道风险最多的地方在哪里;面对技术,能够搜寻出最终的可行性方案;面对团队,能够对症下药,而不会无从下手。分析来说,实在有太多地方可以说,我这里就不一一说明了。八、条理性任何事情都有轻重缓急,在《高效人士7个习惯》以及ChinaTest中柴阿峰提到的基于风险的测试中都提到了这点。作为测试,很可能你会有很多事情排着队。可能是烦人的客户,可能是不停在变得需求,可能是新 测试技术的探索,可能是自己私人的事情等等。当项目时间,测试人员数量,产品风险,个人私事这样几个维度一起向你攻击的时候,那么你只有 通过分析,然后有条理的归类到7个习惯中提到的四象限中。对于测试,缺陷有优先级,工作有优先级,杂事有优先级,什么都要有优先级。包括朱少民老师提到的传统脚本测试和目前正热的探索性,敏捷测试的和谐并存。这也是需要有条理性 的针对公司,项目的情况具体安排,并非传统不好,并非敏捷探索就一定好。不管黑猫白猫,抓到老鼠的就是好猫,不是吗?九、 责任这点毋庸置疑。测试必须要有责任感。当然不是说让测试承担一切的责任。而是对于自己所做的一切进行负责,对自己负责。测试是一个企业把关的角色。可能对于一些人来讲只是一份工作,但是就企业来讲,无论他们怎么看待测试,他们依然将产品的质量的好坏直接挂钩到了测试身上。测试行业遍布各个行业,如果你只是在做移动互联网内的一个交互娱乐应用的话,可能责任还没有体现出来。但是还有很大一部分的人一直工作在银行、铁路、航空、医疗等领域,这些测试必须负责,他们关系到老百姓的生命安全。就如同《测试之美 》中曾经提到,作者在几年前做的是医疗行业的测试,几年后自己母亲生病,维持着母亲生命的正是自己曾经测试过的医疗器械。只有当这个时候,自己的安心来自于自己的负责。所以我希望各个行业的测试们负起一份责任十、 勇敢正因为测试行业需要发展,测试技术需要进步,所以更加需要测试人去勇敢的钻研,尝试,实践、创新。很多测试人碍于自己只是一个打工的人,而不敢站在更高的角度看待 问题;碍于自己内心的恐惧,而看不起自己,觉得自己不是做技术,或者不是能够解决眼前问题的人、又或者碍于自己性格内向,而从而停止了沟通前进的步伐。我曾经一直这样和我的员工说”很多事情你不敢去做,很多事情你不知道怎么去做,但是不要忘记,你不做总有人会去做。他们做了所以他们变得有名有财富有知识。而你,还是你“。就比如笔者,这次勇敢的做了决定去参加了ChinaTest。为什么说勇敢呢,因为笔者也仅仅工作两年,最终成为了 ChinaTest第一个 报名参加的人,也是第一个自费参加大会的人。我相信这也是一份测试应该有的勇气。网友:注册是渣,软件工程师
小姐的身子(研发)丫鬟的命(测试)
网友:郭红莉,Take joy, I like garden life..
理论确实很重要。。理论-->实践-->理论-->总结-->实践-->理论-->实践==实用的技术
下面是我的看法:
在通用技能上:1.基本计算机知识(操作系统,数据库,通讯协议原理,熟悉至少一门编程语言)2.基本软件测试知识(各种测试理论,测试方法论,测试用例编写,缺陷界定标准,软件质量评估)3.简单项目管理知识在产品、系统认知上:1.熟悉所测产品功能,能够将产品文档内描述的UC转化成TC。2.熟悉所测产品的一些隐藏需求或者功能。在性格上:1.有牛皮糖属性的为佳,越“不要脸”越好我了解到:测试工程师,在很多公司,和研发是有业务上对立属性的(虽然从宏观角度上来说,都是为了提高软件质量服务)。测试工程师提交的BUG越多,意味着研发工程师工作质量越差,需要返工的工作量也越大,甚至会影响绩效,所以测试工程师有时候很容易得罪研发部门。2.有异想天开属性的为佳3.会“偷懒”的为佳这里的偷懒不是指上班发微博聊天混日子,而是能够利用已知资源对枯燥乏味的测试工作进行优化的同学。
总结出来:我觉得最重要的还是要干一行,爱一行。如果将来我真的成为了一名软件测试工程师,想要做的好,首先就要热爱我自己的工作!
欢迎大家一起来讨论交流啊~~~