测试管理 测试那些儿事

爱偷懒的QA · 2018年07月06日 · 最后由 难以怀瑾 回复于 2023年07月26日 · 4970 次阅读
本帖已被设为精华帖!

今年四月份刚刚换了份工作,来到新公司后忙于学习业务,搭建测试相关的基础设置,梳理业务等等工作,没有来得及学习,感觉有点儿不踏实。最近才去网上看一下技术文档,逛一下相关的社区啊,论坛啊,再加上近期与相关开发,业务等相关的同学交流,有一些儿感触,写下来与大家交流一下。
其中主要集中在下面几个不够积极的声音:
1,不知道测试是做什么工作的,认为就是在那根据需求点点鼠标,提一下 Bug.
2,感觉测试发展空间有限,容易遇到天花板,学着学着有点儿迷茫,还有想转开发的想法。
3,跟着需求走,有需求就去测试,忙于响应各种需求,验证各种 Bug,疲于应付。
4,意识到了自己的不足,苦于工作太忙,没有方向,要学的东西太多无从下手等原因,一边焦虑一边苦恼。
5,自己具备一些儿编码能力,牛气哄哄,在公司感觉到不能发挥自己的转长,面试的时候感觉面试官太水,都不问一下技术较深的问题。
问题比较多,各有各的抱怨,当然也有过的比较牛 X 的,虽然我也不能算是做的比较好吧,但是也算是小有成就;工作时在公司能发挥所长,换工作的时候能到找满意的工作,两年时间内完成了买房,结婚,生娃等人生大事,生活过的还算精致,所以才在此闲谈一下测试那些儿事。

一,你想要什么?

我们先抛开具体的测试工作不谈,先聊一下你工作究竟为了什么?为了让自己不无聊?为了为社会做贡献?为了实现自己的价值?为了让自己和家人过的更好?一万人眼中就有一万个不同的哈姆雷特,究竟想要什么?恐怕没有人比你自己更加清楚了,为了这个目标,你应该怎么做?知人者智,自知者明!当你想明白了问题的根源的时候,很多问题就变得不那么复杂了。

二,什么是测试?

什么是测试,恐怕有很多答案,究竟哪儿个是标准好像也没有太清楚。不过你要了解到,测试在国外的地位和要求很高,这个也是我在外企实习的时候学习到的。在外企测试是最终的质量把关人员,只有测试有权利决定能否上线;修改 bug 的时候测试有最高的代码修改权限;一个业务的测试人员必须是业务专家,编码能力最强,项目管理权利最大的人;他们的理念是 “如果一个测试人员业务能力不比产品强,编码开发能力没有 RD 牛,你怎么能发现他们的问题呢?” 这也是我一个计算机专业的研究生,为什么要从事测试开发工作的原因。
但是实际工作后发现,国内的企业好像不这回事。测试人员基本上就是跟着需求走,而且很多时候都是最后一个知道需求的人;任务通知到你,告诉你上线时间,你就着急忙慌的去测试,好像任务还没完没了;同时不管是小组长,直属领导,部门负责人等等吧,都来指挥你什么时候上线,而具体的一线员工却没有任何权力。所谓的项目流程,各种规章制度执行起来都比较难,最后出了问题还是要推给测试人员,“你当初怎么没有测试到呢?” 如果团队中有人做技术相关的建设工作,而你有幸参加并得到了领导的重视的话,成就感还是比较不错的,同时发展也会挺好,但往往机会不太多。
是不是感觉现状差不多呢,其实也有很多发展的不错的测试大牛,所以说希望还是有的,不要灰心。

三,测试是做什么工作的?

测试是做什么工作的?这个问题是不是很傻?其实有很多与我们合作的同事并不清楚,而我们做为测试人员真的就清楚了吗?下面我们以一个完整的项目来介绍一下测试的工作:
(1)项目立项,需求产出
很多人都在强调要测试前置,可是这是有条件的,如果你不按项目流程来走,都开发完相应的功能了才告诉测试,测试如何前置啊?所以在项目立项后,需求产出阶段要进行需求评审,确定好开发人员,测试人员,一起参与需求评审会议,此时三方人员根据各自的经验和专长,来讨论一下需求。开发从技术实现角度,测试从用户角度来对需求提出自己的意见,力争通过需求评审达到三方意见一致。一起排出项目周期及各个环节的关键日期,交付物等。
(2)需求开发,测试用例编写
在开发人员开发需求的时候,测试人员必须确定测试方案,编写相应的测试用例,通过 xmind, excel 编写冒烟测试用例,或者通过编码来编写冒烟测试用例,以供开发提测的时候进行自测;同时编写全面的测试用例,组织三方人员进行用例评审,进行测试必要的前期准备,如测试数据,测试环境等,监控项目周期各个环节执行的情况,如果出现任何风险及时预警。
(3)代码提测,测试阶段
在开发提测后,需要进行提测试验收,验证冒烟测试用例的执行情况。如果冒烟测试通过,则需要借助于各种测试工具,测试代码,测试平台等进行具体的测试工作。如果有特殊的需要,则去开发相应的测试工具,添加自动化测试用例或是测试平台的新功能等;同时需要了解开发的代码实现原理,评估出影响范围,进行必要的回归测试。评估 bug 的级别,与相关人员进行交流和跟踪问题。
(4)上线与交付
在测试环境,仿真或是沙箱下测试完成后,就到了上线与交付阶段了。如果公司有完整的测试平台可以直接上线,或是由运维的同学进行上线的话,就根据流程准备相应的资料,安排上线。上线完成后,在线上回归相应的功能,以及可能影响到的功能。

当然上面都是按项目工程的流程来进行的工作,其他还有很多软技能也是非常必要的:
(1)如何恰当的提 bug?
当你遇到一个 bug 的时候,如何恰当地提 bug?如果你用的是 bug 管理平台,那就把 bug 描述清楚,复现步骤写详细点儿。但是要给开发人面反馈的时候,如果一个开发人员比较活跃开朗,容易交流,就事论事描述清楚即可;如果一个开发人员技术相当牛,但是不爱交流的话,你就应该说:“我发现一个和需求不一样的地方,是不是我测试有问题,你能不能看一下?” 让他自己发现问题比较容易接受。

(2)总结经验,指导未来
在平时工作中要善于总结问题,在后面遇到同样的问题的时候能快速解决。总结与相关部门合作的经验,比如哪个部门的人比较墨迹,需要提前沟通;哪个人在合并代码,提交的时候容易出错,就需要重点关注等等。
测试人员的工作还是比较复杂的,能大能小,大可以包罗万象,项目经理,公司 CTO 的职责;小就只需要借助于测试手段验证一下需求即可。

四,测试需要的能力

测试需要什么能力呢?这是个入门容易,发展难的行业,可以说认识字就能做测试;要不怎么有那么多人通过短短两三个月的培训就能找到测试工作呢?发展难表现在,各大公司现在招聘测试经理,资深测试开发,高级测试开发非常难,通常是可遇而不可求的事情。

根据招聘岗位描述和个人发展经验来看,测试的技术是要求越来越高:
1,基本测试技能
最初的功能测试要求基本的测试技能:如需求分析,会通过如边界值法,条件覆盖等手段来编写测试用例,测试环境的部署(有的时候也不需要部署环境),Bug 的定位与准确描述,Bug 验证及回归测试等。加上一些与人沟通和交流的技巧,简单的测试管理工具如 jira 的使用,基本就能胜任测试工作。
2,脚本编写和工具的使用
随着业务的发展,会有不同场景需要一些重复性的工作,或是大量数据日志的处理,此时就需要通过编写一些脚本代码,如 python, shell 等来处理这些工作。同时会引入如 PostMan, LR, Jemter, QTP 等等的工具来辅助测试,进而达到提高效率和扩大测试覆盖面的目的。当然我们测试人员就需要具备相应的编码能力,以及快速学习各种工具,或是可定制化合适的测试计划的能力;此时如果你有这样的能力,会很受欢迎的。
3,自动化测试实施与开展
具体不知道是从什么时候开始,招聘测试的岗位要求上都会有这么一条 “会自动化测试”,可是进入工作后是否真得进行自动化测试,那就不得而知。但是要做自动化测试,就需要具备熟练使用测试框架如 phpunit,unittest,junit,TestNG,Webdriver,Appium 等主流的框架,或是其他公司开源的二次开发的框架,如 Macaca,KIF 等;而且不管是什么自动化测试(接口自动化测试,Web 自动化测试,App 自动化测试,Service 自动化测试),最终都会做成持续化集成(CI)=测试框架 + 测试用例 +Jenkins+Report。当然也有对开源框架做二次开发,集成业务逻辑函数,用例管理,测试计划管理,日志管理,报告生成等功能于一身,形成新的测试框架的。
4,测试平台的开发
在有一定的技术积累的前提下,秉承互联网整合资源的传统,测试行业也开始了整合各种测试资源。如先前公司做的环境管理平台(整合代码管理,环境部署,自动化测试,上线流程等),服务化管理平台(整合服务开发与部署,服务的执行与管理,测试用例与测试计划管理,业务测试流程管理等)等各种平台,方便大家通过平台进行一站式测试,降低测试成本,提高测试质量和效率。
此时就要求测试人员具备通过平时的工作提取平台需求的能力;网站开发能力通过一门编码语言如 java, python,php 等开发后端服务,前端如 Bootstrap+jquery,vue 等框架设计前端页面;前后端联调与测试的能力;网站部署与运维的能力,如 apache, tomcat, mysql, mongodb, docker 等等。要想做好测试平台的开发,几乎要掌握软件工程涉及的各个环节,虽然不需要精通但是最低也要会使用,集各家所长于一身,才能形成自己的一套拳路,立于不败之地。
5,测试架构与团队管理能力
当你的技术达到一定的能力,在公司工作年限够久,很受领导重视的时候,就会相应地走到管理岗位。但目前的管理也越来越难做了,不仅要求管理要有套路,还要求技术上要有方向。所以要求你有测试架构能力,你对于目前的测试工作有什么想法?准备引入什么技术或是方案来提高测试效率?投入产出比如何?还要注意团队的发展,就算你的架构能力再强,没有具体的实施人员,也很难实现的。一头狼带着一群羊也没有什么战斗力的,所以要有计划的提高团队的整体能力,最终形成群狼效率,头狼一声吼,群狼去冲杀。
在群狼中也要进行详细的分工,保证核心员工的战力。谁擅长冲锋,谁擅长厮杀,谁又擅长断后?要安排到正确的位置,防止因为安排不当造成整体团队战力的下降。同时还要在合适的时机表扬战将,给其更多的肉,因为战力强劲的员工如果受委屈了,会随时离开团队的,他的发展空间很大,到哪儿都有发挥的机会。如果一个团队缺少战力强劲的战将,执行力低下,最后只能维持基本的生存,头狼再好的想法也很难实现。

五,测试之道法自然

测试是地处中原,辐射八方的一个行业。怎么可能会有瓶颈之说呢?以功能测试为中心,进行引入各种测试工具,测试脚本,自动化测试,测试平台等等。同时我们需要了解业务需求的来源,内容;开发人员代码架构,实现的原理与影响范围;运维人员的部署,打包发版与相应的问题处理;销售人员的销售效果与客户反馈,以及最终这个需求对公司战略目标和发展方向的影响。而不仅仅是发现 bug,验证 bug 的工作?
你目前都关注这些方向了吗?还是天天在坐井观天,抱怨连连呢?还是应该静下心来,好好思考测试究竟应该如何做,相应的方面有没有做到?这是一个互联网行业,涉及的内容浩如烟海,具体的技术更新更是日新月异,怎么可能没有东西可学呢?只有你具备了相当牛 X 的能力,再会过的更加自由,今年当一年半载的测试,明年就去做几个月的开发玩玩,后年可能去做个产品经理,尝一下鲜也未尝不可嘛!此时就不用担心就业机会,薪资待遇,加班等问题了,而且随着你的能力越来越强,就不会自傲自满,否则你的能力根本无法提升。
道法自然,没事多学点东西;选择你所爱的,爱你所选择的;使自己和家人过的开心过乐,比什么都强!

视频版本的"测试那些儿事":https://qatech.ke.qq.com/,感兴趣的可以去看一下!

共收到 48 条回复 时间 点赞
毛驴 回复

我觉得楼主只是想表达说法方式可以改变对方的工作态度~有些测试确实很厉害,但和开发"互怼"搞得工作关系很紧绷 (对方觉得你在 “怼 “他)。。。~尤其是对于一个新入职的测试,能使用一套双方能接受的沟通手段做敲门砖,只要测试技术确实过硬,做了一段时间,开发也会觉得测试很厉害,开始尊重测试的意见了。

amoschen 回复

客气了,做测试工作多年,有点儿心得,总结一下与大家探讨探讨!

看了您的几篇文章,醍醐灌顶的感觉,多谢。

一个多年的测试人员的个人看法,随着工作经历的变化,看法也会有变化的。技术在手,换工作不愁哟!

写的真好,很多都是心里想说的,测试也做了有些年,真的是遇到瓶颈了,什么都知道一点,然后又没具体方向

关于代码 review 这个事情我提点自己的观点,事实上并不需要做到测试比开发更厉害的编码能力,也几乎不可能做到,代码 review 的作用是让别人去发现自己可能忽略的问题,所谓当局者迷旁观者清就是这个道理,事实上可以让开发互相 review 也可以提高代码质量,就和交叉测试一样。

simple [精彩盘点] TesterHome 社区 2018 年 度精华帖 中提及了此贴 01月07日 12:08
simple 专栏文章:[精华帖] 社区历年精华帖分类归总 中提及了此贴 12月13日 14:44
tester666 回复

我录了个视频版本的 “测试那些儿事”,https://qatech.ke.qq.com/,感兴趣的话可以看一下!

受教了, 分享的文章感觉正是需要的东西

爱偷懒的QA 回复

没错,有价值的测试书籍确实很少,所以才组织这样的活动帮助那些不知道如何选择的同学啊😊

simple 回复

说实话,软件测试方面的书籍非常少,现在网上能看到不少,个人感觉,没有太大的阅读价值;想学习专项东西的话可以看一下,曾经买了一下自动化测试相关的书,中午休息的时候,一个多小时就看完了,没有什么价值。

hi,楼主好,看得出来楼主测试理论体系非常扎实,请问可否推荐一些测试人员需要阅读的书籍呢?
https://testerhome.com/topics/15796

爱偷懒的QA 回复

为自动化测试写的一个 case。目前还没测试过呢,领导给的任务就是在已有的平台上搭建好某个业务的自动化服务,觉得好难啊

fan 回复

其实还好吧,要看什么需求,写什么 Case?手工的还是代码,刚刚开始工作可能没有太多经验,感觉到无从下手而已,慢慢地就好了

第一次工作,就是测试,想问下,楼主,写 case 很难吗?组长让我改一个 case,改了两周了都没改出来,我这种人是不是没救了。目前都没测试,只是改 case。

毛驴 回复

不要太计较,举个例子而已!😋 😆 😆 😆

你就应该说:“我发现一个和需求不一样的地方,是不是我测试有问题,你能不能看一下?” 让他自己发现问题比较容易接受。
我求求你们别再宣传这句话了,自己对自己定位就不准确,测试不比开发差,凭什么贬低自己迎合别人?我不赞同你们这个态度,长久以往惯着开发对你的工作会有好处么

张翔 回复

👍 👍 👍 不错不错!

前段时间刚好也思考过,写了一篇,

《做医生,不做保姆》:https://zhuanlan.zhihu.com/p/39221416
希望有所帮助

测试的 回复

个别情况,不是普遍现象,大家技术不一样,肯定不可能因为你的工作性质就能达到相应的水平的。比如说,高级测试开发工程师,在不同的企业相应的技术水平,工资待遇相差很大的。

红客联盟 回复

是啊,我们之所以看到不少大牛做出的东西很牛 X,其实也不用太羡慕。如果你有相应的平台,业务场景,你也能做的非常出色的嘛!

simonpatrick 回复

不可能是整体的嘛,测试人员的水平也不一样的,凡事不可太较真哟!

爱偷懒的QA 回复

楼主你在搞笑的吧?外企的测试比开发高多了?现在外企离的离,撤的撤。。。

个人觉得业务场景太小也无法学到相应的知识啊。很多知识都停留在理论上,也没有场景来实践,自己玩的在面试官眼里都是玩具,这就很容易死循环

外企的测试工资比开发高多了? 这个我觉得有点说的过头了,不觉得是个整体现象,个别可能有,但是如果整体不太现实。

写得真好,不管是新人看还是有经验的人都很适合看。

最主要是有目的性的自我学习😬

gaomengsuijia 回复

必须的,外企的测试工资比开发高多了

如果一个测试人员业务能力不比产品强,编码开发能力没有 RD 牛,你怎么能发现他们的问题呢? 天呐,外企的测试是不是工资特别高!

Song 回复

想把测试做好,不是一朝一夕的事情,所以也不太着急。先了解一下测试的主要发展方向,从论坛,招聘信息,还有各种测试相关的大会可以了解到。然后选择自己喜欢的方法,有步骤有计划的去学习。测试相关的技术太多了,是学习不完的,也没有必要全学嘛!

感觉测试发展空间有限,容易遇到天花板
我感觉只有井底之蛙才会这样认为。。。

仅楼主可见
胖虎 回复

公司只是一个平台,它会为你提供一些发展的机会或是条件,但也会限制你的发展。所以自己有要提升的计划,有针对性的提升能力,当发现公司阻碍自己的发展的时候,换个发展平台不行了,外面机会多的是。

spring-ssh 回复

这倒是,没有体会是很正常的,如果没有忧患意识,在一个公司待上好久而不提升自己的话,那最会还是会付出代价的。

在公司感觉到不能发挥自己的转长,是专长。

总结的不错,入门太容易,上升太困难是行业外因;测试人员习惯了逆来顺受,不习惯下苦功啃稍有难度的技术,是个人内因。

先收藏 再看几遍~

入门级的人很难有楼主所述的思辨性,多的是撞了南墙不回头的主。

写的太好了!

果冻 回复

自嗨模式哟!

钱金燕 回复

有可能,如果狼被安排在羊群中呢?

hellohell 回复

开心就好,开心就好,不要太计较!

能自嗨,就算在别人眼里你的工作是狗屎,都可以每天高高兴兴;
不能,就算你干了 cto 的活,自己也觉直不起腰;

生活过的还算精致👍 👍

钱金燕 回复

华为的战略就是一头狮子带领一群羊,羊只要刚好能干活就行,然后宣传狼性战略,让羊感觉自己也是狼,然后拼命干活

还要注意团队的发展,就算你的架构能力再强,没有具体的实施人员,也很难实现的。一头狼带着一群羊也没有什么战斗力的,所以要有计划的提高团队的整体能力,最终形成群狼效率,头狼一声吼,群狼去冲杀。

兵熊熊一个,将熊熊一窝

一只狼主怎么会带一只羊?

学习了

不识庐山真面目,只缘身在此山中

思寒_seveniruby 将本帖设为了精华贴 07月06日 20:28

—— 来自 TesterHome 官方 安卓客户端

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册