做了十年软件测试,我对它的看法是这样的
本文梗概:
1、测试人员的工作有哪些?
2、测试人员的必备技能有哪些?
3、资深测试员的心德体会。
做了那么久测试,你真的知道测试是做什么的吗?
测试人员的工作
看到这个问题,你是不是觉得有点傻?事实上,其实有很多与我们合作的同事并不清楚。下面我们以一个完整的项目,来介绍一下测试人员的工作究竟有哪些。
(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的能力,再会过的更加*,今年当一年半载的测试,明年就去做几个月的开发玩玩,后年可能去做个产品经理,尝一下鲜也未尝不可嘛!此时就不用担心就业机会,薪资待遇,加班等问题了,而且随着你的能力越来越强,就不会自傲自满,否则你的能力根本无法提升。
道法自然,没事多学点东西;选择你所爱的,爱你所选择的;使自己和家人过的开心快乐,比什么都强!
上面是我收集的一些视频资源,在这个过程中帮到了我很多。如果你不想再体验一次自学时找不到资料,没人解答问题,坚持几天便放弃的感受的话,可以加入我们扣扣群【313782132 】,里面有各种软件测试资源和技术讨论。
当然还有面试,面试一般分为技术面和hr面,形式的话很少有群面,少部分企业可能会有一个交叉面,不过总的来说,技术面基本就是考察你的专业技术水平的,hr面的话主要是看这个人的综合素质以及家庭情况符不符合公司要求,一般来讲,技术的话只要通过了技术面hr面基本上是没有问题(也有少数企业hr面会刷很多人)
我们主要来说技术面,技术面的话主要是考察专业技术知识和水平,上面也是我整理好的精选面试题。
加油吧,测试人!如果你需要提升规划,那就行动吧,在路上总比在起点观望的要好。事必有法,然后有成。
资源不错就给个推荐吧~