Time will tell.
1、测试工作
(1)项目立项,需求产出
很多人都在强调要测试前置,可这是有条件的。如果你不按项目流程来走,都开发完相应的功能了才告诉测试,测试如何前置?
所以在项目立项后,需求产出阶段要进行需求评审,确定好开发人员,测试人员,一起参与需求评审会议,此时三方人员根据各自的经验和专长来一起讨论需求。
开发从技术实现角度,测试从用户角度来对需求提出自己的意见,力争通过需求评审达到三方意见一致。一起排出项目周期及各个环节的关键日期,交付物等。
(2)需求开发,测试用例编写
在开发人员开发需求的时候,测试人员必须确定测试方案,编写相应的测试用例,通过xmind, excel编写冒烟测试用例,或者通过编码来编写冒烟测试用例,以供开发提测的时候进行自测。
同时编写全面的测试用例,组织三方人员进行用例评审,进行测试必要的前期准备,如测试数据,测试环境等,监控项目周期各个环节执行的情况,如果出现任何风险及时预警。
(3)代码提测,测试阶段
在开发提测后,需要进行测试验收,验证冒烟测试用例的执行情况。如果冒烟测试通过,则需要借助于各种测试工具,测试代码,测试平台等进行具体的测试工作。
如果有特殊的需要,则去开发相应的测试工具,添加自动化测试用例或是测试平台的新功能等;同时需要了解开发的代码实现原理,评估出影响范围,进行必要的回归测试。评估bug的级别,与相关人员进行交流和跟踪问题。
(4)上线与交付
在测试环境,仿真或是沙箱下测试完成后,就到了上线与交付阶段了。如果公司有完整的测试平台可以直接上线,或是由运维的同学进行上线的话,就根据流程准备相应的资料,安排上线。上线完成后,在线上回归相应的功能,以及可能影响到的功能。
2、沟通
上面都是按项目工程的流程来进行的工作,还有很多软技能也是非常必要的:
(1)如何恰当地提BUG
如果你用的是bug管理平台,就把bug描述清楚,复现步骤写详细点儿。
给开发人面反馈时,如果开发人员比较活跃开朗,容易交流,就事论事描述清楚即可;如果开发人员技术相当牛,但不爱交流,你可以说:“我发现一个和需求不一样的地方,不知道我测试有问题,你能不能看一下?”让他自己发现问题更容易接受。
(2)总结经验,指导未来
善于在平时工作中总结问题,在后面遇到同样的问题时能快速解决。总结与相关部门合作的经验,比如哪个部门的人比较墨迹,需要提前沟通;哪个人在合并代码,提交的时候容易出错,就需要重点关注等等。
测试工作还是比较复杂的,能大能小,大可以包罗万象,项目经理,公司CTO的职责;小只需要借助于测试手段,验证一下需求即可。
3、能力
这个行业入门容易,但要彻底上手测试,这对综合要求比较高。根据招聘岗位描述和发展经验来看,技术要求也是越来越高:
(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)测试架构与综合能力
当你的技术达到一定的能力,在公司工作年限够久,很受领导重视的时候,就会相应地走到管理岗位。但目前的管理也是越来越难做,不仅要求管理要有套路,还要求技术上要有方向,有测试架构能力。
“你对于目前的测试工作有什么想法?”
“准备引入什么技术或是方案来提高测试效率?”
“投入产出比如何?”
注意团队的发展,就算你的架构能力再强,没有具体的实施人员,也很难实现的。
要分工详细,发挥出他们的长处,谁擅长什么,将其安排在正确的位置。
4、最后
测试是一个地处中原,辐射八方的行业,并没有什么较为明显的瓶颈。以功能测试为中心,进行引入各种测试工具,测试脚本,自动化测试,测试平台等等。
1)同时需要了解业务需求的来源,内容;
2)开发人员代码架构,实现的原理与影响范围;
3)运维人员的部署,打包发版与相应的问题处理;
4)销售人员的销售效果与客户反馈,以及最终这个需求对公司战略目标和发展方向的影响。而不仅仅只是发现bug,验证bug的工作。
你关注过这些方向吗?还是天天在坐井观天,抱怨连连呢?
你应该静下心来,好好思考测试究竟应该如何做,相应的方面有没有做到。互联网行业涉及的内容浩如烟海,技术更是日新月异,怎么可能没东西学呢?
只要你具备了相当的能力,才会过得更加自由,今年当一年半载的测试,明年去做几个月开发玩玩,后年可能去做个产品经理,多多尝试也未尝不可!此时也不用担心就业机会、薪资待遇、加班等问题了。
絮叨
测试是一门技术,更是一门艺术。也许你今天拥有的技术,明天就会被淘汰。需要我们开拓思维和眼界,积极拥抱变化,学习新知识、新方法、新技能、计算机领域讲究的是实践,学习更要讲究方式方法,学习和动手一定要结合。
如果你喜欢软件测试这个行业的话,可以加入我们175317069一起学习,这里有行业深潜多年的测试人技术分析讲解。也有我整理的各项软件测试进阶资料,涵盖测试技术、开发及环境搭建类、HR面试3大方面。
最后祝愿你能成为一名优秀的软件测试工程师!
喜欢的话,欢迎【评论】、【点赞】、【关注】礼貌三连~
Time will tell.(时间会证明一切)
如果觉得《【分享】通往高级测试工程师的4点心得!》对你有帮助,请点赞、收藏,并留下你的观点哦!