我从没有想过自己会从事软件相关的工作。因为作为一名医学院毕业的应届生,从一开始选择在医学院就读时,就有一颗成为医生去治病救人的想法。然而事与愿违,其中的坎坷艰辛和不能成为一名医生的失意让我觉得人生是如此迷茫。
直到,我遇到了我从事的第一份工作:软件实施工程师。至此,我找到了人生事业大体的方向,软件从业人员。从最开始的软件实施,到软件开发,到现在以及以后的软件测试,在这一年多的时间里,我在这个行业里摸索探寻,虽然每个岗位的时间都不长也对每一个职业没有更深入的了解,但是, 通过这不长时间的体会了解,我选择了软件测试,作为我以后长期发展的职业。
2016年6月,大三的我开始了为期一年的实习生涯,我选择了去做医疗软件的公司,那时候对于医疗软件没什么概念,只认为是医疗技术与计算机技术的结合。由于缺乏专业的计算机知识,医学知识也只是浅薄的那么一点。于是,我被公司安排的职位是软件实施工程师,是针对医院的挂号、收费等流程的软件。
而最开始作为实施人员,我也只是提前将这一套软件用测试账号使用熟练,之后去现场教医生和护士使用,仅此而已,这是一项对任何人都没有技术难度的工作。做了三个星期的软件功能教学之后,我渐渐对于这项工作失去了耐心,觉得这是一份随时都能被任何人替代的工作。
于是我开始寻找更加有技术含量的方式去做这份工作,就在这时候,将学校学到的数据库知识用上了。我尝试着将数据库表中的数据与前端页面显示的数据进行比较,以核对数据的有效性(数据库的增删改查)。这种方式,跟现在做的测试其实是类似的,因为测试也是要判断数据的有效性问题。就这样,对于这份工作最深入的了解也仅在于有一个数据库的参与。最终,在一个契机下,我被调回了公司,做软件测试。这是我从事的第一份软件测试工作。
在公司做测试期间,测试用到的技术就是手工点点点,作为一个菜鸟,我连测试用例都不需要写,只需要跟现场用户类似,不断的进行功能操作。在这个期间,我找了不少学习资料,都是软件测试的理论方法,冒烟测试、边界值分析、因果图分析都是在那个时候了解到的。也是在这个时候了解到,要做好一个软件测试人员,要学的东西有很多,理论知识要学,方法技术也要学。此后,对于软件测试的看法,再也不是以前认为的那样:没有技术的点点点了。
由于公司很小,我作为一个不是很忙的菜鸟测试人员,也会参与一些产品设计的工作,像用Axure绘制软件原型,测试环境的搭建,产品说明书的编写。除了技术,还学习到一些工作思考的方式。虽然那时候软件测试技术并没有一个很大的提升,但是这段经历让我对于软件测试的认知有了一个质的变化。就这样,我在第一家实习公司待到了年底,也是在年底我辞职了。辞职的原因是这家公司所有的测试人员的测试方式都是点点点,而我不觉得自己能够在这种环境下去学习更深入的测试技术。
第二年,我找到了我的第二份工作,测试开发。说到这儿,我很感谢这一家公司,因为他们接纳了我这个技术小白。测试开发,先学的是开发技术。
由于公司做的是Web端的印刷检测系统,所以我要从前段开发的基础知识开始学。首先,便是Html、CSS,然后是Jquery、JS。当然这其中会包括许多技术,而我这期间只是学了其中的基础知识,因为对于一名技术小白来说,缺少实际的项目经验,学深了也是徒增疑惑。
就这样,我花了2个月学习,到第三个月的时候,参与公司新项目的开发,负责的是平台所有的验证模块。也是此时,我开始学习测试方面的知识,包括测试理论方法以及单元测试的技术。那时候,第一次成功用QUnit完成了职业生涯的第一个单元测试。
到了7月份,我毕业了,离开了第二家公司,拿着毕业证回到了老家的省会城市。这个时候我依然很迷茫,因为我觉得我学习到了开发的技术,不去做开发很可惜,于是,我拼命的找前端开发的工作,然而没有名牌大学的光环,没有专业技术的加持,很多公司不愿意收留一个对于他们而言在前期不能创造任何价值的应届生。所以,我很无奈的选择了软件测试。看到这里,你会觉得我对软件测试不是真的热爱,其实那个时候,我是不热爱,也不讨厌。但是现在,我深爱我的工作。
回到正题,回老家的第一份工作,也就是我的第三份工作是手机端测试,主要是安卓端软件测试。公司里这个岗位基本都是今年毕业的应届生,资格最老的也只是比我早毕业一年而已。部门老大对于我们测试人员的要求就是通过重复的手工劳动去发现功能错误。
于是,我又开始了我的点点点生涯。但是,我也不甘将之前学习到的知识放弃,所以我尝试将开发知识用于测试。于是,我开始学习手机端自动化测试工具,第一个就是monkey,但是monkey是向待测应用发送随机按键消息,只是验证待测应用是闪退或者崩溃,因为它不支持条件判断,也不支持读取界面的信息来验证操作,所以只能作为生成一些随机事件的工具来使用。
于是我学习了第二个测试工具—Monkeyrunner。Monkeyrunner在我做手机端测试期间一直在学习使用。因为其测试用例是用Python写的,所以在这期间也简单学习了些Python的一些基础知识。然而,由于每天都有要更新的软件,所以基本上每天都是在不断的重复手工测试,留给自己在上班期间学习使用工具去做测试的时间根本没有,因为一款软件当天更新就要当天通过测试当天上线。于是,我辞职了。辞职原因有很多,最重要的还是在这个环境下学不到我想学的测试技术。
我的第四家公司,也是我目前就职的这家公司。面试的时候公司领导觉得我有朝气就让我通过了面试。目前正在学习LoadRunner和UFT,版本分别是11和12。值得一说的是,这家公司软件部刚刚成立不久,目前软件测试就我一个。这种环境让我觉得自己责任很大,所以要更加努力去学习。作为一名应届生,要学习的知识真的还有很多很多。我觉得只要按部就班的学习,在实践中找测试方法,那么一定能够出色的完成工作任务,成为一名合格的职场人。
如果您对软件测试的职业还有迷茫得话,不如现在行动起来树立新的职业规划,不再为以后职业后悔。
一、测试基础
了解测试的基础技能,掌握主流缺陷管理工具的使用,熟练测试环境的操作与运维
二、Linux必备知识
Linux作为现在最流行的软件环境系统,一定需要掌握,目前的招聘要求都需要有Linux能力。
三、Shell脚本
掌握Shell脚本:包括Shell基础与运用、Shell逻辑控制、Shell逻辑函数
四、互联网程序原理
五、MySQL数据库
软件测试工程师必备MySQL数据库知识,不仅仅停留在基本的“增删改查”。
六、抓包工具
Fiddler,Wireshark,Sniffer,Tcpdump各种抓包工具适用于各种项目,总有一款适合你的
七、接口测试工具
接口测试神器,你绕不开的强大工具:Jmeter。小巧灵活:Postman
八、Web自动化测试Java&Python
了解自动化的目的,熟练掌握TestNG&unittest自动化框架,以及断言与日志处理
九、接口与移动端自动化
专业接口调用、测试解决方案。组建完整的web和接口自动化框架,Appium整体使用
十、敏捷测试&TestOps构建
揭开TestOps的神秘面纱,持续集成Jenkins框架烂熟于心
十一、性能测试&安全测试
软件测试的彼岸:性能测试和安全测试,选个方向努力爬坑吧!
大家照着这个路线一直坚持学下去,相信会有很大的进步!过程很痛苦,但是坚持就一定能成功!不积跬步,无以至千里。等到完成之后再回顾这一段路程的时候,你肯定会感慨良多。
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你
关注我的微信公众号【软件测试小dao】免费获取~
我的学习交流群:1033482984 群里有技术大牛一起交流分享~
如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!