软件测试没前途么?
说到软件测试怎么样,网上搜索得到的结果大多数都是:“没有技术含量”,“门槛低”,“没前途”。。。。。。之类的结果,这也是让一些行内从业者或者渴望入行从业者感到迷茫困惑的地方。说实话,在成为一名软件测试工程师之前,我也不是软件测试科班出身,说白了就是“半路出家”,大学期间我主修的是电子信息工程专业,那时候我立志成为一名嵌入式软件开发工程师,也曾每日在这个领域进行学习和探索,直到后来转为软件测试,我发现实际情况并不像网上给这个职位打得标签那样,软件测试也是一个值得深耕的职业。
其实,软件测试技术种类很多,一提到测试字眼,大多数人的想法就是:“测试不就是点点点么”,其实不然,说到测试技术种类,包括:面向对象的测试、面向SOA的测试、面向微服务的测试、web测试、移动app测试、windows测试、嵌入式软件测试、物联网测试、云测试、大数据测试、安全测试等,每种测试的方法、理论、技术栈又不尽相同,这样看来测试又怎么能称之为“点点点”呢?
对于工作,除了一些物质需求之外,大家更关心的还是发展怎样,成长路线如何。那么我们就来说一说软件测试的发展和成长路线。
上面提到,软件测试技术种类很多,但是每个技术种类的成长方式都是大同小异的,发展方向我个人总结有两大方向:技术线和管理线,至于能发展到什么层次和水平那就要看个人的投入以及公司提供的岗位了。成长路线我们就按照两大发展方向来分析。
技术线,这类方向适用于两类测试从业者,一类是从功能测试做起,没有任何编程经验的,还有一类就是有编程能力的,当然选择这类发展路线的也都要从功能测试做起,这是保证我们知道测试是什么的重要过程。从功能做起,我们学会了如何理解需求、如何设计测试用例、如何执行测试用例、如何阅读各类文档;从功能做起,我们学会了如何与开发沟通、如何与产品沟通、如何处理解决意见分歧;从功能做起,我们渐渐意识到眼前工作的局限性、意识到手工测试的低效性以及枯燥性。这时候我们需要拓展自己的技术能力,如:掌握操作系统操作能力、掌握数据库操作语句、开始学习一门编程语言、开始主动的了解工作辅助的测试工具使用方法,渐渐的懂更多的我们,测试效率提高了,但是发现有些时候仅仅靠人力执行的效率终究是有瓶颈的,而且有一些测试重复性很高,这让我们自己感觉工作兴趣就降低了很多。这时候我们开始考虑是不是可以通过一些手段让重复性高的操作自动的去执行,于是我们开始考虑自动化测试思维,我们开始学习自动化测试框架、将学习的编程语言开始投入脚本的开发上、我们开始深入的学习操作系统的shell命令、开始将文字的测试用例转换成一条条的自动化测试用例。再后来,你不再满足于只能将测试在自己的机器上独自享有,是否有办法将整个测试放到一个平台上去操作去、去维护呢?答案是有的,搭建自动化测试平台的想法此时已经扎根在心中了,属于自己公司的具有强定制化的平台,拥有漂亮的前端页面,强大的用例管理机制,账号管理让每个人的工作高效而不冲突,这时你已经可以称得上是一名测试开发工程师了,再后来。。。。。。
如此可见,测试的技术路线是不是很精彩呢。
管理路线,管理路线与大多技术岗晋升并无太大的出入,只不过个人对此路线不太感兴趣(至少现在这么觉得),因此不在此过多赘述。但是管理路线对于软件测试来说,也是一条非常有挑战的路线,如果你不想死磕技术到底,那就可以在这个方向深耕。
从业至今,一直在嵌入式测试方向和服务端测试方向,但是我不会仅限于一两个小方向去发展自己,测试行业之大、测试技术之广足以让我们探索遨游,没有不好的行业,只有做不好的职业人。曾经在书上看到这么一句话:“同样的面粉给到不同人手里,有的人做成了馒头,有的人做成了面包,还有人做成了pizza”,所以测试也是一样,拿到这样一份工作,能把它做成什么样子看是要看我们自己的。