对于很多工作年龄在5年以下的软件测试人来说,“学习”是个刚需。但与此同时,满世界看了一堆干货听了一堆课程之后并无卵用的状态却并不少见。
作为软件测试行业的一名老鸟,我想要跟大家探讨一个有趣的问题——5年以下的软件测试人到底该选择如何学习,才会更高效?回首我的八年职业发展之路,有过触碰到天花板时的困惑,也遇到过在人生岔路口选择时的彷徨不安。
今天结合我多年的职业成长历程,从几个角度来依次探讨下这个话题——从技术成长,非技术成长,心灵成长三个方面谈谈我的一些认识和理解,同时也想分享一下我的一些职业心得。
1技术成长
技术成长主要分为两个方面的成长,一个是在测试技能的成长,包含测试技能的不断提升,测试思维的升华,测试架构的优化等方面,这些是作为一个测试人员从初级到高级必须要学习的技能。
另外则是在开发技术方面的成长,大家都知道测试一个软件的质量不单单是测试功能,可能更多的包含性能,兼容性,稳定性等多方面的知识,当一个人对于软件测试的理解从测试上升到质量层面的时候,他很快就会发现单纯的测试技能已经不能满足需求了,我们可能需要去了解这个功能的实现原理,他的实现方式对于客户体验的感知程度的好坏,有没有更好的实现方式呢,以及我们如何才能在有限的时间内更快地测试,并且尽可能的减少漏测呢?
再有,在技术的提升方面,我用到的最好的方法就是提问法,不断地给自己提问,帮助自己快速扩展知识面。同时也帮助自己快速构建自己的知识体系。
比如关于技术成长方面,可以从以下几个方面进行提问:
【技术成长】
功能方面:如何设计测试用例?如何进行发散测试?如何防止漏测?
性能方面:用户常用的功能如何才能体验性更好,速度更快?
安全方面:软件有没有做最基本的安全防御?常见的SQL注入,CSRF攻击是否对我们的软件安全有威胁?你的软件足够的安全吗?
自动化方面:自动化是什么?在什么情况下做自动化?哪些功能测试用例适合通过自动化脚本来执行?
【开发技术】
服务端
数据库:常见的SQL,索引,数据库调优参数。
接口:接口的入参出参是什么?接口测试有没有可能做成自动化?
监控:监控数据,监控软件,监控分析。
客户端
IOS/安卓/H5/PC:前端是如何和后端进行交互的?前端的性能如何能进行更多优化?我们能从什么角度去分析客户端的性能问题?
【测试开发】
代码&自动化
一旦测试能力上升到一定的程度之后,代码开发的能力肯定是必不可少的,比如编写基本的性能测试脚本。比如对一些工具进行二次开发,让它能够更好地帮助我们测试。
2非技术成长
【时间管理】
时间管理每个人有自己不同的方式,对我来说最受益的两条建议就是:
1.按照工作的优先级进行处理,可以参考时间管理的工作四象限法。
2.对自己每天的时间进行记录,长期归纳总结,得出最适合自己的时间管理方案。
优先级工作法:永远做当下最重要的事
番茄工作法:番茄工作法是简单易行的时间管理方法,选择一个待完成的任务,将番茄时间设为25分钟,专注工作,中途不允许做任何与该任务无关的事,直到番茄时钟响起,然后在纸上画一个X短暂休息一下(5分钟就行),每4个番茄时段多休息一会儿。
【工作方式】
工作习惯的养成是一个不断完善的过程。
今日事今日毕
当天的任务通过对月度计划和年度计划拆解而来,当天的任务一定要完成才能睡觉,如果遇到意外,第二天必须要补上。
复盘
在每天睡觉之前对自己今天做的所有的事情进行回忆,并分析什么做的好,什么做的不好?做的不好的如何改进?做的好的有没有更好的解决方案?不断超越今天的自己。
比如在软件测试里面最好的复盘应用就是,每个迭代完成之后对团队本轮的测试进行复盘,对于新出现的问题以及测试用例中漏测的测试点进行增删查改。
【休闲方式】
跑步,骑车,户外运动等,用你能想到的所有能让你快乐的方式强健你的体魄的同时充实你的生活。会玩的人更会工作,保持高效的工作方式,慢动作的生活方式,做自己生活的掌控者。
3心灵成长
【沟通】
与上级沟通方面:方案比问题更重要,数据为王,任何论点请提出清晰的论据,擅长总结,提供清晰的报表。
与下级沟通:夸奖是最好的沟通方式,先肯定再提出自己的意见,做到以人为本。
【总结】
阶段总结(经常对一个阶段的工作和生活进行总结)
迭代总结(和开发人员一起分析迭代过程中所有的BUG,对于漏测的问题进行分析汇总,并采取措施)
【学习】
多涉略软件测试方面的书籍、博客,特别是测试大牛的博客,同时要有自己的博客,看了别人的知识之后单单记忆是不够的,如何能快速的内化后,形成自己的知识才是最重要的。所以写博客不仅仅是对于自己看到的好文章好技术的总结,更是自己学习过程中心得的汇总。再有就是多看软件测试行业调查报告,行业调查侧重过去一年您所在研发团队的情况,参与人员身在其中,比较清楚现状,调查数据相对可靠,现在参加2017软件测试现状调查,明确自身的职业定位,选择最适合自己的职场之路。
4最后的总结
【测试思维的形成】
测试思维,说简单点就是你看到这个功能如何去测试?
一个一年的测试人员和一个10年的测试人员看到登录页面想到的测试点一定是不一样的。
中间的这个过程需要漫长的积累,也就是测试思维的形成。
【从一般事物抽象出逻辑能力】
曾经面试过一个6年的测试人员,面试过程中问到,你对于自动化测试的理解,给我的回答很多都是从自己上家公司软件的具体情况去举例,由此我便认识到,从一般事务抽象出逻辑的能力在工作中十分的重要,每个公司都有属于自己的业务,当你离开这家公司之后,这些业务对于你来说可能不是那么重要,但你通过思考抽象出来的测试逻辑和测试方法才是真正属于你的知识,放到任何一个测试团队里面都能应用。
【硬实力+软实力】
硬实力+软能力从来就不单单是测试行业才需要,我相信任何一个行业都是必不可少的,硬实力就是你的技能,软实力就是你的沟通,说简单点,就是你这个人怎么样,在团队合作中,如何能让别人更愉快地和你共事是值得每一个团队成员深思的问题。
【刻意练习】
一旦决定养成某种习惯,或者对某一方面的知识积累达到一定的程度之后,一定要分析总结形成自己的知识结构体系,并且在工作中反复运用,勤于实践,最终才有可能成为行业专家。
最后,请大家投票的链接地址 :http://vote.51testing.com 完成投票后,更有专业大咖指导测试技术。