TA的每日心情 | 无聊 7 小时前 |
---|
签到天数: 1051 天 连续签到: 1 天 [LV.10]测试总司令
|
不知不觉已经毕业两年半,工作三年半了。这三年在同一家公司并未跳槽,今年在合适的契机选择了换一家公司,在这里想总结一下三年的工作经验和这次的面试经验。
首先我毕业于一个本科院校,二本,学习网络工程出来的。到大三毕业的时候,暑假选择了出来找工作实习,现在想来有好有坏吧。为何选择软件测试是因为当时觉得自己对开发的把握不大,觉得自己不能胜任,虽然各种编程语言自己都有了解。当时想作为一个女生觉得自己可能做开发要欠缺些。软件测试在大三有开过课程,大概有些了解,就选择了软件测试行业。
12年运气还算不错,在一个运维小公司做了一个星期运维,当时实在觉得老板太抠门就放弃了,重新找软件测试的实习岗位,连续几天面试最后找到一家外资企业,可能我英文还不错,也有了一点优势吧,实习待遇都不用提了,反正自己也是抱着学习的态度的。
实习一年时间,正式两年半。在开始几个月是完全在接触新事物的,最开始就是功能测试,难度主要在于对业务的把控,这个主要靠自我的接收能力。项目是一个基于B/S架构的系统,分为前后台。当然这个什么架构都是后来才知道的。除了功能测试,项目还做自动化测试,我们用Java+Selenium写自动化脚本。但是主要还是以功能测试为主。最开始什么都不懂,自我对测试的意识就是点点点,能熟悉业务就好,觉得测试的职位很容易被替代,也忧虑和担心要不要转行。后来思想发生了些许转变,这个后面再说。这个项目我实习呆了九个月,学习了功能测试和自动化测试,接收能力还不错就安排我去做另一个项目,这个项目跟之前做的项目有一些接口的衔接,属于偕同项目。两个项目是同一个公司的项目,我们在同一个办公室做事。忘记了说,我们做的是外包项目。后面这个项目才是我学习了很多东西的项目,一方面是软件测试的思想,一方面是软件测试技术。当然现在我接触的还不够多,并不认为自己非常厉害了,我认为自己在软件测试的路上还有很长的一段要走。
在第二个项目呆了两年半。先说说我们的开发测试流程吧,由于是外包,需求来自客户,客户是美国的,产品经理和测试经理都是美国人,那边也有一些测试和开发,但主要测试开发在我们这边,外包项目的局限性很大,客户并不是专业的软件开发团队,我们做的东西是他们对外销售的产品,他们公司之前也不是做软件方面的。客户提供给我们需求,我们测试团队和开发团队一起评审需求,随着系统的逐渐增大变得复杂,需求会有一些业务方面的问题,我们会把问题总结起来用英文整理通过管理工具JIRA发给他们,然后在等待他们的回答期间会编写测试用例。然后问题回复过来之后再更新用例,开发也开始做代码。代码完了之后就开始进行测试。测试发现缺陷就报bug,开发改了之后测试再验证缺陷是否已修复。大概就是这样。
这中间外包的局限在哪里呢?首先,客户是甲方,我们是乙方,一段时间签一次合同,时间都不太长。乙方做事看甲方脸色,很多本来该搞清楚的需求因为担心甲方不悦而放弃追问。这点不知道是不是只有我们项目才有。其次,由于客户不是专业软件团队,他们只关心软件使用,某些缺陷他们认为他们的用户不会那样操作,这对我们的工作开展不太好,一次次妥协,总有越来越没有下限的感觉。还有一点,客户意识不到需求文档对一个软件团队的重要性,文档管理非常乱,后期寻找需求的时候常常好几个版本的文档,可能每个版本对你所要寻找的需求的描述还不一样,增大了回归测试的难度。这个项目前后版本加起来也有五六年了,测试开发比例大概1:1吧,这也算是比较多的测试了,工作不是很忙,有时候也清闲,可以自己学习很多东西,当然不学习的人也多。 我们这属于项目外包,现在外面还有很多人员外包的项目,这点对员工来说非常没有归属感。基于这些原因,在后来选择工作的时候,我更偏向于做产品的公司。
继续说第二个项目,最开始也是去熟悉业务知识,有一些复杂的业务逻辑,需要对整个系统有完整的把控。同样我们也是功能测试和自动化。这个项目并没有做性能测试,功能测试我们会用数据库工具来查看或者修改一些数据,我们用的MySQL,这是我学习到蛮多的东西,虽然大学学过,但总不如在项目中体会到的多。数据库工具在软件测试中,每个测试员的利用程度都不一样,但是利用的越多,对软件测试工作肯定是越好的,这都是见仁见智的。从一个项目的数据库结构去了解一个项目,能了解软件开发者的逻辑,能了解项目的结构,能知道在页面上的操作影响到哪几张表了,能追踪到一些缺陷的根源。作为一个测试人员,对项目的数据库结构的熟悉非常重要,当然每个测试人员对此的悟性不同,这也能反应在工作的成绩中,往往越重视的做的越好。这个项目也有欠缺的地方,测试工具接触的太少,几乎没有,我开始去接触测试工具都是迫于找工作面向市场的压力。由于我们是是外包项目,用的敏捷开发模式,但是Scrum只是一个框架而并非一套标准,我们项目的scrum由于各种原因缺少了很多对软件开发的有益的流程,比如说测试计划,功能清单,测试报告和专门用于自动化测试的测试用例,而且因为manager在美国,有些流程可能他们做了我们并没有经历和知晓,这些缺失在后期软件测试的实施中造成了一些反复的修改和不必要的bug。当然为了要敏捷,确实就会省略很多文档的东西,但是个人认为功能清单这个东西还是能从中得到很多好处,能避免一些漏开发功能点的情况产生。
三年多获得最多的应该还是思想的转变吧。其实想来觉得自己也算悟的慢的了,三年才领悟到这个软件测试岗位的真正职能,当然每个人领悟到的肯定不一样,我领悟到的内容大概只是对自己的职业定位吧。在贴吧还经常看到有人说软件测试热门又简单,就是点点点,不辛苦很轻松。以前这些也曾是我对测试的认识,我身边也不乏这样认知测试岗位的人,我现在的想法变了,像k同事说的,软件测试可深可浅,做的浅的,但凡脑袋比较灵光,很容易上手,但是这部分人很容易被替代。做的深的,看个人兴趣和认知悟性吧,能知道自己需要一些什么技能能帮助自己做好测试工作,各种编程思想,脚本语言,几种系统的基础命令,这些都是必不可少的。然后工具是另一方面,还要了解开发的框架逻辑思想。可以说并不简单,我个人认为好的测试人员是比开发人员的难度大的,不求全部精通,但要知识广。所以我们需要看很多技术类书籍,应该学习很多技术,这应该是一个好的技术人员的必备条件。做到后者是能做出一些成绩的,越往上走,越有一些做的浅的被淘汰。我是靠自己领悟的,工作不如学习有老师教,出了社会,工作岗位上带你的人能给你讲业务都是仁慈了,怎么也不可能把所有肚子里消化过的东西全部吐出来给你。当然,这样的同事也存在着,还是要靠自己在日常工作中去发现,去与人交流。说到交流,测试与开发人员的交流是非常重要的,我从开始胆小怕与人交流到后来跟开发人员能很好的沟通,还是吃了些苦头,现在觉得当年自己好笨。其实从开发人员那边能学到很多东西,有时候开发改bug还会跟我讲讲代码的东西,学过Java ,自己写过一个新闻网站,代码大概是看得懂的,最主要是理解逻辑,对自己还是很有帮助。还有测试人员要摆正心态,我们和开发的地位是平等的,需求可商量讨论。身边有部分测试觉得自己在开发面前说不起话,也有测试十分坚持需求里的文字,当开发表示需求不好实现的时候,他往往说我不关心你们怎么实现,我只照需求测试,直接扼杀了对方沟通的愿望。现在有一种策略叫TDD, Test-Driven Development,是现在热门的敏捷开发的核心实践和技术,但不意味着测试叫开发做什么他们就做什么,我们还是要维持良好的合作关系。还有关于需求变更的问题,网上也很多人调侃程序员恐惧改需求,其实现实也不是那么夸张,我们不抗拒更改需求,包括开发和测试人员,我们的工作就是写代码实现功能嘛,但是我们必须要按文档做事,口头的东西或者东一点西一点的记录真的对以后测试和开发都不好,需求更改后测试与开发充分理解沟通好需求,事情就好办了。当然不仅仅是开发与测试的沟通重要,测试与测试,开发与开发的沟通也都很重要。 在这个项目我还自己主动负责了自动化服务器的工作,包括搭建和维护,我们的服务器在linux机器上,所以对linux命令我也了解了不少,然后还研究了基于Jenkins的自动化集成,学习了shell脚本,关于我们项目的代码的搭建部署也很清楚,这些遇到问题我都跟开发人员请教学习,慢慢的积累了起来。
为何今年选择换公司呢,其实最初完全没有此打算的,年中的时候领导找我谈话说要给我涨工资,满心欢喜,然后等待了两个月说被拒绝了,要再申请,加上公司组织结构面临更改,说还要等一等,一直拖到10月说要明年2月才能涨。我本不是喜欢去追问的人,做起事情来也忘了这些事,但想起来的时候总是郁闷,另一个同事也是如此境地,她总是问,问了给我讲一讲情况,多几次自己也就失望了。再加上那段时间自己对于自己的职业规划大致的有了一个想法,我开始更多的跟开发交流,我把开发的代码从svn服务器上下载下来看,评审需求的时候我也能从需求中提炼出一些编程需要。说真的我觉得自己规划的有点晚,后来越来越觉得自己呆的项目不是自己想要的项目,大家没有凝聚力,做起事情来很拖不动的感觉,领导在管理方面也让我觉得很郁闷,感觉自己迫切的需要出去看看外面的项目,感受正轨的软件开发测试流程。
十月中旬我决定找工作,决定无论如何我都要离开项目组。由于第一次跳槽,对自己的能力是否适应市场完全没有把握,跟关系好一点的开发和测试咨询了一些情况,在拉钩和猎聘网上做好了简历。最开始没有着急,看了一下大概市场的需求,发现多对于测试工具有要求,例如QTP, LoadRunner ,Jmeter等等,我就开始恶补一些工具和技术,如API测试,Python,Ruby语言,还复习了Java编程知识,那会儿压力也蛮大。前两个星期我没有主动的投简历,有一些HR通过猎聘网打来电话让我过去面试,开始自己的期望是去做产品的公司,做白盒,自动化,性能或者API都可,就是不想做单纯的功能测试,对企业其实并没有明确的方向,只是觉得想优先考虑外企,因为在这边呆了三年对自己的英文的提高也有些帮助,不想失去自己的优势。虽然找来的公司不是外企类型我还是决定去看一看。开始几家公司都不太好,面完之后发现自己其实对自己的技能没有很好的总结。好多东西平时都在用,你知道是这么用的,但是为什么这么用,总是知其然不知其所以然。面完回来总是要好好的再梳理一番,把以前用的东西全部研究了一遍,也跟关系好的同事交流,他们总是能给我很多帮助。面了几家都无下文,有自己不满足人家条件的,也有觉得他们不能满足我条件的,连待遇都没有谈。那段时间招聘的公司也多,但是多是小公司,我对自己的市场价值也不清楚,喊的6。后来有两家喊的6.5,HR反馈没有问题,从开始利用中午时间去公司面试,后来有一些就直接让先电话面一下了解大概后做个预判断再去。也有灰心丧气的时候,同事都让我沉住气,慢慢找,不要着急。多面了几家,大概对面试官想听什么内容有了把握,也对市场有了些了解,所以多面几家对后面的面试是有好处的。后来自己总结了一下,去面试首先一定要对自己做过的东西非常熟悉,至少证明你平时在认真做事吧,这反映一个人的工作态度。其次技术方面无论对什么项目都用得上,这也要恶补复习,而且一般大公司,看重人才可发展性的,会关心面试者的学习态度,像做技术的,平时不看书,技术得不到提高,自我没有好的可发展性,办事能力也受限。然后好的沟通能力也会给自己加分,一个共同协作的团队,成员没有好的沟通能力和沟通欲望,是很难运作的,往往变成上面说什么就做什么,完全没有思想,只会一味遵从任务安排,很难把事情做好。所以也有人说面试的时候要会说,你做的再好会的再多,你没有好的总结,不会说给面试官听,面试官不知道啊,你进不去那家公司,连表现的机会都没有,面试是很重要的,通过了这一关,不怕进去了展示不出自己的能力。我面试的时候忽略了一个问题,我忘记去了解面试公司的背景和主要业务了,还被问傻过,了解面试公司的背景和主要业务还是有必要的。面了几家公司之后逐渐自己的面试技能也提升了,对自己掌握的东西的表达能力也提高了。
前前后后面了10来家公司吧,包括电话面试的,大概一个月后我有点着急了,因为自认为面的不错自己又蛮中意的一家外企被刷了,重新审视了一下自己的求职要求,放弃了外企的目标,将目标放宽到更大的范围,有外包的岗位都决定试一试,因为面了那么多家公司完全没有下文,我不禁怀疑起自己的能力。准备去平安科技的外包岗位面试之前,接到那家外企公司的电话,让我去面另外一个岗位,这家公司算是面的几家公司里面最好的了,做产品的公司自然是比外包公司要好,还是个上市公司。面完回来大受打击,QA manager面的我,开场就是英文自我介绍加职位阐述和项目经历,然后问了我好多开发的知识,也表达出不太满意的想法,回来又找项目组开发回顾面试官问的几个问题。意外的是当天下午六点半那边给我反馈了一下面试情况又通知我周一去面技术,让我再好好准备下。紧张的准备了一个周末,星期一倒是比想象中轻松,当时心里想没有通过也就算了,后面慢慢找,比之前坦然很多。面完回来还是照往常一样工作,结果周二下午接到HR电话说谈offer,最后工资翻了差不多一倍,是面试中待遇最好,福利最好的公司。这边公司也在签完offer后提交了离职申请。后来回想起来,也真的都是缘分,据说还是第一次面的面试官比较喜欢我,向后面这个项目组推荐了我。
工作中还是要会去发现一些志趣相投, 又愿意乐意帮忙的同事,这里非常感谢那几个帮助我的同事,K,J,A和N。临近离职,还是有些伤感,要放弃这边已经经营好的人际关系,从头开始去陌生的地方和陌生的人打交道,可能不会像现在和开发人员能交流的这么好,可能也会发现新地方有很多不好的地方,可能没有愿意交流,互相帮助的同事,但是人生总要经历这么几回。
现在呢,我还有一个星期正式离职,下个月入职新公司。期望在新公司能有真心相对的人,能跟大家相处融洽,能在新的岗位上实现自己的价值。文笔不好,希望大家见谅,文中多有个人意见,希望大家多多包容。
|
|