长久以来测试都有一个困扰的问题,就是如果面试去了一家公司,发现项目组或整个部门就自己一个测试,该怎么办呢?很多大厂的娃可能会觉得这很夸张,我可以负责任的说,这是司空见惯的事,我之前就去过两家这样的公司,整个部门就我一个测试,所以我同时兼职两个项目的测试工程师,是不是天方夜谭?那么很多人遇到我这种情况肯定会不知所措,觉得一个人对接开发,对接产品,也没什么流程,不知道该做什么,更没有公司前辈的经验可借鉴,这种情况该怎么办?今天就花点时间来讨论一下。
为什么会有这样的现象?
首先我们来分析一下,为什么现在这么多公司都只有一个测试人员呢?我总结了两点主要原因:
第一:很多公司都是初创型的小微企业,或者刚建立的软件部门
第二:国内对软件测试不够重视
如果只有你一个测试员会怎么样?
如果刚接触测试行业的同学遇到这种情况,一般都是比较绝望和无助的,因为我是过来人,是有切身体会的,我大概列举一些弊端:
1.测试流程极度不规范。不是测试人员不想规范,而是公司其他成员缺乏配合测试的一些常识,而且管理层也不会为了测试来制定一套切实可行的流程,而测试人员去跟其他团队成员约定一些测试流程时,其他人也不太愿意配合,这主要还是测试人微言轻。而且这种情况下,很多时候开发完丢个包就给测试了,不会做好版本划分,也不会告知此次版本修改了哪些地方,需要重点观察哪些地方可能会引发问题,甚至开发有时候为了偷懒连自测都省了,因为缺少强有力的考核机制,他们自测任务都甩手扔给测试,如果你写好冒烟测试用例给他们,他们也只会应付一下。
2.时间紧压力大。这都不用我多说,想想看,一个公司才一个测试,可能这一个人还兼几个项目的测试,可想而知测试员的压力了。
3.测试覆盖面受限。一个人难以覆盖所有可能的测试场景,特别是在复杂的系统中。
4.被团队孤立。这里并非说是人缘上被孤立,而是工作上被孤立。想想国内动辄11:1的开发测试比,测试人员如果就一人,就特别的弱势了,开发有可能联合起来针对你提出的建议和提的bug,同时你也很难找到人分享经验和问题,更难找到测试方面的帮助。开发对测试工作也没有认同感,经常连续修改或者新增加需求,测试基本都是按照开发的节奏来开展工作。测试花大力气提的Bug,开发会消极对待,甚至有时候还不认可有些Bug还跟测试争起来,而且由于之前缺乏有效的约束开发的机制,所以在解决Bug的过程中会产生很多不愉快。有时候产品更改需求也不知会测试,项目偷偷上线也不会告知测试,测试就像是边缘角色。
5.任务多样性。作为唯一的测试员,可能需要同时处理不同层次和类型的测试任务。而且更可气的是有些项目经理在对测试策略的可行性上知之甚少,我待过一家公司,在我一个测试员的情况下,还要求我在完成各项功能测试的同时,写出自动化脚本去执行,那个项目本来就是UI和接口很不稳定的阶段,所以我们会在不被理解的情况下被要求去做各种不合理的事情,如果遇到一定不能默默承受,一定要说出实际情况的困难之处。
以上种种问题的存在,是会让测试员的工作质量和效率大打折扣的,同时较容易引发较多的潜在Bug,到时候这些暴雷,出了问题又反过来追责测试,导致测试里外不是人,我说的这些应该也是很多同学正在经历的吧?!
测试员该怎么办呢?
这篇文章并非单纯吐槽,而是针对遇到的这类窘境分享一些可行的经验,以下就是我的一些个人建议:
1.和直属领导沟通
毫无疑问首先就是要去找领导沟通,说明目前自己的难处,询问领导有什么样的测试岗规划,希望测试达成什么样的目标等等。既然公司招了测试,肯定是希望测试能够给公司产生效益,那么肯定也会尽量让这个岗位的工作顺利开展,这个时候他们是很乐意接受测试人员的意见和建议。
1)跟领导说明只有一名测试时,是无法完成多种和多场景的测试任务的,同时罗列工作的轻重缓急,率先保证高优先级工作的质量和效率,等高优先级的任务完成再去覆盖次优先级的工作;
2)跟领导说明只有一名测试时,需要团队其他人员协助测试工作,特别是版本迭代频繁,或者测试任务重的时候,需要其他人员支援做些基础的功能测试,其实这种让其他成员帮忙测试还有个好处,就是可以让其他人意识到测试工作不是单纯机械的点点,而是一项逻辑严谨,有技术含量的工作,这样其他成员在这个过程中也会逐渐对测试岗人员重视起来;
3)跟领导说只有一名测试时,最好抛弃自动化测试,我发现有些领导对于自动化测试有迷之倾向,可能在他们听闻中,自动化可以减少人力付出,提高测试效率。但是他们不知道自动化的成本,所以当项目组只有你一名测试时,一定要向领导说明自动化需要具备的条件,告诉他一个人开发和维护自动化脚本不但不能节省人力,反而会浪费时间和精力。
4)跟领导说只有一名测试时,有些任务需要划清界线,这点说起来可能会招领导或者团队其他成员厌,可能会觉得你在推脱责任,但是这种情况下必须和领导说明,测试的人力有限,为了保证测试质量和效率,开发的自测一定要他们自己完成,如果发现很多基础功能存在问题,是可以考虑打回重做的,而且测试只对每个提测的版本负责。因为我发现很多小公司都喜欢把开发环境就当成测试环境,然后开发测试共用一个,一旦测试发现问题,开发一改完就让测试再测一遍,这种无版本区分,频繁测试只会让系统质量难以把控,还会增加测试的很多任务量,所以在这里首先就需要申请测试环境,提测的版本必须放到测试环境上。
5)跟领导说只有一名测试时,如果任务量过多,尝试了各种办法还是难以应付测试工作,那么最好再招测试人员进来,哪怕是实习生进来帮分担也行。
会哭的孩子有奶吃,你提出来这些难处,一是可能对自己有切实的好处,二是领导也会觉得你是一个很有想法,会解决问题的人。
2.制定工作流程
像这种一个测试的公司或部门,最让人头疼的是测试工作的流程,所以制定完善且合理的流程,不仅解决了测试效率低下的问题,也能划分测试和其它岗的职责,这样追责时就有大用了,而且也能适当给自己减负,让自己更专注于测试工作。
1)首先要确定测试计划、方案、报告等测试文档的模版,缺陷管理系统如禅道提Bug和跟踪处理的流程;
2)其次是制定和团队其他成员之间的合作流程,如需求文档PRD、架构图、流程图必须要给到测试,作为测试的依据;
3)对于更改的需求必须记录到禅道等缺陷管理系统中,同时最好发邮件知会测试;
4)严禁在项目快发布时变更需求,除非真的情况特殊;
5)项目上线或者发布,必须是测试人员完成了所有测试,确保所提的“致命”和“严重”等级的bug都已修复;
6)如果开发人员不认可测试所提的bug甚至是认为不是Bug时,必须在缺陷管理工具中说明详细的理由;
7)制定流程的最后一点也是最重要的一点便是让项目负责人开展讨论会,以确保全员同意并记录在系统,后面如果有人违反该流程将对带来的问题和风险全权负责。
3.提升自身技术
在大公司测试容易成为一颗专职的螺丝钉,做的事很细,但是在小公司,你必须十八般武艺样样精通,你除了需要掌握测试领域的各种知识。前面谈到过,凡事都是利弊共存,而小公司给到测试人员的好处就是自由的发挥空间,同时伴随着公司的成长,我们也能遇到各种机遇。而机会都是有给有准备的人的,在机遇到来之前我们需要沉淀。
1.首先应该完善自己的测试理论知识,万丈高楼平地起,测试理论知识是这大厦的基石;
2.在测试过程中逢山开路遇水搭桥,积极的去解决所遇到的问题,并把所学到的知识和技术运用到实际的测试工作中,形成学习-实践的闭环,对于测试员的成长是大有裨益的。
总结
如果公司只有你一个测试工程师时,也请不要慌,兵来将挡水来土掩总会有办法的。凡事都是利弊共存的,抓住一个人的“自由”,充分利用现有资源、管理好时间,保持和团队其他成员的密切沟通与合作。 你只要告诉自己,很多公司的测试岗都是从无到有的,现在有你一个人以后可能招更多的测试进来,同时你作为元老级,对于以后的晋升都是优势,你要做的就是坚持一下,并耐心等待这漫漫长征过去,你就能见到胜利的曙光。当然,如果你对该公司的判断是负面的,也认为公司不会越来越好或者扩大测试团队,那么你也可以三十六计走为上,选择一个更大更好的平台,去实现自身的价值!这就看你对公司或部门未来的判断和信心了。
作者:有房车的直男